Ich versuche, den gleichen Beschriftungsstil wie die Ausrichtung der senkrechten Platzierung von ArcGIS in QGIS zu erhalten. Da QGIS diese Funktion nicht standardmäßig hat, wird für diese Option eine benutzerdefinierte Platzierung verwendet.
Ein ArcGIS-Beispiel:
Eine Problemumgehung in QGIS
Die Einstellungen:
Datendefinierte Koordinate X (Beschriftung in der Mitte der Linie):
$x_at( num_points( $geometry)/2)
Datendefinierte Koordinate Y (entspricht der Position von X):
$y_at( num_points( $geometry)/2)
Daten definiert Rotation:
angle_at_vertex( $geometry , num_points( $geometry)/2)
Nur für 2/3 Etiketten ist die Platzierung akzeptabel. Für Linien mit vielen Unterbrechungen mit unterschiedlichen Winkeln ist es schwieriger, eine schöne Beschriftung zu erhalten.
ArcGIS scheint das Liniensegment mit weniger Unterbrechungen oder einem geraden Segment zu durchsuchen. Gibt es eine Möglichkeit, Koordinaten oder Geometrien des geradesten Liniensegments mit dem Ausdrucksgenerator für eine bessere Beschriftungsplatzierung zu erhalten?
line_interpolate_angle($geometry, some lenght)
und mehrere genommenangle_at_vertex( $geometry , num_points( $geometry))
. Eine Schleife über diese Funktion könnte ein Ansatz sein, aber ich kann es nicht direkt in Expresion Builder tunAntworten:
Tatsächliche Problemumgehung
Angenommen, diese Art von Geometrien:
Ich habe versucht, eine gute Stelle zu finden. Ich arbeite auch mit Atlas, daher habe ich einen Abstand von 3% des Atlas-Features vom mittleren Teil der Interpolationslinie pro Scheitelpunkt des Features verwendet, um Beschriftungen zu platzieren:
Etwas wie das:
Und ich erstelle einen Pfeil vom mittleren Scheitelpunkt des Features zum Etikett:
Die Einstellungen:
Pfeil:
Geometriegenerator
Etikette
Daten definieren X.
Daten definieren Y.
Vielleicht könnte dies für jemanden hilfreich sein.
Wenn es einen besseren Ansatz gibt, freuen wir uns über ihn.
quelle