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):
¿Hay alguna opción en las propiedades de la capa para hacer esto?
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.
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.