Etichetta con simbolo

Nella lista utenti QGIS italiani chiedono:

Cari utenti,
sono qui a chiedervi se è possibile fare una stampa dove si può riportare
accanto alle etichette il simbolo come in legenda.

io rispondo che è possibile e suggerisco la lettura di questo mio blog post.

Il vero problema da superare è l’acquisizione del tema utilizzato nella tematizzazione tramite il metodo Categorizzato, ma qui entra in gioco un caro amico, Giulio Fattori, con cui abbiamo studiato e realizzato decine di funzioni personalizzate (vedi qui), che crea una funzione personalizzata che permette di catturare il colore (e altre impostazioni) utilizzate nella tematizzazione e quindi personalizzare l’etichetta con simbolo (come nello screenshot di sopra).

L’espressione personalizzata va utilizzata nel costruttore delle espressioni e ci permette di catturare (colore, stile riempimento, colore tratto, spessore tratto, stile tratto, stile unione e offset) del tema utilizzato nella categorizzazione, ecco la guida in linea:

Sotto descriverò due metodi diversi per ottenere le Etichette con Simbolo: il primo molto veloce che sfrutta le enormi potenzialità del motore di etichette di QGIS; nel secondo metodo descriverò la procedura studiata da Giulio Fattori, una procedura più lunga ma che permette di ricreare perfettamente il simbolo.

PRIMO METODO

Questo metodo cerca di sfruttare al massimo le potenzialità del motore di etichettatura di QGIS compresa la formattazione HTML, vediamo i passi necessari per realizzare l’etichetta con simbolo:

  • Tematizzare il layer Reg01012022_G_Wgs84 usando il metodo Categorizzato;
  • Attivare le etichette e utilizzare la seguente espressione:
'██ '||'
<span  h style="color:black">'||"DEN_REG"||'</span>'

riga 1:

'██ '

è un simbolo preso dalla Mappa Caratteri presente in Windows, il colore sarà quello del tema relativo alla regione;

riga 2:

<span  h style="color:black">'||"DEN_REG"||'</span>'

imposto dei tag HTML per fissare il colore del testo (DEN_REG) in nero (black).

poi posso utilizzare tutti le altre opzioni del motore di etichettatura, come per esempio, le Linee di Richiamo:

possiamo utilizzare solo il colore, ma la procedura è velocissima!!!

SECONDO METODO

Come già accennato questo secondo metodo è leggermente più complesso ma ha molte più possibilità di personalizzazione del simbolo e quindi sfruttare al massimo le proprietà estratte con la funzione personalizzata get_cat_param.

Per prima cosa occorre creare un altro layer con i centroidi dei poligoni e su questo applicare le personalizzazioni:

Per poter spostare i simboli associati al centroide occorre spostare fisicamente il centroide usando l’apposito comando:

per poter tracciare le Linee di Richiamo occorre aggiungere un altro layer al tema e definirlo con il Generatore di Geometria usando l’espressione:

make_line(
centroid(@geometry),
centroid(geometry(get_feature_by_id('Reg01012022_G_Wgs84',@id))
)) 

Ecco il risultato finale:

NOTE FINALI: Non sarebbe male avere questa possibilità di visualizzare il simbolo accanto all’etichetta direttamente nel core di QGIS, ma occorrerebbe fare una raccolta fondi e chiedere ad un developer di implementarla; comunque abbiamo visto che QGIS ha mille possibili configurazioni e con l’ausilio delle espressioni possiamo fare molte cose belle!!!


RIFERIMENTI

RINGRAZIAMENTI

  • Pierluigi De Rosa – per la domanda
  • Giulio Fattori – per la funzione e la procedura

I MIEI CANALI – ISCRIVITI


Se il blog post Ti è piaciuto cliccate su ‘Mi piace’, grazie!!!
if you liked the blog post click on ‘Like’, thank you !!!

SE IL POST/BLOG TI È STATO UTILE CONTRIBUISCI A MANTENERLO AGGIORNATO PAYPAL


Pubblicità

Rispondi

Inserisci i tuoi dati qui sotto o clicca su un'icona per effettuare l'accesso:

Logo di WordPress.com

Stai commentando usando il tuo account WordPress.com. Chiudi sessione /  Modifica )

Foto di Facebook

Stai commentando usando il tuo account Facebook. Chiudi sessione /  Modifica )

Connessione a %s...

Questo sito utilizza Akismet per ridurre lo spam. Scopri come vengono elaborati i dati derivati dai commenti.