这对 GIS 可行吗?
Posted
技术标签:
【中文标题】这对 GIS 可行吗?【英文标题】:Is this feasbile with GIS? 【发布时间】:2010-05-07 23:13:29 【问题描述】:我只是让自己熟悉 GIS,但我想事先了解以下内容是否适用于当前的 GIS 应用程序/工具...
-
我通过地理编码得到地址的要点。简单的部分。
现在,如果该点位于边界内(可能是城市/县/州),那么我需要获取与边界关联的数据(任何 ID/标志)。
然后根据 id/flag 我应用一些业务逻辑。
我的问题是……
-
如何定义边界?我应该使用什么工具?
如何将边界定义存储在数据库中以检查点是否在其中?这必须在后端完成,而不是在可视地图中完成,因为我们不打算显示/使用地图。
如何将我的自定义数据(id/flag)与上述边界定义相关联?
希望我对 GIS 的功能有正确的假设。我看到的大多数示例都是围绕人们试图用数据显示地图的,而这正是我想要的。另外请向我推荐一些有关此的工具/书籍。
【问题讨论】:
【参考方案1】:如何定义边界?我应该使用什么工具?
边界可以是(也可能是)一个形状(多边形、多多边形),您可以以任何当前的 GIS 格式提供它。您需要考虑您提供的投影和基准。
如何将边界定义存储在数据库中以检查点是否在其中?
使用 PostGreSQL 和它的空间扩展 (Postgis)。将 (1) 中的多边形导入数据库(例如使用FWTOOLSogr2ogr
)。这将在表中为您生成一个不错的几何字段,您可以在其上以标准 SQL 方式使用漂亮的 Postgis geometry functions(St_Intersects 在这里是合适的:找出该点在地理上是否与我们的多边形“相交”,或者您可以使用 ST_Within找出该点是否与多边形很好地吻合)
如何将我的自定义数据(id/flag)与上述边界定义相关联?
只需在存储geometry
的表中添加一个额外的列。
【讨论】:
实际上,ST_Intersects 和 ST_Within 在根据多边形检查点时是相同的。但是,是的,这是要走的路。请确保您了解投影和基准面的 GIS 概念,因为它们仍然适用于数据库。 完美地回答了我正在寻找的东西。当我开始这段旅程时,我发现我需要一些关于 GIS 的基础知识,并在基准和投影utsa.edu/lrsg/Teaching/ES2113/L4_projection.pdf 周围找到了这个。很有帮助。 +1。我还要提到您可以使用任何启用空间的数据库,其方式类似于在此答案中使用 Postgis。例如 SQL Server 和 mysql 有内置的空间扩展(在以后的版本中)。 正如 Andrew 所说,确保边界中使用的坐标与地理编码中使用的坐标兼容。否则,当您查询该点是否与多边形“相交”时,您将得到错误的答案。值得学习一点 - 你可以从这里开始sharpgis.net/post/2007/05/05/…以上是关于这对 GIS 可行吗?的主要内容,如果未能解决你的问题,请参考以下文章