Wie erstelle ich Beschriftungen mit Hintergrundfeldern?

13

Ich versuche, einige benutzerdefinierte Beschriftungen für Punkt-Features in einem QGIS-Punktvektor-Layer zu erstellen, und ich möchte dazu ein Python-Plugin schreiben. Wir müssen unsere Etiketten mit farblich getönten Rechtecken dahinter präsentieren (oder sonst!). Die Beschriftungen sind lange Zeichenfolgen und werden mithilfe von Ausdrücken und Bedingungen der Beschriftungsengine erstellt.

Ich dachte, die einfachste Möglichkeit wäre, den Benutzer Beschriftungen für die aktive Ebene so einrichten zu lassen, wie er möchte, und dann zu lassen, dass mein Plugin den Beschriftungstext aus den Features in der Ebene abruft und die Textzeichenfolgen zum Erstellen von Feldern verwendet. Mein Problem ist, dass ich keine Möglichkeit finde, auf diese Textzeichenfolgen in der QGIS-API zuzugreifen. Wie werden von der Label-Engine erzeugte Label-Strings in QGIS gespeichert und wie kann ich darauf zugreifen?

MonsterMushroom
quelle
1
Mit Beschriftungen meinen Sie die Beschriftungen für die einzelnen Punktmerkmale?
RK
Ja. Und ich möchte, dass dies auf Ebenenebene und nicht auf der Ebene des Print-Composers erfolgt. Ich habe versucht, Textbeschriftungsfelder automatisch zu generieren, weil ich nicht wusste, dass es sich um Print Composer-Funktionen handelt, und das war wirklich hässlich.
MonsterMushroom
1
Haben Sie über eine starke Pufferfarbe hinter dem Text nachgedacht? Ich habe das bei einem Job gemacht. Bei einem anderen habe ich dem Kunden nur gesagt, dass dies keine Option ist .... Es scheint eine häufige Anfrage zu sein ....
Willy
1
Der starke Farbpuffer ist meine aktuelle Lösung. Der Client hatte jedoch die Boxen (mithilfe eines Skripts) in seiner ArcGIS-Implementierung und möchte dasselbe in QGIS sehen. (Wir versuchen, das System zu ändern.) Meine aktuelle Antwort lautet, dass dies keine Option ist, aber es macht nie Spaß, darauf zu antworten, und ich würde wirklich gerne etwas aus meiner Tasche ziehen. Außerdem sollten Kästchen um Etiketten etwas sein, was wir tun können. Es macht einfach Sinn.
MonsterMushroom
Ich denke, die Antwort darauf wird sein, dass die Beschriftungen, sobald sie von der Beschriftungs-Engine generiert und im Karten-Canvas gerendert wurden, als SVG-Vektoren und nicht als Zeichenfolgen gespeichert werden und daher nicht mehr wiederherstellbar sind. Ich habe dies auf einem Blog gesehen, konnte es aber noch nicht bestätigen (hatte die Zeit dazu), so dass dies keine offizielle Antwort ist. (Außerdem habe ich erfahren, dass Schildbeschriftungen als Ergänzung für das mit Spannung erwartete 2.0 bearbeitet werden.)
Schildetiketten bearbeitet werden.

Antworten:

1

In QGIS 2.0 können Sie Hintergrundrechtecke, Ovale oder benutzerdefinierte SVG-Formen erstellen, ohne ein Plugin zu benötigen. Gehen Sie einfach zu Layereigenschaften | Label | Abschnitt "Hintergrund".

Bildbeschreibung hier eingeben

Wenn Sie etwas codieren möchten. Dies könnte ein Ausgangspunkt sein: http://doc.qgis.org/api/qgspallabeling_8cpp_source.html#l04333

Underdunkel
quelle
Schön! 2.0 wird fünf Arten von cool sein. Wir erwarten es mit angehaltenem Atem.
MonsterMushroom