如何查看更新的Shapefile中的哪些行已更改?


15

我正在使用县的GIS数据更新OpenStreetMap中的道路。我有一个它们去年发布的副本,一个刚刚发布的副本,我想找到所有属性或几何形状发生变化的LineString。这将帮助我确保在OpenStreetMap中更新所有新的和经过修改的街道。

我想使用FOSS软件(例如QGIS或Python / OGR)进行此操作。街道路段应具有唯一的标识符,因此,我唯一的想法是编写一个Python脚本,该脚本可同时打开Shapefile,查找新区中不存在的任何路段(添加的路段)和反向路段(已删除的路段) ,然后循环比较匹配的对,比较它们的组成坐标以查看是否有任何变化。

这是一个好方法吗?有没有更简单的方法?


3
这听起来像你正在寻找QGIS相当于到ArcGIS 功能比较
PolyGeo

+1-非常有趣的问题。我通过在属性表中选择shapefile,复制(ctrl-C / cmd-C)并将其粘贴到文本编辑器中以直接比较WKT文本来比较QGIS中的shapefile,但这样做并不能将其细分段,显然很乏味。很高兴看到这个问题提出了一个好的解决方案。对于OSM数据,您也可以下载各个功能的历史记录,但是拥有通用解决方案将非常不错。
Simbamangu 2012年

Answers:


8

您需要做的是时间分析。如您所说,您有两个不同时间的矢量数据(shp)。您可以使用几何处理找到更改。在QGIS中,加载两个向量,然后转到GoTo Vector-> GeoProcessing,然后从那里可以使用Difference函数,从而得到另一个形状。

希望能有所帮助


+1-每月间隔两个OSM数据集可以很好地工作,从而形成一个保留更改对象属性的图层。
Simbamangu '11年

1
但这仅在几何形状发生变化时才有效。那属性改变呢?
sweet.sugar.cola
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.