5 votos

¿Clusterización sólo si el atributo nombre es el mismo utilizando QGIS?

Tengo una capa de puntos en un mapa del mundo con varios atributos . Cada punto marca la posición de un puesto de atraque en un terminal en un puerto en un determinado país . Cuando alejo el zoom, se llena demasiado de gente, así que me las arreglé para mostrar sólo el puerto nombres y no el terminal y puesto de atraque nombres más utilizando una expresión para la etiqueta. Esto me da menos texto, así que ya es mucho mejor. Pero como resultado, ahora estoy viendo un montón de puntos que muestran el mismo puerto nombre en una zona determinada, lo que también es algo subóptimo. Me gustaría que QGIS agrupara estos puntos pero sólo si el atributo puerto el nombre es el mismo . Las etiquetas individuales deben ocultarse en caso de agrupación. Sin embargo, si sólo hay un único puerto (único puerto nombre) la agrupación obviamente no está funcionando pero todavía necesito el puerto nombre para que aparezca.

He estado jugando durante mucho tiempo con la función de cluster de puntos en Simbología pero no consigo que funcione. Especialmente la dependencia de las etiquetas de los puntos individuales y las etiquetas de los clústeres es problemática.

3voto

nuecaster Puntos 128

Aquí hay una solución completamente diferente que no se molesta con el Cluster Renderer.

  1. Duplicar el capa haciendo clic con el botón derecho en el nombre de la capa en el panel de capas > duplicar. Esto crea una segunda capa que se vincula a los mismos datos de origen. Vamos a definir una simbología diferente para cada copia de la capa, y a configurar la visibilidad basada en la escala para que en cada escala sólo se vea una de las dos capas. Asegúrate de que el nivel mínimo de zoom de una capa es el mismo que el nivel máximo de zoom de la otra capa, para que no haya ningún hueco o solapamiento al cruzar el umbral.

  2. Para una de las capas duplicadas, establezca una visibilidad basada en la escala para que la capa sólo aparezca cuando esté ampliada. Utiliza puntos simples y etiquetas con todos los detalles.

    enter image description here

  3. Para la otra capa, establezca la visibilidad basada en la escala para que sólo aparezca cuando se aleje el zoom. Utilice un símbolo generador de geometría con esta expresión para mostrar un único punto para cada puerto:

    centroid(convex_hull( collect($geometry, "Port")))

    En lugar de utilizar las etiquetas estándar, utilice un marcador de fuente para crear etiquetas. De este modo, podemos anidar el marcador de fuente dentro del generador de geometría, de modo que la etiqueta sólo aparece en el punto de Puerto.

    Añadir un nivel de símbolo de marcador de fuente dentro de el generador de geometría. Utilice la anulación definida por los datos y elija el campo del puerto para el selector de caracteres.

    enter image description here

    enter image description here

    Las etiquetas y los símbolos aparecen más oscuros para los puertos con más de un punto, porque QGIS en realidad está redibujando el mismo símbolo en el mismo lugar varias veces. Si esto se convierte en un problema, podría arreglarlo con una declaración condicional en la expresión del generador de geometría. Tendrías que añadir un campo a la capa, donde para todos los puntos de cada puerto, uno de ellos tenga un valor diferente al de todos los demás puntos de ese puerto. Por ejemplo, utilice la calculadora de campos para crear un campo numérico llamado "pantalla", con la expresión @row_number = minimum( @row_number, port) . A continuación, en el generador de geometría, utilice esta expresión: if("display"=1,centroid(convex_hull( collect($geometry, "Port"))),null) .

Si prefiere ver todos los puntos en todas las escalas, y tener sólo las etiquetas basadas en la escala, puede lograrlo con una pequeña modificación.

  • Haz que la primera capa sea visible en todas las escalas. Haz que las etiquetas de esa capa sólo sean visibles a escalas ampliadas.
  • Mantenga la segunda capa visible en las escalas ampliadas. Elimine la capa del símbolo del marcador de puntos, pero mantenga el marcador de fuentes.

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