Recursos de filtragem em outras camadas do QGIS Atlas?

22

Estou tentando usar as ferramentas do QGIS Atlas para criar 'mapas de dispersão' dos alunos, ou seja. exibir a escola e os alunos que frequentam essa escola, por 215 escolas.

A camada de escolas é a camada de cobertura e está sendo direcionada pelo valor SCHNUM(número da escola). Isso está funcionando bem, ou seja, está direcionando as páginas corretamente.

Porém, como posso exibir apenas os recursos de outras camadas, neste caso a camada de pontos do aluno, que correspondem ao SCHNUMvalor correspondente ao recurso atual na camada de cobertura?

Eu também gostaria de mudar a camada de cobertura (escolas) para 'oculta' e usar a mesma técnica para exibir apenas a escola atual a partir de uma camada de escolas duplicada.

Há uma apresentação disponível aqui que alude ao uso de uma configuração de regra de renderização de camada $atlasfeatureid, mas não consigo descobrir como isso funciona.

Também encontrei esta página do rastreador de erros que mostra isso funcionando, mas, novamente, não consigo fazê-la funcionar nos meus dados:

DPSSpatial
fonte
Desculpe postar isso como resposta, mesmo que seja uma pergunta. Existe algum tutorial em vídeo recomendado para isso? Tentei acompanhar e de alguma forma sempre consegui me perder em algum momento. Tendo o mesmo problema.
JRamos 11/06

Respostas:

41

Na verdade, você precisa usar a simbologia baseada em regras para alcançar o que deseja.

Você precisa criar uma regra para o que deseja mostrar e regra ELSE para todos os outros.

insira a descrição da imagem aqui

Na regra ELSE, desmarque a caixa de seleção de símbolo para torná-lo invisível.

insira a descrição da imagem aqui

Ocultar outros recursos da camada de cobertura

A regra para mostrar apenas o recurso atual do atlas pode ser a seguinte:

$id  =  @atlas_featureid 

insira a descrição da imagem aqui

note : Eu acredito que a variável @atlas_featureid é uma sintaxe 2.12. Eu acho que no 2.8.x você precisaria usar uma função chamada $ atlas_featureid.

Ocultar recursos fora do recurso atual do atlas

A receita é a mesma de antes, mais uma regra para ocultar recursos, uma para mostrar.

Para sua pergunta em particular, você parece ter um atributo compartilhado chamado SCHNUM. Nesse caso, a regra pode ser:

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

no seu caso particular:

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

Observe a diferença entre os dois SCHNUM. O primeiro, entre aspas duplas, representa o valor de cada recurso da camada atual do campo que armazena o código da escola. A segunda, entre aspas simples, é uma sequência com o nome da camada de cobertura que armazena o código da escola.

Nota : Mais uma vez, acho que a variável @atlas_feature é uma coisa "nova", e no 2.8.x você precisará usar a função $ atlas_feature

insira a descrição da imagem aqui

Alexandre Neto
fonte