QGIS: ATLAS con pseudo-vettori di copertura

Lavorando spesso con il compositore di stampa di QGIS, in particolare con gli ATLAS, è nata la necessità di utilizzare due o più vettori di copertura nello stesso atlante; in realtà QGIS permette di definire un solo vettore di copertura ma come vedremo in seguito, tramite un trucco, sarà possibile definire altri pseudo-vettori di copertura: per spiegare meglio farò un esempio concreto: supponiamo di realizzare un atlante utilizzando come vettore di copertura lo shapefile ‘province’ dell’ ISTAT e di visualizzare (in un’ altra mappa) anche la regione (altro shapefile dell’ISTAT) come ulteriore pseudo-vettore di copertura, cioè la regione varierà solo quando la provincia cambierà regione.

Webp.net-gifmaker

Dopo aver creato l’ Atlas con il vettore di copertura province (ndr: in questo blog trovate vari esempi) occupiamoci della realizzazione dello pesdo-vettore di copertura usando lo strato regioni (mappa in basso a destra della gif):

aggiungiamo la mappa e modifichiamo la sezione ‘estensione mappa’ (proprietà oggetto):

N1
proprietà oggetto

in particolare, dobbiamo agire sulle iconcine a destra di ogni campo ( X min, Y min ….) perché queste definiscono, appunto, l’estensione della mappa che verrà visualizzata; agendo su queste icone è possibile modificare l’area di visualizzazione della mappa, quindi di fargli seguire una legge di variazione che dipenda dal vettore di copertura principale:

N2
iconcina

l’espressione utilizza altre funzioni annidate:

N3
costruttore di stringhe 

il trucco, di cui parlavo sopra, risiede nella funzione get_feature(); questa funzione permette di richiamare feature da altri layer, questi a sua volta, devono essere in relazione con il vettore di copertura principale, nel caso specifico attraverso il campo “cod_reg”; questa stessa funzione va ripetuta negli altri campi facendo attenzione a modificare solo la funzione iniziale X_min, Y_min ecc…

Questo trucco permette di creare anche più di una pseudo-vettore di copertura, personalmente ho testato solo con una, ma si potrebbe provare anche con i comuni ovvero: vettore di copertura principale i comuni, poi le province ed infine le regioni; questi tre strati sono in relazione tramite il campo “cod_reg”!!!!

 

 


Note finali: Attualmente gli atlas di QGIS permettono di utilizzare SOLO un vettore di copertura, quindi, solo la relativa tabella attributi comparirà nel costruttore di stringhe; per superare questo (falso) limite basti utilizzare la funzione get_feature(), questa permette di richiamare altri layer e altri attributi.


 

Buon lavoro!!!

ConQGISstando!!!!

Annunci

6 pensieri su “QGIS: ATLAS con pseudo-vettori di copertura

  1. Ciao! ottima dritta!
    Sto provando a creare l’espressione con questo metodo ma non trovo soluzione. Mi spiego:
    Ho 2 SHP, in uno dei due vorrei inserire la somma delle aree in una precisa colonna vuota (presente in un secondo shp) utilizzando una colonna in comune ai due shp, come elemento di aggregazione delle aree.
    Esempio :
    -Primo SHP chiamato ‘VERDE’ con una colonna vuota in cui inserire le somme delle aree chiamata ‘PIPPO’
    -Il secondo chiamato ‘NIL’ ha la colonna ‘AREA’ da cui prendere i valori
    -Entrambi hanno una colonna in comune con i codici dei poligoni ‘ID’

    attribute( get_feature( ‘NIL’, ‘ID’, ID), ‘AREA’)

    in questo modo riesco a copiare l’area nella colonna vuota prendendo i valori nell’altro shp, ma mi prende solo il primo valore che incontra quando trova il codice univoco e non la somma dei valori ad esempio del codice ID 1….come devo modificare la stringa?

    GRAZIE!!!

    Mi piace

    1. Ciao,
      i due shapefile sono in relazione uno a molti?
      se cosi fosse devi creare una relazione e poi usare le funzioni di aggregazione.

      Potresti anche sfruttare, se possibile, un spatiali-join ma conosco poco dei due file.

      Mi piace

      1. Sì, il file di destinazione ha una geometria ogni ID, il secondo (detentore delle aree) a più geometrie con stesso ID.
        Io vorrei evitare join o relazioni perché i dati contenuti cambieranno frequentemente e per necessità di tempi vorrei usare l’espressione (se è fattibile).

        Mi piace

Rispondi

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

Logo WordPress.com

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

Google+ photo

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

Foto Twitter

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

Foto di Facebook

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

w

Connessione a %s...