¿Características de filtrado en otras capas de QGIS Atlas?

22

Estoy tratando de usar las herramientas QGIS Atlas para construir 'mapas de dispersión' de los estudiantes, es decir. Muestre la escuela y los estudiantes que asisten a esa escuela, para 215 escuelas.

La capa de escuelas es la capa de cobertura, y está impulsada por el valor SCHNUM(número de escuela). Esto está funcionando bien, es decir, está manejando las páginas correctamente.

Sin embargo, ¿cómo puedo mostrar solo entidades de otras capas, en este caso la capa de puntos del alumno, que coinciden con el SCHNUMvalor correspondiente para la entidad actual en la capa de cobertura?

También me gustaría cambiar la capa de cobertura (escuelas) a 'oculta' y usar la misma técnica para mostrar solo la escuela actual desde una capa de escuelas duplicadas.

Hay una presentación disponible aquí que alude al uso de una configuración de regla de representación de capas usando $atlasfeatureid, pero no puedo entender cómo funciona.

También encontré esta página de seguimiento de errores que muestra que esto funciona, pero nuevamente, no puedo hacer que funcione en mis datos:

DPSSpacial
fuente
Lamento publicar esto como una respuesta, aunque es una pregunta. ¿Hay algún video tutorial recomendado para esto? Traté de seguirlo y de alguna manera siempre me las arreglé para perderme en algún momento. Tener el mismo problema
JRamos

Respuestas:

41

De hecho, debe utilizar la simbología basada en reglas para lograr lo que desea.

Debe crear una regla para lo que desea mostrar y otra regla para todos los demás.

ingrese la descripción de la imagen aquí

En la regla ELSE, anule la selección de la casilla de verificación del símbolo para hacerlo invisible.

ingrese la descripción de la imagen aquí

Ocultar otras características de la capa de cobertura

La regla para mostrar solo la característica de atlas actual puede ser la siguiente:

$id  =  @atlas_featureid 

ingrese la descripción de la imagen aquí

nota : creo que la variable @atlas_featureid es una sintaxis 2.12. Creo que en 2.8.x necesitaría usar una función llamada $ atlas_featureid.

Ocultar características fuera de la función de atlas actual

La receta es la misma que antes, una regla más para ocultar características, una para mostrar.

Para su pregunta particular, parece tener un atributo compartido llamado SCHNUM. En ese caso, la regla puede ser:

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

en tu caso particular:

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

Observe la diferencia entre ambos SCHNUM. El primero, entre comillas dobles, representa el valor de cada entidad de capa actual del campo que almacena el código de la escuela. El segundo, entre comillas simples, es una cadena con el nombre de la capa de cobertura que almacena el código de la escuela.

Nota : Nuevamente, creo que la variable @atlas_feature es algo "nuevo", y en 2.8.x necesitará usar la función $ atlas_feature

ingrese la descripción de la imagen aquí

Alexandre Neto
fuente