Ist es möglich, einen Beschriftungsausdruck in qgis zu schreiben, der die Beschriftung an einer bestimmten Koordinate anzeigt?

15

Ich verwende den QGIS-Ausdrucksgenerator für die Beschriftungseigenschaften meiner Daten.

Ist es möglich, verschiedene Teile des Etiketts in verschiedenen Koordinaten auf der Karte zu platzieren?

Zum Beispiel habe ich eine Linienfolge und ich möchte, dass "A" am Anfang der Linienfolge und "B" am Ende angezeigt wird.

benoitespinola
quelle

Antworten:

22

Eine Methode besteht darin, die regelbasierte Kennzeichnung zu verwenden und zwei Regeln für "A" und "B" hinzuzufügen.

  1. Gehen Sie zu Layer Properties > Labelsund ändern Sie die Option No labelsin Rule-based labelling. Fügen Sie dann eine Regel hinzu, indem Sie auf das grüne Plus-Symbol klicken:

    Regelbasierte Kennzeichnung

  2. Stellen Sie die relevanten Optionen wie gezeigt ein Label with(verwenden Sie etwas 'A') und Coordinate X Y. Klicken Sie für die x-Koordinate auf Edit...und $x_at(0)platzieren Sie die Beschriftung mit am Anfang der Linienfolge. Verwenden Sie für die y-Koordinate $y_at(0).

    Regeloptionen

  3. Wiederholen Sie Schritt 2 für die „B“ , aber für die XY-Koordinaten, die Verwendung $x_at(-1)und die $y_at(-1)jeweils für das Ende der Linienfolge.

  4. Wenn Sie auf Übernehmen klicken , sollten Sie hoffentlich Folgendes sehen:

    Linien mit Beschriftungen

Joseph
quelle
1
Vielen Dank für die Freigabe Ihrer Lösung! Ich werde es mir genauer ansehen. Ich bin ziemlich neu bei QGIS und die Lernkurve steht noch am Anfang.
Benoitespinola
@benoitespinola - Entschuldigung, dass ich nicht antworte (ich antworte normalerweise auf Kommentare)! Sehr willkommen und ich bin sicher, dass Sie sich sehr schnell an QGIS gewöhnen werden :)
Joseph
11

Es gibt eine alternative Möglichkeit, dies mithilfe einer Symbologie zu tun, anstatt eine Beschriftung zu verwenden, die für Sie möglicherweise hilfreich ist:

- Wenn Sie unterschiedlichen Text für unterschiedliche Funktionen wünschen, fügen Sie Ihren Daten zwei Felder hinzu, eines für Ihren Endtext und eines für Ihren Starttext. Dies ist nicht erforderlich, wenn Sie nur 'A' und 'B' am Ende der Zeilen wünschen.

  • Symbolisieren Sie Ihre Linienebene und fügen Sie dann eine neue Symbolebene hinzu -> setzen Sie diese auf eine Markierungslinie am ersten Scheitelpunkt
  • Setzen Sie den Symboltyp auf einen Font Marker
  • Setzen Sie den Marker entweder auf 'A' oder setzen Sie den Wert so, dass er mit dem Startfeld aus Ihrer Layerattributtabelle übereinstimmt
  • Muck ungefähr mit Größe und Drehung usw. als würden Sie einen Standardmarker.

Wiederholen Sie diesen Vorgang, um das Ende 'label' hinzuzufügen.

Bildbeschreibung hier eingeben

Ed Rollason
quelle
Nett! Danke für deine Lösung! Ich werde es auch ausprobieren. :)
Benoitespinola