QGIS: come assegnare ad un vettore puntuale una vestizione con più di un simbolo

domande dal mio blog:

Salve, non riesco a trovare la possibilità di assegnare ad un vettore puntuale una vestizione con più di un simbolo.
In pratica dovrei rappresentare un sito dove è stata eseguita più di un’indagine geologica delle quali ognuna ha un proprio simbolo.

Nella rappresentazione grafica si deve vedere, cosi come vuole la protezione civile, il puntuale (SITO), ed una vestizione nell’ intorno del punto delle n indagini e n parametri.

N2

Questo è un tipico problema di relazione 1 : M (relazione uno a molti) che crea molti imbarazzi anche ai software GIS più blasonati, tanto è vero che esiste un Tool creato appositamente; ma vediamo come risolvere questo problema con il nostro ‘amato’ QGIS.

Utilizzerò un vettore puntuale e una tabella che contiene info aggiuntive per ogni punto (l’esempio che utilizzerò è relativo alla pubblica illuminazione, dove ogni lampione [punto] può avere più armature cioè più lampade [tabella]).

Per poter tematizzare/vestire un sito (un punto – un lampione), come in Figura 1, occorre necessariamente che vi siano tanti punti sovrapposti quanti sono le caratteristiche da stilizzare; per far ciò occorre un espediente, ovvero, occorre creare un altro vettore (nel nostro caso creerò un virtual layer) che simuli, appunto, la sovrapposizione dei punti.

virtual layer:

N7
per creare un vettore virtuale

il virtual layer serve a creare un join (vedi clausola where) tra il vettore e la tabella.

tabella attributi del virtual layer:

N8
tabella attributi con ‘icon’ , ‘colore’ e ‘etichetta’

dopo questo lavoro di preparazione, occupiamoci ora della tematizzazione:

N9
tematizziamo il layer virtuale

 

  1. selezionare il layer ‘virtual layer’; tasto funzione F7 (per aprire la finestra layer styling);
  2. scegliere ‘spostamento punto’;
  3. selezionato il tipo di punto centrale;
  4. selezionare single symbol;
  5. azzerare il valore, altrimenti lo spostamento avverrà tenendo conto di altri punti vicini;
  6. selezionare un metodo;
  7. scegliere ‘no outline’, altrimenti si vedrà un cerchio;
  8. modificare distanza dei punti da quello centrale;
  9. scegliere il campo per etichetta;

dopo, scegliamo i vari simboli per i punti spostati:

N11
scelta simboli
  1. cliccandoci sopra si aprirà la finestra a sinistra;
  2. selezionare ‘filled market’;
  3. selezionare ‘filled market’;
  4. definite la dimensione;
  5. selezionare il tipo di campo : icon (contiene i nomi dei simboli);
  6. OK

è possibile usare anche i simboli SVG.

dati e progetto

nel video che allego è spiegato tutto il processo.

video

 

