¿Filtrar características en otras capas de QGIS Atlas?

17

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

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

Sin embargo, ¿cómo puedo mostrar solo las características de otras capas, en este caso la capa de puntos del alumno, que coinciden con el valor correspondiente de SCHNUM para la característica 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 capa usando $atlasfeatureid , pero no puedo entender cómo funciona eso.

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:

    
pregunta DPSSpatial 10.12.2015 - 18:13

1 respuesta

32

De hecho, necesitas usar una simbología basada en reglas para lograr lo que quieres.

Necesitas crear una regla para lo que quieres mostrar, y ELSE la regla para todas las demás.

EnlareglaELSE,desmarquelacasilladeverificacióndelsímboloparaqueseainvisible.

Ocultarotrasfuncionesdelacapadecobertura

Lareglaparamostrarsololacaracterísticadelatlasactualpuedeserlasiguiente:

[email protected]_featureid

nota:[email protected]_featureidesunasintaxis2.12.Creoqueen2.8.xnecesitaríasusarunafunciónllamada$atlas_featureid.

Ocultarcaracterísticasfueradelacaracterísticadelatlasactual

Larecetaeslamismaqueantes,unareglamásparaocultarfunciones,unaparamostrar.

Parasupreguntaenparticular,parecequetieneunatributocompartidollamadoSCHNUM.Enesecasolareglapuedeser:

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

en su caso particular:

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

Note 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, en 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 una cosa "nueva", y en 2.8.x necesitarás usar la función $ atlas_feature

    
respondido por el Alexandre Neto 11.12.2015 - 01:25

Lea otras preguntas en las etiquetas