In questo blog post rispondo a questo quesito:
Ho una serie di poligoni (sezioni di censimento) con associata, in una relazione 1:M, una tabella dove più righe corrispondono ad una sezione. Come posso tematizzare la mappa secondo i dati presenti nella tabella associata? ad esempio voglio in rosso tutti i poligoni nella cui tabella associata sia presente nel campo un determinato valore.
Peppe (un utente di questo blog)
La logica da usare e quindi la funzione da utilizzare è descritta in questo mio blog post del 2016, dove utilizzo tabelle in relazione 1:m per etichettare le regioni italiane (in relazione con le province).
Utilizzando gli stessi strati (regioni e province ISTAT) e creando una relazione tra loro (1:m) proviamo a tematizzare le regioni in funzione di attributi presenti nella tabelle province:
tematizzazione (categorizzata) ed etichettatura utilizzando il campo ‘SIGLA’ presente nel layer in relazione:
- per tematizzare (categorizzato) ed etichettare uso l’espressione:
relation_aggregate( ‘rel’,’concatenate’,”SIGLA”,’,’)
ecco un altro caso banale: supponiamo di voler tematizzare tutte le regioni che hanno, nella sigla delle provincia, la lettera A:
- per tematizzare (categorizzato) uso l’espressione:
relation_aggregate( ‘rel’,’concatenate’,”SIGLA”,’,’) ILIKE ‘%A%’
- per etichettare uso l’espressione:
array_to_string(array_filter(string_to_array( relation_aggregate( ‘rel’,’concatenate’,”SIGLA”,’,’)) , @element ILIKE ‘%A%’),’,’)
secondo caso: tematizzare ed etichettare le regioni in funzione del valore area delle province:
- per tematizzare (categorizzato) uso l’espressione:
relation_aggregate( ‘rel’,’max’,$area) <5000000000
- per etichettare uso l’espressione:
format_number( array_to_string( array_filter( string_to_array( relation_aggregate( ‘rel’,’max’,$area,’,’)) , @element <5000000000),’,’)/1000000,0) || ‘ kmq’
per maggiori dettagli sulle funzioni usate consultare la mia guida HfcQGIS.
Buon lavoro con QGIS
Versione di QGIS utilizzata: 3.4.4
Se questo blog post vi è stato utile donate PayPal
Eccezzionale, davvero. Grazie Totó!
Mi piacePiace a 1 persona
grazie a te,
hai messo un like??
Mi piaceMi piace
Certo! non si vede?
Mi piacePiace a 1 persona
si si,
grazie!!!
Mi piacePiace a 1 persona
potenzialità incredibili di queste funzioni, grazie
Mi piacePiace a 1 persona
Grazie a te Peppe.
Mi piaceMi piace