19.2.4. El elemento etiqueta

El elemento Etiqueta es una herramienta que ayuda a decorar tu mapa con textos que ayudarían a entenderlo; puede ser el título, autor, fuentes de datos o cualquier otra información … Puede agregar una etiqueta con la herramienta label Agregar etiqueta siguiendo las instrucciones de creación de elementos y manipularla de la misma manera que se expone en Interactuando con los elementos de composición

De forma predeterminada, el elemento de etiqueta proporciona un texto predeterminado que puede personalizar utilizando su panel Propiedades del elemento. Aparte de las propiedades comunes de elementos, esta prestación tiene las siguientes funcionalidades (ver Figura 19.23):

../../../../_images/label_mainproperties.png

Figura 19.23 Panel de propiedades de elemento etiqueta

19.2.4.1. Propiedades principales

El grupo Propiedades principales es el lugar para proporcionar el texto de la etiqueta. El texto puede ser estático, dinámico con funciones y variables expression <expression_builder> ` y/o formateado con HTML. Las partes dinámicas de una etiqueta deben estar rodeadas por ``[%` y %] para que se interpreten y evalúen como tales.

  • Para usar expresiones en las etiquetas, puede hacer clic en el botón Insertar/Editar expresión…, escribir su fórmula como de costumbre y cuando se aplica el cuadro de diálogo, QGIS agrega automáticamente los caracteres circundantes.

    Consejo

    Al hacer clic en el botón Insertar/Editar expresión… cuando no se realiza ninguna selección en el cuadro de texto, se agregará la nueva expresión al texto existente. Si desea modificar una expresión existente, primero debe seleccionar la parte de interés.

    Debido a que los mapas suelen estar llenos de alguna información textual común (fecha, autor, título, número de página, …), QGIS proporciona un acceso directo a las expresiones o variables correspondientes: presione el botón Texto dinámico para seleccionar y insértelos en su etiqueta.

    Truco

    El menú superior Agregar elemento ► Agregar texto dinámico ► se puede usar para crear un nuevo elemento de etiqueta con la expresión predefinida seleccionada.

    Es posible convertir una etiqueta dinámica en estática: presione la flecha desplegable junto al botón Insertar/Editar expresión… y seleccione Convertir a estática. Cualquier parte dinámica del contenido de la etiqueta será evaluada y reemplazada con sus valores actuales. Luego puede modificar manualmente el texto resultante cuando sea necesario.

  • Las etiquetas se pueden interpretar como código HTML: marque |casilla de verificación| Renderizar como HTML. Ahora puede insertar etiquetas o estilos HTML, URL, una imagen en la que se puede hacer clic que se vincula a una página web o algo más complejo…

El siguiente código combina la representación HTML con expresiones, para un etiquetado avanzado y generará Figura 19.24:

<html>
 <head>
   <style>
      /* Define some custom styles, with attribute-based size */
      name {color:red; font-size: [% ID %]px; font-family: Verdana; text-shadow: grey 1px 0 10px;}
      use {color:blue;}
   </style>
 </head>

 <body>
   <!-- Information to display -->
   <u>Feature Information</u>
   <ul style="list-style-type:disc">
     <li>Feature Id: [% ID %]</li>
     <li>Airport: <name>[% NAME %]</name></li>
     <li>Main use: <use>[% USE %]</use></li>
   </ul>
   Last check: [% concat( format_date( "control_date", 'yyyy-MM-dd'), ' by <b><i>', @user_full_name, '</i></b>' ) %]

   <!-- Insert an image -->
   <p align=center><img src="path/to/logos/qgis-logo-made-with-color.svg" alt="QGIS icon" style="width:80px;height:50px;"</p>
 </body>
</html>
../../../../_images/label_htmlexpression.png

Figura 19.24 Aprovechando una etiqueta con estilo HTML

19.2.4.2. Apariencia

  • Defina Fuente haciendo clic en el botón Tipo de letra… `o en :guilabel:`Color de letras presionando color widget.

  • Puede especificar diferentes márgenes horizontales y verticales en mm. Este es el margen desde el borde del elemento de diseño. La etiqueta se puede colocar fuera de los límites de la etiqueta, p. Ej. para alinear los elementos de la etiqueta con otros elementos. En este caso, debe utilizar valores negativos para el margen.

  • Usar la alineación del texto es otra forma de colocar su etiqueta. Puede ser:

    • Izquierda, Centro, Derecha o Justificar para Alineación horizontal

    • y Arriba, Medio, Abajo para :guilabel:` Alineación vertical`.

19.2.4.3. Explorando expresiones en un elemento de etiqueta

A continuación, se muestran algunos ejemplos de expresiones que puede utilizar para completar el elemento de la etiqueta con información interesante: recuerde que el código, o al menos la parte calculada, debe estar rodeada por [% y %] en el cuadro Propiedades principales:

  • Muestra un título con el valor actual de la característica del atlas en «field1»:

    'This is the map for ' || "field1"
    

    o, escrito en la sección Propiedades principales:

    This is the map for [% "field1" %]
    
  • Agregue una paginación para los objetos procesadas del atlas (por ejemplo, Page 1/10):

    concat( 'Page ', @atlas_featurenumber, '/', @atlas_totalfeatures )
    
  • Devuelve el nombre de los aeropuertos de la entidad de la región del atlas actual, según sus atributos comunes:

    aggregate( layer := 'airports',
               aggregate := 'concatenate',
               expression := "NAME",
               filter := fk_regionId = attribute( @atlas_feature, 'ID' ),
               concatenator := ', '
             )
    

    O, si una relación de atributos está establecida:

    relation_aggregate( relation := 'airports_in_region_relation',
                        aggregate := 'concatenate',
                        expression := "NAME",
                        concatenator := ', '
                      )
    
  • Devuelve el nombre de los aeropuertos incluidos en la entidad de región del atlas actual, según su relación espacial:

    aggregate( layer := 'airports',
               aggregate := 'concatenate',
               expression := "NAME",
               filter := contains( geometry( @parent ), $geometry ),
               concatenator := ', '
             )
    

    O:

    array_to_string( array:= overlay_contains( layer := 'airports',
                                               expression := "NAME" ),
                     delimiter:= ', '
                   )
    
  • Devuelve la coordenada X inferior de la extensión del elemento Map 1:

    x_min( map_get( item_variables( 'Map 1' ), 'map_extent' ) )
    
  • Recupere el nombre de las capas en el elemento de diseño actual Map1 y en formato de un nombre por línea:

    array_to_string(
     array_foreach(
      map_get( item_variables( 'Map 1' ), 'map_layers' ), -- retrieve the layers list
      layer_property( @element, 'name' ) -- retrieve each layer name
     ),
     '\n' -- converts the list to string separated by breaklines
    )
    
  • Muestre la lista de capas con sus cadenas de licencia (derechos de uso) en un elemento de diseño Mapa 1. Necesitas llenar las propiedades de capas primero “ Access metadata

    array_to_string( map_credits( 'Map 1', true ) )