5 votos

Uso de expresiones para relacionar columna con estilo de capa en QGIS?

Tengo un proyecto QGIS con N capas, cada una apuntando al mismo archivo CSV con columnas "1_1, 2_1, ..., N_1".

QGIS Layers and Attribute table

Me gustaría que cada capa se refiriera a su respectiva columna (Capa 1 -> columna 1_1, y así sucesivamente) y mostrar los puntos basados en el estilo Graduado que he establecido. Soy capaz de obtener el resultado que estoy buscando seleccionando manualmente la columna en cada estilo de capa para cada capa así:

Layer Properties

Sin embargo, esto lleva mucho tiempo, por lo que estoy intentando encontrar una forma de utilizar expresiones para relacionar el nombre de la capa con el nombre de la columna correspondiente. He probado las siguientes expresiones sin éxito:

  • @nombre_capa+'_1' (Expresión válida pero todos los puntos tienen el mismo valor y estilo)
  • "@nombre_capa+'_1'" (Expresión válida pero salida nula)
  • "concat(@nombre_capa,'_1')" (Expresión válida pero salida nula)
  • columna "@nombre_capa+'_1'" (expresión no válida)
  • nombre de columna "@nombre_capa+'_1'" (expresión no válida)

Utilizo esto como referencia: https://docs.qgis.org/2.8/en/docs/user_manual/working_with_vector/expression.html

¿Hay algo que esté entendiendo mal sobre las expresiones en QGIS?

Este es mi resultado deseado: (Una capa visible)

Desired result

Esto es lo más cerca que he podido llegar utilizando la primera expresión:

Expression 1

4voto

Braiam Puntos 120

No puede construir el nombre de la columna directamente, ya que la función de estilo espera una columna (es decir, los datos), no una cadena.

Sin embargo, puede construir una expresión que devuelva los valores a clasificar. La expresión leería la característica actual (cada una de ellas, de hecho), construiría el nombre de la columna y devolvería el valor:

Como usted hizo, bajo el column expresión, introduzca:

attribute($currentfeature , @layer_name ||  '_1')

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