37 pensieri su “QGIS: come assegnare ad un vettore puntuale una vestizione con più di un simbolo

  1. Buongiorno Ingegnere. Sono riuscito grazie al suo tutorial a fare tutto. Però le chiedo ancora una cosa. Nel caso io abbia un sito, con associate n indagini (esempio 1 SITO + 8 INDAGINI), e volessi rappresentare graficamente non solo il punto centrale + gli 8 simboli nell’intorno, ma il punto centrale + un simbolo unico per ogni tipologia di indagini,con il numero totale delle indagini stesse, in modo da semplificare la visualizzazione grafica. E’ possibile ?
    grazie

    "Mi piace"

    1. Vediamo se ho capito:
      supponendo di avere un sito e otto indagini (3 x, 1 y e 4 z) ; vorresti attorno al punto centrale non più otto punti ma tre, vero?
      come nell’esempio?

      "Mi piace"

    1. Basta semplicemente aggiungere nel virtual layer, alla fine, GROUP BY a.fk_pk_uid, a.icon;
      mentre per contare le indagini uguali, aggiungere nel select: count (*)

      "Mi piace"

    1. lo script SQL (visibile nell’articolo) diverrà:

      select a.*, p.geometry as geom, p.nro_sorgenti, a.pk_arm ||’-‘|| a.materiale ||’-‘|| count (*) as etichetta
      from pti_pill p, tabella_arm a
      where p.pk_uid = a.fk_pk_uid
      group by a.icon, a.fk_pk_uid

      "Mi piace"

  2. Buongiorno ingegnere, ho provato ad utilizzare lo script nel mio progetto, ma non riesco a farlo funzionare. E’ possibile allegare uno alcuni screenshot in una mail ?
    La ringrazio

    "Mi piace"

      1. Salve sto usando 2.18.13 quindi dovrebbe andar bene.
        Inserisco lo script ma continua a non funzionarmi.
        Forse sbagliero a rinominare i campi delle tabelle attributi?

        Piace a 1 persona

      1. Buongiorno, mandami una mail descrivendo i dati e il risultato desiderato. Utilizza la sezione dove mi trovo.
        Metti tutti i dati in una cartella, zippale e caricala in un cloud (gdrive, dropbox ecc…) e incolli qui il link

        "Mi piace"

  3. Ciao Totò, io ho un problema leggermente diverso, ho una serie di poligoni (sezioni di censimento) con associata, in una relazione 1:M, una tabella dove più righe corrispondono ad una sezione. ovviamente non posso “spostare” il poligono, 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. grazie

    Piace a 1 persona

  4. Salve io ho un problema con i simboli di un layer, alcuni punti di questo layer (Categorizzati secondo regole) sono vicini e per questo ho utilizzato lo spostamento punti (Secondo regole per mantenere il colore della categoria che gli avevo assegnato) quando il layer è categorizzato secondo regole va tutto bene, forme e colori corrispondono, quando faccio lo spostamento dei punti secondo regole tutti i simboli diventano neri.. come posso fare a fargli mantenere il colore che gli ho assegnato secondo le regole?
    Grazie

    Piace a 1 persona

    1. Ciao, che versione di QGIS stai usando??
      Nell’ultima versione QGIS 3.8 lo spostamento punti è stato migliorato.
      Poi non è facile rispondere senza i dati e il progetto.

      saluti

      "Mi piace"

  5. Ciao Salvatore e grazie in ritardo per l’ennesimo blogpost! Ho affrontato un caso molto simile (cartelli stradali in cui a un elemento verticale erano associati più paline segnaletiche) e ho risolto in maniera praticamente identica attingendo anche dalle tue indicazioni. Vorrei scrivere due righe di post sui social con un piccolo approfondimento, diciamo aggiornato al 2022 (confrontando un po’ i tuoi screen con i miei passaggi non è cambiato molto), posso citarti (anzi devo!) e mettere il link al tuo video? Metterei uno screen del mio risultato ma non posso (o non riesco) nei commenti.
    Stavo pensando anche a come risolvere il problema da che hai risolto con il virtual layer e la “vista” in sql in altra maniera, tenendo conto della relazione padre-figlio senza aggiungere un layer (seppur virtuale) ma in effetti se non vi sono tanti punti sovrapposti non saprei come ovviare al problema ed è in ogni caso un solo esercizio di stile. Complimenti in ogni caso, come al solito!

    "Mi piace"

    1. Ciao, se vuoi ti ospito nel mio blog e puoi riscrivere da zero il blog post, aggiungere tutte le immagini e screenshot che vuoi.
      Mi farebbe piacere ospitarti.
      Il blog post sarebbe a firma tua.

      "Mi piace"

      1. Ciao! Sarebbe un onore. Manterrei quello che hai fatto e più che riscriverlo, dal momento che rifarei alcuni passaggi uguali identici ai tuoi posso integrarlo e scrivere una “parte 2” aggiungendo degli esempi (es.: la stilizzazione nel mio caso era categorizzata), sarebbe una variazione sul tema e dal momento che proponi casi d’uso sempre originali mi sembrerebbe di abbassare lo standard ma se ti va ti mando una bozza in markdown o come preferisci nelle prossime settimane.

        Piace a 1 persona

      2. Ciao Francesco,
        come preferisci.
        Per fortuna possiamo fare come vogliamo. 🙂

        Comunque, ritieniti libero di fare anche il semplice post sui social.

        a presto

        "Mi piace"

  6. Spett.le Ing., ho il problema di rappresentare un notevole numero di indagini geognostiche in rapporto alla scala di visualizzazione. Se estendo l’area di visualizzazione, Le chiedo come procedere alla visualizzazione di pochi punti rappresentativi di un numero X di indagini realizzate entro determinate distanze in funzione della scala di rappresentazione. Inoltre, chiedo se è possibile riassumere quantitativamente il numero delle indagini (magari con etichette riferite ai soli punti visibili). Spero di essere stato chiaro e La ringrazio per i suggerimenti che vorrà fornirmi. Cordialità, Domenico.

    "Mi piace"

      1. Sto studiando un’area molto estesa nella quale è stato realizzato un notevole numero di indagini geognostiche. Ora, se si considerano parti i-esime dell’area, i punti oggetto di indagine risultano visibili e distinti. Quando riporto la visualizzazione all’intera area, vi sono fastidiose sovrapposizioni. La mia richiesta mirava alla ricerca di una soluzione per evitare tali situazioni e per poter avere una indicazione sul numero di indagini svolte. A tale proposito, avevo chiesto se era possibile una rappresentazione dinamica a mezzo di punti indicativi recanti il numero delle indagini effettuate al suo intorno. Grazie.

        "Mi piace"

  7. ok, ora è più chiaro.
    Secondo me è fattibile utilizzando due volte lo stesso layer (nel primo lo tematizzi utilizzando la funzionalità Spostamento punto; il secondo lo tematizzi normalmente con Singolo simbolo e lo etichetti in modo tale che ti faccia vedere il numero di punti sovrapposti)
    su entrambi i layer devi attivare Imposta Scala e visibilità Layer utilizzando scale complementari (ovvero, se il primo layer fosse visibile da 1000 a 2000; il secondo layer, aggiunto come duplicato, imposti una scala 2000 5000)
    saluti

    "Mi piace"

Lascia un commento

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