9

我正在考虑在不使用 SQL2008 的情况下在 .NET 中实现空间查询。第一个要求是能够创建(BTree 风格的)空间索引并能够查询它。

尽管 SQL 2008 附带了用于这些类型的 .NET 库,但您需要将 SQL 用于空间索引。

有没有人使用任何 .NET 库来存储空间数据(操作系统或商业)?我正在查看 NetTopologySuite,但它看起来很安静,我不想要一个死库。

4

4 回答 4

9

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/

于 2010-02-04T13:08:07.707 回答
4

NTS 不错...

现在或以后可能有用的其他东西:-

GDAL/OGR 用于访问不同的光栅/矢量格式 PROJ4 用于处理投影和变换(在 1 次安装中查看上述 FWTOOLS 下载)

您也应该查看 Mapwindow...第 6 版全部用 .NET 重新编写,如果尚未发布,应该很快就会发布.. 在悉尼的 FOSS4G 看到它。

http://www.mapwindow.org/

当然,带有 PostGIS 的 PostGRES 是一个非常强大的空间数据库,您可以从 .NET 访问

另请查看具有矢量 dat 空间扩展的 SQLLite,以及现在的 RasterLite!

地理服务器或地图服务器,如果你想启用任何东西。

其他要检查的通用 GIS 应用程序:GRASS 和 SAGA

于 2010-02-10T07:28:21.370 回答
2

QuadTree 的简单方法 http://www.codeproject.com/KB/recipes/QuadTree.aspx

于 2010-07-15T09:01:19.530 回答
-1

我会建议DotSpatial

其麻省理工学院许可

于 2020-05-04T14:16:58.527 回答