18.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 18.23):

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

Figura 18.23 Panel de propiedades de elemento etiqueta

18.2.4.1. Propiedades principales

El grupo Propiedades principales es el lugar para proporcionar el texto (puede estar en HTML) o la expresión para construir la etiqueta. Las expresiones deben estar rodeadas por «[%» y «%]» para poder ser interpretadas como tales.

  • Las etiquetas pueden ser interpretadas como código HTML: marque checkbox Representar como HTML. Ahora puede insertar una URL, una imagen seleccionable que enlaza a una página web o algo más complejo.

  • Puede además usar expresiones: click en el botón Insertar o Editar una expresión…, escriba su fórmula como de costumbre y cuando se aplica el diálogo, QGIS agrega automáticamente los caracteres circundantes.

Nota

Haciendo Click en el botón Insertar o Editar una 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 actualizar un texto existente, debe seleccionarlo como parte de su interés de antemano.

Puede combinar la representación HTML con expresiones, lo que lleva a un etiquetado avanzado. El siguiente código saldrá Figura 18.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 18.24 Aprovechando una etiqueta con estilo HTML

18.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`.

18.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
    )