Wie kann ich Beschriftung und Punkt mit einer Linie / einem Pfeil verbinden?


12

Ist es in QGIS irgendwie möglich, Bezeichnungen und Punkte mit einer Linie / einem Pfeil oder etwas anderem zu verbinden? In meiner Karte ist nicht klar, welche Beschriftung zu ihrem Punkt passt. Ich kann es nicht näher bringen, weil es noch viele weitere Punkte gibt.Bildbeschreibung hier eingeben


xof solution funktioniert bei mir. Aber ich würde gerne wissen, ob es möglich ist, eine kurze Legende in meiner Formliste zu haben ... nicht wie in diesem Beispiel unten, mit bereits einem kurzen Etikett ... ! [Mein Test ] ( i.stack.imgur.com/8VWoN .png ) Danke!
MathieuG

Antworten:


7
  • Erstellen Sie zunächst Beschriftungsfelder für die X- und Y-Position Ihrer Beschriftungen in Ihrer Punktetabelle.

  • Aktivieren Sie die X- und Y-Position in den Eigenschaften Ihrer Ebene.

überschreiben

  • Erstellen Sie einen neuen "Generator-Ausdruck" -Stil in Ihrem Punktestil, legen Sie den Linientyp fest und verwenden Sie dann die folgenden Formeln:

    make_line (make_point ($ x, $ y), make_point ("LABEL_X", "LABEL_Y"))

Als Erweiterung können Sie verschiedene Felder verwenden (oder ein Plugin verwenden, um alle zu erstellen), um zu steuern, wo sich der Ausrichtungspunkt befindet. Sie können ein Rotationsfeld und ein vertikales und horizontales Ausrichtungsfeld verwenden.

Styling

Die Linie verschiebt sich entsprechend zu Ihrer Etikettenposition, da sich ihr Ankunftspunkt auf das Feld für die Etikettenposition bezieht.


5

Sie können versuchen, das EasyCustomLabeling- Plugin über Plugins > Plugins verwalten und installieren herunterzuladen. Dadurch wird eine duplizierte Speicherebene der ausgewählten Vektorebene erstellt, die dieselben Attribute enthält.

( Beachten Sie, dass Sie auch das Memory Layer Saver- Plugin herunterladen und installieren müssen, um die Memory Layer korrekt zu speichern. Dies wird in der Plugin-Beschreibung beschrieben. )

Sobald Ihre Beschriftungsebene erstellt wurde, können Sie mit der Beschriftungsplatzierung und dem Stil dieser Ebene spielen, um zu versuchen, das zu finden, wonach Sie suchen:

Plugin

Beschriftungsebeneneinstellungen

Beschriftungsebene

Hoffe das hilft!


Vielen Dank an Joseph. Stimmt es, dass ich mit diesem Plugin nur ein Attribut auswählen kann? (Übrigens: Sollte dies auch eine neue Frage sein?)
Kevkev

Nein! Nicht, wenn es eine einfache Ja / Nein-Frage ist =). Sie haben jedoch Recht, nur ein Attribut pro Ebene, sodass Sie auf Wunsch mehrere Beschriftungsebenen erstellen können.
Joseph

Eigentlich ist es möglich. Nachdem Sie die Beschriftungsebene erstellt haben, können Sie die Attribute dort ändern: D
kevkev

@ KevinSuhr - Genial! Danke, ich habe etwas gelernt =)
Joseph

1
Von @underdarks Post; Ein häufiger Anwendungsfall ist der Wunsch, mehrere Attributwerte in der Bezeichnung eines Features anzuzeigen. Mit dem Feldrechner können Sie sie zu mehrzeiligen Beschriftungen kombinieren. Alles was Sie brauchen, ist die Felder mit dem || zu kombinieren Operator und füge '\ n' (newline) hinzu, wo immer ein Zeilenumbruch sein soll: Field1 || '\ n' || Field2
Lee

4

Bezüglich der Methode von gisinside: Der erste Schritt des manuellen Hinzufügens von x / y-Attributen für Beschriftungen kann weggelassen werden. (vielleicht seit QGIS3?) Es gibt bereits eine Hilfsvariable für Label-Positionierungen. Die Variablen heißen dementsprechend "AUX_STORAGE_LABELING_POSITIONX" und "AUX_STORAGE_LABELING_POSITIONY".

Also in Schritt Nr. 2 Mit diesem Ausdruck können Sie Linien zeichnen:

make_line (make_point ($ x, $ y), make_point ("AUX_STORAGE_LABELING_POSITIONX", "AUX_STORAGE_LABELING_POSITIONY"))

Beachten Sie jedoch, dass die Hilfsvariablen nur dann einen Wert erhalten, wenn Sie die Beschriftungen mit dem Verschieben-Beschriften-Werkzeug berühren / verschieben. Daher werden nur Linien für Beschriftungen angezeigt, die manuell verschoben wurden.


Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.