Wer kann helfen. Ich möchte nur die Richtung (Peilung: N 25 35 E) und die Entfernung (Länge: 125 Meter) als mein neues Feld in den Polylinien- / Liniendaten hinzufügen. Gibt es ein Plug-In, um diese Felder zu generieren? Ich habe versucht, "Geometriespalten exportieren / hinzufügen" in meinen Liniendaten zu verwenden, aber es wurde nur der Wert "Länge" hinzugefügt.
18
Antworten:
Sie können die Peilung im Feldrechner in QGIS berechnen. Dies funktioniert in UTM-Koordinaten (metrisch) über kleine Entfernungen (Hunderte von Kilometern). Für große Entfernungen oder Dezimalgrade ist jedoch etwas Feineres erforderlich.
Öffnen Sie die Attributtabelle für Ihre Linienebene, schalten Sie die Bearbeitung ein und klicken Sie auf die Schaltfläche Feldrechner, um das Dialogfeld zu öffnen:
Erstellen Sie ein neues Feld als Dezimalzahl mit einer Genauigkeit von 1 oder 2.
Fügen Sie diesen Code in das Feld "Ausdruck" ein und klicken Sie auf "OK":
(atan((xat(-1)-xat(0))/(yat(-1)-yat(0)))) * 180/3.14159 + (180 *(((yat(-1)-yat(0)) < 0) + (((xat(-1)-xat(0)) < 0 AND (yat(-1) - yat(0)) >0)*2)))
Der erste Teil berechnet den inversen Tangens der x- und y-Differenzen und rechnet ihn in Grad (180 / pi) um. Der zweite Teil addiert entweder 180 oder 360 zu der resultierenden Zahl, um eine Peilung von 0-360 ° zu erhalten.
quelle
Sie brauchen kein Plugin. Alles ist in der Klasse QgsPoint von PyQGIS
Wenn Sie den Inhalt einer QGIS-Punktklasse mit der in Python integrierten Funktion dir () in der Python-Konsole untersuchen.
Sie können sehen, dass es Azimut- und sqrDist- Funktionen gibt. Nach einigen Versuchen:
Das Problem
Also in der Python-Konsole
Jetzt enthält xy alle Knoten (Punkte) der Linie
Verwenden aller Knotenpunkte der Linie:
1) Azimutpunkt i bis Punkt i + 1 (+/- 180 °) (Knoten einer Linie)
2) euklidischer Abstand zwischen Punkt i und Punkt i + 1
Danach ist es nicht sehr schwierig, diese Werte zur Attributtabelle hinzuzufügen.
Ich verwende diese Technik, um die Linien (Geologie) mit matplotlib und dem Script Runner Plugin zu analysieren
quelle
Die von @Simbamangu bereitgestellte Lösung ist ziemlich effektiv, deckt jedoch nicht alle Fälle ab. Wenn Sie beispielsweise die Formel mit einer horizontalen Verschiebung anwenden, wird das Ergebnis NULL. Sie müssen diese Formel daher im Feldrechner von QGIS verwenden
quelle