3 votos

Rotación de etiquetas en torno a características puntuales a una distancia determinada

Tengo que girar las etiquetas dinámicamente alrededor de las características de los puntos a una distancia determinada (por ejemplo, 10 unidades de mapa):

enter image description here

¿Hay alguna opción en las propiedades de la capa para hacer esto?

5voto

Derecho Puntos 1122

Una forma de hacerlo es creando un campo que tenga la rotación alrededor del punto que se quiere mostrar (-180 a 180). En mi ejemplo, asigné valores al azar para la rotación deseada alrededor del punto. Después de tener su rotación deseada en un campo, entonces necesita calcular los desplazamientos X Y usando la calculadora de campo en la forma de X, Y . Se puede calcular X mediante la fórmula Offset * Sin(Rotation) y se puede calcular Y utilizando -Offset * Cos(Rotation) El negativo se debe a que la Y positiva ha bajado en QGIS.

Suponiendo que tenga un campo que defina la rotación deseada, a continuación se explica cómo configurar el campo de desplazamiento y los ajustes de la etiqueta para obtener lo que se busca.

1. Cree el campo Offsets a partir de su valor de rotación

Abra la tabla de atributos de la capa de puntos que está etiquetando y abra la calculadora de campos. Establezca el tipo de campo de salida como Text, unlimited length (text) y en la pestaña de expresión introduzca la siguiente expresión

concat( 10 * sin("rotation"*pi()/180) , ',', -10 * cos("rotation"*pi()/180) )

En este ejemplo rotation es el nombre del campo que tiene la rotación sobre el punto -180 a 180 con 0 siendo el norte, y 10 es el valor de desplazamiento. el pi()/180 es para convertir grados a radianes.

2. Configure sus etiquetas

Vaya a su Layer Properties y Labels ficha. Configure su Label with como quieras. En mi ejemplo estoy etiquetando con los valores de rotación para que puedas ver los resultados finales basados en el valor de rotación.

Seleccione el Placement en la opción Labels y seleccione Offset from point . En la línea etiquetada como Offset X,Y seleccione el botón desplegable del extremo derecho y amplíe Field Type y seleccione el Offsets que ha generado a partir de los valores de rotación.

Todavía en el Placement desplácese hacia abajo hasta Data defined y seleccione el botón desplegable junto a Rotation y seleccione edit... . En el editor de expresiones que aparece ponga -"rotation" donde rotación es el nombre del campo con los valores de rotación. La razón por la que es negativo es porque esta rotación es opuesta a la rotación sobre el punto. Por ejemplo, -45 grados posiciona el texto 45 grados a la izquierda del Norte, pero la rotación descrita aquí de -45 grados rotaría el texto 45 grados a la derecha en lugar de a la izquierda.

Esto debería etiquetar todos sus puntos de forma similar al diagrama que ha dibujado. Un ejemplo de mi salida se muestra a continuación con los valores de rotación etiquetados.

enter image description here

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