我们有一个带有地图组件(ASP.NET/SQL Server 2005,Google Maps API)的基于 Web 的应用程序。映射组件正在发展——它最初是一个简单的、不错的功能,并逐渐成为应用程序的基石;所以我们开始需要执行更复杂的映射任务。我试图找出最好的平台是什么。我们需要做的一些例子:
- 读写 KML
- 查找给定点一定距离内的所有点
- 找出哪个多边形包含一个点(例如这个点在哪个省)
- 查找哪个多边形包含给定的多边形(例如该区在哪个省)
- 从其他格式(例如 ArcGIS shapefile)导入数据
- (也许)我们自己提供地图图块,而不是依赖 Gmaps API
其中一些我们已经做了,只是用我们自己的代码。我们将坐标存储为十进制列对,将形状存储为 KML 片段,并在我们自己的代码中实现了一些标准算法(多边形中的点等)。到目前为止,我们还没有依赖任何第三方组件、开源库或空间数据组件,但我想为这些东西找到一个可靠的平台,这个平台经过了很好的测试,会给我们成长的空间。
我正在考虑的一些选项包括:
- 用于记录和查询地理数据的 SQL Server 2008 空间组件
- SharpMap 或 NetTopologySuite 用于在 .NET 代码中操作地理数据
我应该考虑其他选择吗?你有什么建议?