In QGIS Straßennamen hintereinander ausrichten

14

Ich versuche, Straßennamen in QGIS so weit wie möglich in einer Zeile oder Spalte auszurichten. Ich weiß, dass es in Adobe Illustrator mit einem Mapping-Plugin möglich ist, aber ich habe nicht das $$ dafür.

Ich habe versucht , so etwas wie dies , aber es hat nicht nicht zu Hilfe zu sein scheint.

Dies ist ein Beispiel: Bildbeschreibung hier eingeben

Es muss nicht genau so sein, aber ich möchte etwas Ähnliches tun.

Troy Buerge
quelle

Antworten:

24

(1) Zeichnen Sie eine Linie als Richtlinie für die Etikettenposition.

In diesem Beispiel hat diese guidelineEbene ein ID-Feld "fid"mit nur einem Wert ( 1).

(2) Gehe zum Layer properties | Labels | Placement.

Dort wirst du finden Data defined | Coordinate X and Y. Wählen Sie in jedem Pulldown-Menü die Option Bearbeiten .

Bildbeschreibung hier eingeben

(3) Geben Sie einen Ausdruck an:

x: x(intersection($geometry, geometry(get_feature('guideline', 'fid', '1'))))

y: y(intersection($geometry, geometry(get_feature('guideline', 'fid', '1'))))

Bildbeschreibung hier eingeben

(4) Blenden Sie als letzten Schritt die Richtlinie aus. Wählen Sie die Hilfslinienebene aus und ändern Sie die Symbologie in No Symbols.

Bildbeschreibung hier eingeben

Kazuhito
quelle
Ich bin immer wieder erstaunt, was wir mit den verschiedenen Funktionen / Ausdrücken anfangen können. Ein weiterer Anwendungsfall zum Erinnern!
Gabriel C.
@ GabrielC. Ich kann dir nicht mehr zustimmen. Ich bin dem QGIS Dev Team so dankbar für diese erstaunlichen Ausdrücke!
Kazuhito
Beeindruckend! Danke vielmals! Noch 1 Frage und ich werde das definitiv als meine Antwort markieren. Wie füge ich dann eine zweite Zeile hinzu, wenn meine Straßen in einen anderen Landkreis führen und andere Namen benötigen, oder um die Straßen in die andere Richtung zu führen?
Troy Buerge
Ich weiß, dass es möglich ist, ein Duplikat der Straßenebene zu erstellen, in der nur Beschriftungen und keine Symbole angezeigt werden, und die Beschriftungen für "(" Richtlinie "," FID "," 2 ") zu markieren. Aber ich bin mir sicher, dass dies der Fall ist ein besserer Weg.
Troy Buerge
Danke @TroyBuerge Aber es tut mir leid, ich kann mir keine bessere Lösung vorstellen, als Sie in Ihrem Kommentar haben.
Kazuhito