5 votos

¿Cómo puedo aplicar una regla de estilo a múltiples categorías? (2.14 y superior)

Creo que esto solía ser más sencillo que en anteriores versiones de QGIS, pero más potentes basados en reglas de estilo (gran desarrollo) ahora estoy un poco confundido en cuanto a cómo aplicar una regla a varias categorías a la vez en el Estilo de diálogo.

En el ejemplo de abajo, he estilo de mis datos con categorías. Quiero aplicar el $id = $atlasfeatureid regla para todas las categorías, debido a que estoy trabajando en un Atlas.

Supongo que me estoy perdiendo algo simple, pero no puede pensar en lo que. No es un problema para aplicar la regla por separado a un par de categorías, pero cuando se trabaja con 50+ sería muy lento.

enter image description here

7voto

SteveLambert Puntos 126

Se podría añadir la regla principal $id = $atlasfeatureid, sin la adición de símbolos:

enter image description here

enter image description here

A continuación, seleccione y arrastre todas las otras reglas sobre ella (sobre la etiqueta de la parte). Después, se vuelven dependientes de esta primera regla:

enter image description here

3voto

Mue Puntos 2469

También puede usar lo siguiente en la consola de Python para cambiar todas las expresiones de cada regla a $id = $atlasfeatureid :

 layer = qgis.utils.iface.activeLayer()
renderer = layer.rendererV2()
for rule in renderer.rootRule().children():
    rule.setFilterExpression('$id = $atlasfeatureid')
 

Editar:

El código anterior reemplaza todas las expresiones por completo. Sin embargo, si desea agregar otra expresión a una existente , puede usar:

 layer = qgis.utils.iface.activeLayer()
renderer = layer.rendererV2()
for rule in renderer.rootRule().children():
    rule.setFilterExpression('({}) AND $id = $atlasfeatureid'.format(rule.filterExpression()))
 

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X