PostGIS 与 SQL Server 的 GIS 数据

Low*_*n M 17 sql-server database-recommendation spatial postgis

所以我最近在一家新公司开始工作,有很多 ArcGIS 用户似乎非常热衷于使用 PostGIS 实例为我们的客户提供一些数据。虽然我对此没有意见,但我们是 95% 的 SQL Server 和 5% 的 Oracle 商店。我们当前的内部 GIS 运行在 SQL Server 上,我还没有听到任何抱怨。

我知道 SQL Server 截至 2012 年有很多改进的空间/几何功能,但是 PostGIS 中是否有任何值得进入新平台的杀手级功能?我试图研究它,但找不到任何真正深入的东西,或者这不完全是偏见。

我想给他们最好的工具来完成他们的工作,但也必须权衡一个事实,即我将从一开始就学习 Postgres/GIS,这本身就是一个完整的旅程。

小智 23

我使用过 Postgres 和 SQL Server。我发现 Postgres 在 GIS 功能方面更胜一筹。虽然我将在下面简要详细介绍我的发现,但我建议这样做: 给自己一个简短但合理的时间段来回顾你所知道的不熟悉的解决方案,并记住特定的目标。例如,可能需要 2 周的时间来安装和学习当前使用的某些特定功能。如果您发现在那段时间内遇到困难或缺乏功能,那么您就知道它不适合您。这是一项对研究的投资,可以拓宽您的视野并帮助您意识到您可能遗漏了一些您以前不知道的东西,或者只是确认您当前的课程是正确的。

就数据库而言,我发现 Postgres 的学习曲线更短、更浅。文档简直令人难以置信。SQL Server 确实有相当多的文档,但我发现很多文档很难阅读,没有足够的示例和教程。

PostGIS vs SQL Server Spatial 与上述文档类似,但 PostGIS 在功能上击败了 SQL Server Spatial。例如,Google Maps 和 Bing Maps 最近在其地图 API 中添加了完整的 geoJSON 支持。好吧,PostGIS 可以使用ST_AsGeoJSON()直接从数据库查询中轻松返回 geoJSON 结果。然后可以将此 geoJSON 结果直接传递给可以理解 geoJSON 的任何内容。SQL Server 要求您使用额外的库和处理,或使用 ogr2ogr。此外,PostGIS 有 300 多个函数可用于数据进出数据库的转换,而 SQL Server 大约有 70-100 个。


N8a*_*lan 6

在使用了这两个系统的 GIS 功能后,我建议如下:

  • 如果您主要希望存储和查询几何图形,那么它们的功能相当相似。
  • 如果您想执行栅格操作,PostGIS 是您唯一的选择,无需第三方插件(例如 ArcGIS 的 ST_Raster)。SQL Server 将存储图像,但如果您想要进行光栅操作或查询,则无需考虑它。
  • 有些人可能会对此提出异议,但总的来说,我发现 SQL Server 更快、更一致。如果所有其他条件都相同,对于生产运行时,我更喜欢它。
  • PostgreSQL 拥有更丰富、更优雅的 SQL 方言,以及更少受到任意限制的查询处理器。就语言的力量和优雅而言,没有任何可比性,pgSQL 让 TSQL 看起来像孩子的潦草字。我考虑过写一本关于 Transact SQL 有多糟糕的书作为学习良好语言设计的一种方法。:-)