Cómo crear etiquetas avanzadas en QGIS con HTML y CSS

En este artículo, vamos a mostrarte cómo crear etiquetas avanzadas en QGIS mediante lenguaje HTML y CSS.

Esta nueva característica, es gracias a la implementación de Nyall Dawson de la empresa North Road, haciendo posible crear etiquetas mixtas en QGIS.

Esto ofrece una nueva posibilidad como es la de cambiar el carácter, el estilo, el color y el tamaño del texto interno de la etiqueta, sin modificar la capa duplicada ni emplear otras opciones.

Anteriormente, las etiquetas creadas mediante expresiones que combinaban varios campos se mostraban con un formato uniforme, haciendo imposible aplicar estilos diferentes a distintas partes del mismo texto sin recurrir a múltiples capas u otras soluciones alternativas más complejas.

Si quieres aprender más sobre etiquetado y simbología en QGIS, puedes visitar nuestro artículo Cómo crear simbología basada en reglas en QGIS.

Cómo habilitar el etiquetado HTML en QGIS

Para usar etiquetas HTML en las etiquetas, es necesario habilitar dicha opción, para ello:

En primer lugar, accede a las propiedades de la capa a etiquetar y sitúate en la pestaña Etiquetas, en el desplegable, selecciona Etiquetas sencillas.

En la sección Texto, habilitar la opción «Permitir formato HTML»


Una vez habilitado el etiquetado HTML, debemos de introducir la expresión con etiquetas HTML en el campo de texto de la etiqueta.

Cómo crear etiquetas avanzadas en QGIS con HTML y CSS

Etiquetas HTML compatibles

Estas son las etiquetas HTML que se pueden usar en QGIS:

Etiquetado HTML QGIS
Cómo crear etiquetas avanzadas en QGIS con HTML y CSS

Atributos CSS con <span>

La etiqueta <span> es la más versátil, nos permite aplicar estilos CSS en línea al texto.

Se pueden combinar varias propiedades separándolas con punto y coma (;).

Cómo crear etiquetas avanzadas en QGIS con HTML y CSS

Además, es posible combinar varias propiedades CSS en el mismo <span>:

'<span style="font-size: 10pt; color: #e31a1c; font-weight: bold">texto</span>'

A continuación, te mostramos una serie de ejemplos prácticos, empleando una capa de provincias de España.

Ejemplo 1: Nombres de provincias en negrita + acrónimo de provincia

Con la siguiente expresión obtenemos el nombre de la provincia en negrita (tamaño de fuente principal), insertamos un salto de línea y, a continuación, el código asociado a la provincia.

'<b>' || "DENOMINACI" || '</b><p><span style="font-size: 15pt">' || "fid" || '</span>'

Cómo crear etiquetas avanzadas en QGIS con HTML y CSS

Ejemplo 2: Nombre de la provincia en negrita + Código en color

Con la siguiente expresión etiquetamos el nombre de la provincia en negrita, un salto de línea y el código de la región en rojo (#e31a1c) con una fuente de 10 puntos.

'<b>' || "den_uts" || '</b><p><span style="font-size:15pt;color:#e31a1c">' || "COD_REG" || '</span>'

Cómo crear etiquetas avanzadas en QGIS con HTML y CSS

Ejemplo 3: Código de región grande + nombre de provincia en tamaño pequeño

Podemos establecer tamaños de texto diferentes combinando con colores.

'<span style="font-size:16pt;font-weight:bold">' ||   "CODE"   || '</span>' || '<br><span style="font-size:10pt;color:red">' ||  "DENOMINACI"  || '</span>'

Cómo crear etiquetas avanzadas en QGIS con HTML y CSS

Ejemplo 4: Texto mixto en negrita y cursiva

También podemos combinar formatos de texto, como negrita y cursiva, por ejemplo, para diferentes atributos.

'Nombre: <b>' ||  "DENOMINACI"  || '</b><p>Código: <i>' || "CODE" || '</i>'

Cómo crear etiquetas avanzadas en QGIS con HTML y CSS

Ejemplo 5: Colores diferentes en función de condición

Una opción más avanzada, es imponer una condición en una sentencia CASE para aplicar un estilo, en este caso color, a uno o varios atributos.

CASE
  WHEN  "AREA"/10e7  > 100 THEN '<span style="color:red;font-weight:bold">' ||  "DENOMINACI"  || '</span>'
  WHEN "AREA"/10e7 > 50  THEN '<span style="color:orange">' || "sigla" || '</span>'
  ELSE '<span style="color:green">' || "DENOMINACI" || '</span>'
END

Cómo crear etiquetas avanzadas en QGIS con HTML y CSS

Ejemplo 6: Diferentes fuentes para partes de la etiqueta

Otro ejemplo es aplicar diferentes tipos de fuente diferenciando atributos dentro de la etiqueta.

'<span style="font-family: INK FREE; font-weight: bold">' ||  "den_uts"  || '</span>' ||
'<p><span style="font-family: Comic Sans MS; font-size: 9pt; color: #555555">' ||  "sigla"  || '</span>'

 

Cómo crear etiquetas avanzadas en QGIS con HTML y CSS

Debemos de mencionar una característica importante, y es que el formato HTML también funciona con etiquetas a lo largo de líneas curvas, ampliando aún más las posibilidades cartográficas sin necesidad de colocarlas manualmente.

Deja un comentario