Ich benutze QGIS und ich habe einen Punkt und das Straßennetz. Ich muss die Straßennamen, die den bestimmten Punkt einschließen, automatisch extrahieren. Analyse- und Pufferzonen für die nächsten Nachbarn können diese Aufgabe nicht ausführen, da der Punkt in vielen Fällen in Abhängigkeit von der gemessenen Entfernung näher an den Nachbarstraßen liegt und nicht an den angrenzenden Straßen. Gibt es irgendwelche Ideen, wie nur die umliegenden Straßen extrahiert werden könnten?
12
Antworten:
Über meine Testdaten:
LÖSUNG I
Wenn es die zwei Annahmen gibt:
Straßen bauen Viertel.
Sie arbeiten in einem metrischen System.
Die Idee ist, die X- und Y-Koordinaten des Punktes zu erhöhen / zu verringern. Wenn Sie in einem metrischen System arbeiten, können Sie 1 m östlich von Ihrem Punkt einen neuen Punkt erstellen und eine Linie mit dem ursprünglichen Punkt erstellen. Sie fahren weiter nach Osten, bis die Linie eine Straße kreuzt. Um nach einer Kreuzung im Westen zu suchen, müssen Sie 1 m von der ursprünglichen X-Koordinate subtrahieren. Gleiches gilt für die Y-Koordinate. Wenn es im Norden / Osten / Süden / Westen keine Straße gibt, hält der Zähler bei 1000 (m). Wenn Sie wissen, dass sich eine Straße in einer Entfernung von mehr als 1000 m befindet, müssen Sie diesen Wert ändern.
Sie können die Aufgabe mit folgendem Code lösen:
Bearbeitet
Ein weiteres Beispiel dafür, dass die Straße e im Osten nicht als nahe gelegene Straße des Punkts erkannt wird.
So rufen Sie die Funktion und den Ausgang auf:
Wenn der Punkt von mehr als 4 Straßen umschlossen ist, müssen Sie in mehrere Richtungen schauen (ändern Sie sowohl X als auch Y). Oder Sie können den Azimut Ihrer Linie ändern, dh Sie können sie um einen Grad im Bereich von 0 bis 360 ° drehen.
LÖSUNG II
Inspiriert von dem Kommentar kannst du auch zuerst
Polygonize
deine Straßen. Dafür können Sie ein Werkzeug aus QGIS benutzenProcessing > Toolbox > QGIS geoalgorithms > Vector geometry tools > Polygonize
. Benennen Sie die temporäre Ebene in umpolygon
. Angenommen, Sie möchten nur die Straßennamen für den Punkt haben, der vollständig von Straßen umschlossen ist. Andernfalls müssen Sie LÖSUNG I verwenden . Dies funktioniert nur, wenn alle Straßen verbunden (eingerastet) sind!Zuerst muss sich der Punkt mit dem Polygon schneiden. Die Idee ist nun, dass sich beide Start- und
AND
Endpunkte einer umschließenden Linie mit dem Polygon schneiden müssen.Die Ausgabe:
quelle