更新されたシェープファイルで変更された行を確認する方法は?


15

郡のGISデータを使用し、OpenStreetMapの道路を更新しています。昨年公開されたコピーと公開されたばかりのコピーがあり、属性またはジオメトリが変更されたLineStringをすべて検索したいと思います。これにより、OpenStreetMapですべての新規および修正された道路が更新されるようになります。

QGISやPython / OGRなどのFOSSソフトウェアを使用してこれを行いたいです。道路セグメントには一意の識別子が必要です。そのため、私の唯一の考えは、両方のシェイプファイルを開き、古い(追加されたセグメント)に存在しない新しいセグメントを見つけ、逆(削除されたセグメント) 、その後、構成座標を比較して一致したペアをループ処理し、変更があったかどうかを確認します。

これは良いアプローチですか?もっと簡単な方法はありますか?


3
それはあなたがのArcGISにQGIS相当を探しているように聞こえる比較機能
PolyGeo

+1-本当に興味深い質問。属性テーブルでシェイプファイルを選択し、コピー(ctrl-C / cmd-C)し、テキストエディターで貼り付けてWKTテキストを直接比較することにより、QGISでシェイプファイルを比較することを見てきましたが、セグメントと明らかに退屈です。この質問から良い解決策が出てくるのを見ることに非常に興味があります。OSMデータの場合、個々の機能の履歴もダウンロードできますが、一般的なソリューションがあると便利です。
シンバマング

回答:


8

あなたがする必要があるのは、時間分析です。あなたが言ったように、あなたは異なる時間の2つのベクトルデータ(shp)を持っています。ジオメトリ処理を使用して変更を見つけることができます。QGISでは2つのベクトルとGoTo Vector-> GeoProcessingをロードし、そこから結果として別の形状を与える差分機能を使用できます。

役立つことを願っています


+1-これは、1か月離れた2つのOSMデータセットに対してうまく機能し、変更されたオブジェクトの属性を保持するレイヤーをもたらします。
シンバマング

1
ただし、これはジオメトリが変更された場合にのみ機能します。属性の変更はどうですか?
sweet.sugar.cola
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.