用于地理数据、绘图的 .NET 库
我们有一个带有地图组件的基于 Web 的应用程序(ASP.NET/SQL Server 2005、Google Maps API)。地图组件正在不断发展——它最初是一个简单、可有可无的功能,并逐渐成为应用程序的基石;因此我们开始需要执行更复杂的绘图任务。我正在尝试找出最好的平台是什么。我们需要做的一些例子:
- 读取和写入 KML
- 查找给定点一定距离内的所有点
- 查找哪个多边形包含一个点(例如,该点在哪个省份)
- 查找哪个多边形包含给定多边形(例如哪个省份) 从其他格式
- (例如 ArcGIS shapefile)导入数据
- (也许)我们自己提供地图图块,而不是依赖 Gmaps API
其中一些我们已经做到了,只是使用我们自己的代码。我们将坐标存储为十进制列对,将形状存储为 KML 片段,并在我们自己的代码中实现了一些标准算法(多边形内的点等)。到目前为止,我们还没有依赖任何第三方组件、开源库或空间数据组件,但我想为这些东西找到一个经过充分测试的可靠平台,并为我们提供成长空间。
我正在考虑的一些选项包括:
- SQL Server 2008 用于故事和空间组件。查询地理数据
- SharpMap 或 NetTopologySuite 以在 .NET 代码中操作地理数据
我还应该考虑其他选项吗?您有什么建议?
We have a web-based application with a mapping component (ASP.NET/SQL Server 2005, Google Maps API). The mapping component is evolving - it started out as a simple, nice-to-have feature and is gradually becoming more of a cornerstone of the application; so we're starting to need to perform more sophisticated mapping tasks. I'm trying to figure out what the best platform for that is. Some examples of what we need to do:
- Read and write KML
- Find all points within a certain distance of a given point
- Find which polygon contains a point (e.g. what province is this point in)
- Find which polygon contains a given polygon (e.g. what province is this district in)
- Import data from other formats such as ArcGIS shapefiles
- (Maybe) Serve map tiles ourselves, instead of relying on the Gmaps API
Some of this we already do, just with our own code. We store coordinates as pairs of decimal columns, shapes as KML fragments, and have implemented some standard algorithms (point-in-polygon, etc.) in our own code. So far we haven't relied on any third-party components, open-source libraries, or spatial data components, but I'd like to find a solid platform for this stuff that's well tested and will give us room to grow.
Some options I'm looking at include:
- SQL Server 2008 spatial components for storying & querying geodata
- SharpMap or NetTopologySuite for manipulating geodata in .NET code
Are there other options I should consider? What are your recommendations?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
启用空间的数据库非常适合您问题中的“查找”任务。由于您已经在使用 SQL Server,因此合理的选择是转到 2008 年,以便获得空间扩展。
Oracle和PostGreSQL也有很好的空间扩展。 MySQL 没有。
A spatially-enabled database would be great for the "find" tasks in your question. Since you are already using SQL server, a logical choice would be to go to 2008 so you get the spatial extensions.
Oracle and PostGreSQL also have good spatial extensions. MySQL doesn't.
你应该查看 ESRI api。 silverlight、javascript、flex,甚至 java 和 iOS 版本。它会做你在这里描述的一切,甚至更多。
you should check out the ESRI api. silverlight, javascript, flex, even java and iOS versions. It will do everything you describe here, and more.
我建议您查看MapAround。它是GLP3,具有与SharpMap几乎相同的功能,但具有性能优化
I would you recommend to see MapAround. It is GLP3 and has almost the same features as SharpMap but with performance optimization