Wie kann man ein so schlechtes Shapefile für das Routing bereinigen?

16

Ich versuche, ein Shapefile zu bereinigen, um es für das Routing mit pgrouting, postgis, postgresql zu verwenden.

Hier eine Kreuzung, sie scheint doch verbunden zu sein, wenn wir zoomen…. Es ist nicht:

nicht gezoomt 1 gezoomt 1

Hier gilt das gleiche :

nicht gezoomt 2 gezoomt 2

Hier (es wird mit maximalem Zoomfaktor gezoomt) gibt es zwei Möglichkeiten, bei denen es sich um eine zu handeln scheint und nur eine verbunden ist:

gezoomt bei max 2

Ich verwende assign_vertex_id mit unterschiedlichen Toleranzen sowie QGIS und PostGIS, aber ich weiß nicht, was ich darin verwenden soll.

Hokkos
quelle
Ich frage mich: Sind das wirklich Fehler? Beispielsweise könnten beide Situationen verwendet werden, um eine Einbahnstraße darzustellen, die auf eine Einbahnstraße trifft. Dies kann ein kritisches Problem sein, da Sie keine neuen Fehler einführen möchten, um andere zu beseitigen!
Whuber
Tatsächlich ist es nur ein schrecklich schlechtes Shapefile, ich möchte ein extrem einfaches ungerichtetes Routing, und was Sie sehen, ist sehr gezoomt.
Hokkos

Antworten:

12

Sie können GRASS verwenden, um etwas zu reinigen. Ich denke, Sie müssen diese Vektoren brechen, um Duplikate zu entfernen und sie dann zu fangen. Dafür gibt es das Tool v.clean mit den Optionen break, rmdupl and snap.

Pablo
quelle
4

Versuchen Sie in PostGIS, ST_SnapToGrid zu verwenden , um Scheitelpunkte an einem virtuellen Raster auszurichten . Sie müssen einige Detektivarbeiten durchführen, um die zu verwendende Fangentfernung zu bestimmen. Es kann 0,01 (1 cm) oder 1,0 usw. sein.

Mike T
quelle