Facendo uso del Geometry generator
tipo di livello del simbolo, disegno rettangoli di dimensioni @nv_bg_w
(larghezza) e @nv_bg_h
(altezza) (variabili di progetto) per allineare le caratteristiche, a coordinate text_x, text_y
(attributi, se non NULL
) o in alternativa al centro della linea con la seguente espressione:
geom_from_wkt(
'POLYGON((' ||
COALESCE("text_x", x(point_on_surface($geometry))) ||' '|| COALESCE("text_y", y(point_on_surface($geometry))) || ','||
(to_real(COALESCE("text_x", x(point_on_surface($geometry)))+ @nv_bg_w )) ||' '|| COALESCE("text_y", y(point_on_surface($geometry))) || ','||
(to_real(COALESCE("text_x", x(point_on_surface($geometry)))+ @nv_bg_w )) ||' '|| (to_real(COALESCE("text_y", y(point_on_surface($geometry))))- @nv_bg_h ) || ','||
COALESCE("text_x", x(point_on_surface($geometry))) ||' '|| (to_real(COALESCE("text_y", y(point_on_surface($geometry))))- @nv_bg_h ) || ','||
COALESCE("text_x", x(point_on_surface($geometry))) ||' '|| COALESCE("text_y", y(point_on_surface($geometry)))|| '))'
)
Come si può vedere x(point_on_surface($geometry))
e y(point_on_surface($geometry))
accadere molto spesso. Almeno in questo semplice esempio, questo rende il codice più difficile da leggere di quanto dovrebbe.
Quindi la mia domanda è: c'è un modo per memorizzare le ultime espressioni in alcune variabili temporanee, qualcosa come (pseudocodice):
@mx=x(point_on_surface($geometry))
@my=y(point_on_surface($geometry))
geom_from_wkt(
'POLYGON((' ||
... #and so on