Ich verwende die GIS-Daten meines Landkreises , um die Straßen in OpenStreetMap zu aktualisieren. Ich habe eine Kopie, die sie letztes Jahr veröffentlicht haben, und eine, die gerade veröffentlicht wurde, und ich möchte alle LineStrings finden, deren Attribute oder Geometrie sich geändert haben. Auf diese Weise kann ich sicherstellen, dass alle neuen und geänderten Straßen in OpenStreetMap aktualisiert werden.
Ich möchte dies mit FOSS-Software wie QGIS oder Python / OGR tun. Die Straßensegmente sollten einen eindeutigen Bezeichner haben, daher ist mein einziger Gedanke, ein Python-Skript zu schreiben, das beide Shapefiles öffnet, alle Segmente im Neuen findet, die im Alten nicht vorhanden sind (hinzugefügte Segmente), und das Umgekehrte (entfernte Segmente). und durchlaufen dann übereinstimmende Paare, indem sie ihre Teilkoordinaten vergleichen, um festzustellen, ob sich etwas geändert hat.
Ist das ein guter Ansatz? Gibt es einen einfacheren Weg?
quelle
Antworten:
Sie müssen lediglich eine zeitliche Analyse durchführen. Wie Sie sagten, haben Sie zwei Vektordaten (shp) zu unterschiedlichen Zeiten. Sie können die Änderung mithilfe der Geometrieverarbeitung ermitteln. In QGIS laden Sie zwei Vektoren und GoTo Vector-> GeoProcessing und von dort können Sie die Differenzfunktion verwenden, die als Ergebnis eine andere Form ergibt.
Ich hoffe, das hilft
quelle