Funzionalità di filtro in altri livelli di QGIS Atlas?


22

Sto cercando di utilizzare gli strumenti QGIS Atlas per creare "scattermaps" degli studenti, ad es. mostra la scuola e gli studenti che frequentano quella scuola, per 215 scuole.

Il livello scuole è il livello di copertura ed è guidato dal valore SCHNUM(numero scuola). Funziona bene, ovvero guida correttamente le pagine.

In che modo, tuttavia, posso visualizzare solo funzioni di altri livelli, in questo caso il livello punti studente, che corrispondono al SCHNUMvalore corrispondente per la funzione corrente nel livello copertura?

Vorrei anche impostare il livello di copertura (scuole) su "nascosto" e utilizzare la stessa tecnica per visualizzare la scuola corrente solo da un livello di scuola duplicato.

C'è una presentazione disponibile qui che allude all'uso di un'impostazione della regola di rendering del livello usando $atlasfeatureid, ma non riesco a capire come funzioni.

Ho anche trovato questa pagina di tracciamento dei bug che mostra che funziona, ma ancora una volta non riesco a farlo funzionare sui miei dati:


Mi dispiace pubblicare questo come risposta anche se è una domanda. C'è qualche video tutorial consigliato per questo? Ho provato a seguirlo e in qualche modo sono sempre riuscito a perdersi. Avere lo stesso problema.
JRamos,

Risposte:


41

In effetti, è necessario utilizzare la simbologia basata su regole per ottenere ciò che si desidera.

Devi creare una regola per ciò che vuoi mostrare e una regola ELSE per tutti gli altri.

inserisci qui la descrizione dell'immagine

Nella regola ELSE, deseleziona la casella di controllo del simbolo per renderlo invisibile.

inserisci qui la descrizione dell'immagine

Nascondi altre funzionalità dal livello di copertura

La regola per mostrare solo la funzione atlante corrente può essere la seguente:

$id  =  @atlas_featureid 

inserisci qui la descrizione dell'immagine

nota : credo che la variabile @atlas_featureid sia una sintassi 2.12. Penso che in 2.8.x avresti bisogno di usare una funzione chiamata $ atlas_featureid.

Nasconde le funzioni al di fuori dell'attuale funzione di atlante

La ricetta è la stessa di prima, un'altra regola per nascondere le caratteristiche, una da mostrare.

Per la tua domanda particolare, sembra che tu abbia un attributo condiviso chiamato SCHNUM. In tal caso la regola può essere:

"Layers_field" = attribute (@atlas_feature, 'coverage_layer_field_name')

nel tuo caso particolare:

"SCHNUM"  =  attribute( @atlas_feature , 'SCHNUM')

Notare la differenza tra entrambi SCHNUM. Il primo, tra virgolette doppie, rappresenta il valore di ogni caratteristica del livello corrente del campo in cui è memorizzato il codice scuola. Il secondo, tra virgolette singole, è una stringa con il nome del livello di copertura che memorizza il codice della scuola.

Nota : di nuovo penso che la variabile @atlas_feature sia una cosa "nuova", e in 2.8.x dovrai usare la funzione $ atlas_feature

inserisci qui la descrizione dell'immagine

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.