我正在考虑在不使用 SQL2008 的情况下在 .NET 中实现空间查询。第一个要求是能够创建(BTree 风格的)空间索引并能够查询它。
尽管 SQL 2008 附带了用于这些类型的 .NET 库,但您需要将 SQL 用于空间索引。
有没有人使用任何 .NET 库来存储空间数据(操作系统或商业)?我正在查看 NetTopologySuite,但它看起来很安静,我不想要一个死库。
我正在考虑在不使用 SQL2008 的情况下在 .NET 中实现空间查询。第一个要求是能够创建(BTree 风格的)空间索引并能够查询它。
尽管 SQL 2008 附带了用于这些类型的 .NET 库,但您需要将 SQL 用于空间索引。
有没有人使用任何 .NET 库来存储空间数据(操作系统或商业)?我正在查看 NetTopologySuite,但它看起来很安静,我不想要一个死库。
SharpMap 是一个(众所周知和使用的).NET 空间库的开源集合
http://www.codeplex.com/SharpMap
ESRI 的商业图书馆将是最广泛使用的。请问您为什么不想使用 SQL 来创建空间索引?
http://msdn.microsoft.com/en-us/library/bb964712.aspx
如果您不想在数据库中创建索引,那么您将无法使用 shapefile:
http://mapserver.org/utilities/shptree.html
更新
我没有使用过 NTS 或 JTS,但在http://trac.osgeo.org/geos/也有一个 JTS 的 C++ 实现,它有一个活跃的用户社区,我已经在几个项目中使用过。
Shapely http://gispython.org/shapely/manual.html基于 Python 中的 GEOS 构建。如果您在“云”中做所有事情,那么这篇文章可能值得一读 - http://sgillies.net/blog/986/manipulimization-of-whatchamacallems/
重新索引 - 我发现 SQL Server + 空间索引的性能优于具有相同数据的 shapefile + 索引。如果您需要索引来显示数据,那么切片缓存的性能将远远好于任何索引。
Python 似乎已成为 GIS 中的关键语言之一。还有一个 R 型索引库 - http://pypi.python.org/pypi/Rtree/
NTS 不错...
现在或以后可能有用的其他东西:-
GDAL/OGR 用于访问不同的光栅/矢量格式 PROJ4 用于处理投影和变换(在 1 次安装中查看上述 FWTOOLS 下载)
您也应该查看 Mapwindow...第 6 版全部用 .NET 重新编写,如果尚未发布,应该很快就会发布.. 在悉尼的 FOSS4G 看到它。
当然,带有 PostGIS 的 PostGRES 是一个非常强大的空间数据库,您可以从 .NET 访问
另请查看具有矢量 dat 空间扩展的 SQLLite,以及现在的 RasterLite!
地理服务器或地图服务器,如果你想启用任何东西。
其他要检查的通用 GIS 应用程序:GRASS 和 SAGA
QuadTree 的简单方法 http://www.codeproject.com/KB/recipes/QuadTree.aspx
我会建议DotSpatial
其麻省理工学院许可