4 votos

Etiquetado de polígonos con el número de entradas de tablas relacionadas en QGIS

Usando QGIS 3.6.1 tengo una capa con áreas y una tabla con entradas relacionadas con las áreas:

enter image description here

Una relación se define así:

enter image description here

Lo que me gustaría conseguir es etiquetar las áreas con el número de entradas de la tabla relacionadas utilizando relation_aggregate como se muestra aquí:

enter image description here

relation_aggregate ('my_relation', 'count', 'text') || ' Table entries'

Como puede verse en la captura de pantalla (vista previa de la salida), la expresión de la etiqueta ofrece un resultado válido como se esperaba (por ejemplo, "4 entradas de tabla"), pero las etiquetas no se muestran en el mapa:

enter image description here

Otra cosa que probé usando el aggregate es la siguiente:

enter image description here

with_variable('my_id', "id", aggregate('table', 'count', 'id', "flaeche_id" = @my_id)) || ' Table Entries'

Lo que da un resultado totalmente extraño dependiendo de la zona que se muestre en la extensión del mapa actual, es decir

1) Ambas áreas etiquetadas con "4 entradas de tabla", pero la inferior sólo tiene una entrada en la tabla relacionada (véase el cuadro anterior):

enter image description here

2) Si el mapa se extiende sólo hasta la zona más meridional, la etiqueta muestra correctamente "1 entradas de la tabla":

enter image description here

Así que en general con mi primer enfoque tengo no etiquetas y con el segundo enfoque tengo equivocada etiquetas.

Creo que estoy un poco atascado con el aggregate... en QGIS 3, ¿las estoy utilizando de forma incorrecta o hay otros enfoques para el etiquetado que quiero conseguir?

0 votos

¿probó eval(relation_aggregate ('my_relation', 'count', 'text') || ' Table entries')?

0 votos

Acabo de hacerlo, el mismo resultado tampoco. no hay etiquetas.

2voto

Edoardo Vacchi Puntos 435

tienes que poner doble comilla (") a tu último argumento:

relation_aggregate('my_relation', 'count', "text") || ' Table entries'

la descripción de relation_aggregate dice:

relación_agregada(relación,agregado,expresión[,concatenador])

[ ] marca los componentes opcionales

Por lo tanto, si sólo quieres utilizar un nombre de campo como expresión, tienes que referirte a él como "mi_atributo", que también es estándar en otras expresiones.

De alguna manera, el calificador de campo devuelve un resultado cuando se utiliza una comilla simple ('), bizarro ...

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