Ich habe zwei Vektor-Shapefiles: Eine Datei ist Punkte, die Mannlöcher darstellen, und die andere ist eine Polyliniendatei, die Rohre darstellt, die zu und von den Mannlöchern führen. Ich muss die Leinen in einem bestimmten Abstand zum nächsten Mannloch einrasten lassen.
Gibt es einen einfachen Weg, dies zu erreichen, ohne es manuell zu tun?
Aktualisieren
Laut Alexandre habe ich meine Shapefiles in das Spatialite-Format exportiert. Ich bin mir nicht sicher, was ich als nächstes tun soll.
Update Nr. 2 Ich habe eine neue Datenbankdatei erstellt und Shapefiles mit Spatialite-GUI in die neue Datenbank importiert. Ich habe meine SQL-Abfrage angepasst.
Antworten:
Wenn Sie bereit sind, Ihre Daten in Postgis (oder Spatialite ) abzulegen , können Sie ST_Snap verwenden , um das zu tun, was Sie möchten.
Verwenden Sie einfach die Ebene Linien \ Tabelle als Eingabe und die Ebene Punkte als Referenz, und legen Sie die Toleranz fest. Etwas wie das:
Das Ergebnis ist folgendes:
Anschließend können Sie Ihre Geometrien mithilfe der Feature-ID aktualisieren.
quelle
Ich weiß nicht viel über QGIS oder GRASS, aber ein schnelles Googeln hat ergeben, dass v.clean in GRASS den Trick machen sollte.
Schauen Sie sich diesen und diesen Beitrag an .
Alternativen zu QGIS und GRASS:
Wenn ich dies in ArcGIS tun würde, würde ich meine Daten wahrscheinlich in einem Feature-Dataset in einer File-Geodatabase speichern und eine Topologie erstellen , um Bereiche zu identifizieren, in denen sich der Punkt-Layer nicht auf den Endpunkten der Linien befand. Anschließend können Sie die Fehler mit dem Fehlerinspektor beheben .
Die wahrscheinlich schnellste und einfachste Lösung wäre jedoch die FME. Sie können versuchen, das Snapper-Tool oder besser noch das AnchoredSnapper-Tool zu verwenden . Wenn Sie den AnchoredSnapper verwenden, stellen Sie sicher, dass der Fangtyp Endpunktfang ist. Natürlich benötigen Sie eine Lizenz für FME. Sie können jedoch eine 14-Tage-Testversion herunterladen, wenn Sie keine haben.
quelle
In QGIS können Sie mit Geometrien an Layer ausrichten, was Sie möchten. Siehe diesen Thread Wie fange ich Linien am nächsten Punkt?
quelle
Manueller Weg
Qgis -> Einstellungen -> Fangoptionen (und ich bin nicht sicher, aber es könnte eine CadTools-Erweiterung erfordern) und die topologische Bearbeitung aktivieren.
Automatischer Weg
v.clean in GRASS-Tools in der SEXTANTE-Toolbox in QGIS. Wenn Sie PostGIS 2.0 haben, dann ST_Snap und ST_SnapToGrid () (und es gibt keinen Grund, warum Sie es nicht verwenden können, es ist ein sehr gutes räumliches Werkzeug)
Kommerzieller Weg
FME- und MRF-Tool (kommerzielle Erweiterung, ich hatte eine Evaluierungsversion. Es war sehr gut).
Ich interessiere mich auch für die Verwaltung von Wasserrohren und Abwasserkanälen mit Open-Source-Tools. Haben Sie Tipps?
quelle