8 votos

Cambiar el tamaño de fuente de la etiqueta con una expresión definida de datos en QGIS.

Estoy tratando de cambiar el tamaño de la fuente de las etiquetas de los elementos basado en atributos de un campo. No puedo encontrar un ejemplo de cómo hacer esto.

Creo que puedo hacer esto configurando una expresión definida por datos en la expresión Labels>Text>Size pero no estoy seguro de cómo formular la expresión real.

Estoy buscando un ejemplo de cómo se configuraría esta expresión.

8voto

Geoffrey Puntos 228

En primer lugar, ve a la ventana Propiedades de la capa > Etiquetas > Texto.

Luego, edita la expresión para el tamaño del texto (lo marqué en la imagen a continuación):

introducir descripción de la imagen aquí

En el campo de expresión, simplemente escribe el nombre del campo que almacena los tamaños de las fuentes de las etiquetas. En mi caso, el campo se llamaba font_height, así que escribí (recuerda usar estos " "):

introducir descripción de la imagen aquí

Por último, haz clic en el botón Aplicar y este será el resultado:

introducir descripción de la imagen aquí

6voto

Josh Nankin Puntos 375

En la respuesta de @mgri, "font_height" deberá dar un valor válido para el campo de tamaño (es decir, un número o una cadena similar a un número). Si es un número, simplemente puedes usar "font_height" como la expresión. Si no, deberás hacer algo con el valor. Si "font_height" tuviera valores de 'grande', 'mediano' y 'pequeño', necesitarías usar algo de lógica condicional:

CASO
    CUANDO "font_height" = 'grande' ENTONCES 14
    CUANDO "font_height" = 'mediano' ENTONCES 10
    CUANDO "font_height" = 'pequeño' ENTONCES 8
FIN

Alternativamente, si los valores de "font_height" fueran algo como '14pt', necesitarías hacer algo como:

replace("font_height", 'pt', '')

0 votos

+1 Buen punto, ¡creo que Caitlin conoce todas las posibles situaciones por ahora! =)

0 votos

Gracias a mgri, George of all trades y Knightshound. ¡Implementé el código anterior y funciona genial! Gracias de nuevo, Caitlin.

2voto

CoderP Puntos 11

Solo para agregar a la respuesta de mgri, puedes usar CASE WHEN en la misma ubicación:

CASE WHEN [column-A] = [algo] THEN 3
     WHEN [column-A] = [otra cosa] THEN 4
     ELSE 5
END

0voto

JimS Puntos 1

Otra adición más: Es posible almacenar una declaración CASE de esta manera:

CASE 
  WHEN @map_scale < 100000 THEN 18  
  WHEN @map_scale < 1000000 THEN 16
  WHEN @map_scale < 10000000 THEN 14
  ELSE 12           
END

en una variable de proyecto, por ejemplo my_font_size, y luego usar la expresión EVAL(@my_font_size) como una anulación definida por datos para un tamaño de fuente

enter code 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