Gibt es eine QGIS-Funktion oder ein Plugin zum Zeichnen einer wackeligen Linie?
Ich habe das Spline-Tool zum manuellen Zeichnen einiger Wellen verwendet, aber es ist zeitaufwändig. Wenn möglich, möchte ich etwas zeichnen wie:
Inkscape Function Plotter
( sin(x)
Kurve).
qgis
line
visualisation
linestring
Kazuhito
quelle
quelle
Antworten:
Ich schlage eine Lösung mit PyQGIS vor. Es sollte sowohl für Linestring- als auch für MultiLineString-Layer funktionieren.
Diese Lösung basiert auf der Erstellung von Halbkreisringen. Sie müssen daher einen Wert für den Durchmesser festlegen (dh die
step
Variable im folgenden Code). Der Schritt, den Sie auswählen, ist nicht der tatsächliche Schritt, der verwendet wird, da er auf der Grundlage der Zeilenlänge angepasst wird (er wäre jedoch dem ursprünglich festgelegten Wert sehr ähnlich). Sie müssen einige Versuche durchführen, bevor Sie den besten Wert für diestep
Variable finden.Der Code erfordert auch einen zweiten (optionalen) Parameter (genannt
crv_angle
), der dazu beiträgt, die Krümmung der Ringe zu verringern oder zu erhöhen (ich habe einige Tests durchgeführt, daher schlage ich vor, 45 Grad als Standardwinkel zu belassen, da dies zu einer echten Kreisform führen würde Ringe).Sie müssen diesen Code nur in der Python-Konsole ausführen:
und es wird eine neue Zeilenspeicherebene mit dem erwarteten Ergebnis erstellt:
quelle
Kurze Antwort: Sie können es mit einem benutzerdefinierten SVG erhalten. Siehe unten in diesem Beitrag.
Lange Antwort:
Ich glaube, es ist besser, es darzustellen, als die Liniengeometrie zu modifizieren. Wenn Sie eine Kante verschieben oder andere Aktionen an der Geometrie ausführen möchten, ist es ein Albtraum, wenn die Wackelbewegungen Teil der Geometrie sind, anstatt nur eine gerade Linie darzustellen.
Sie können mit der Stilmarkierungslinie spielen. Es gibt eine Möglichkeit, schnell an das heranzukommen, was Sie benötigen, und mit etwas mehr Aufwand ist es wahrscheinlich möglich, genau das zu erreichen.
Um dies zu erreichen, würden Sie die Linie mit zwei Markierungslinien stylen. Jede Markierungslinie besteht aus einer einfachen Markierung, dem Halbkreis. Die erste wird um 180 gedreht. Beide sind auf transparent eingestellt.
In der Markierungslinie weisen Sie einen von ihnen an, versetzt zu sein, damit die beiden Symbole nicht voreinander, sondern nebeneinander gezeichnet werden. Wenn Sie offest = 1/2 * Intervallgröße verwenden, ist die Ausgabe eine Sinuskurve. Ich schlage vor, Sie spielen mit der Intervallgröße, dem Versatz und den Symbolgrößen.
Die Hauptbeschränkung bei diesem Ansatz ist die Durchmesserlinie der Halbkreise, die sich zur ursprünglichen Linie summiert. Wenn Ihr Hintergrund weiß ist (oder eine normale Farbe), können Sie eine dritte einfache Linie mit der Hintergrundfarbe hinzufügen.
** EDIT **
Eine weitere Möglichkeit, die Mittellinie zu entfernen, besteht darin, ein neues SVG-Symbol zu erstellen. Ich habe die Halbkurve modifiziert und nur den abgerundeten Teil gelebt. Es funktioniert, obwohl eine 1/2-Ellipse ansprechender sein könnte. Der Screenshot wurde mit Symbolgröße 10, Intervall 4, Offset 2 erstellt.
Speichern Sie den folgenden Code in einer Datei half_circle_line.svg und vergewissern Sie sich, dass der Pfad zur svg angegeben ist
QGIS // Settings / Options / System / SVG Paths
quelle
Pen style
zu No Pen ändern :)