Важно
Перевод - это работа сообщества : ссылка:Вы можете присоединиться. Эта страница в настоящее время переводится |прогресс перевода|.
18.2.4. Элемент этикетки
Элемент Метка - это инструмент, который помогает украсить вашу карту текстами, которые помогут понять ее; это может быть название, автор, источники данных или любая другая информация… Вы можете добавить метку с помощью инструмента Добавить метку<create_layout_item>, следуя инструкции по созданию элементов и манипулировать ею так же, как и в Interacting with layout items.
По умолчанию элемент метки предоставляет текст по умолчанию, который вы можете настроить с помощью панели Свойства элемента<item_common_properties>. Помимо общих свойств элементов, эта функция обладает следующими функциональными возможностями (см. Рис. 18.24):

Рис. 18.24 Панель свойств элементов этикетки
18.2.4.1. Основные свойства
Группа Основные свойства - это место для указания текста метки. Текст может быть статическим, динамическим с помощью функций и переменных expression, и/или отформатированным с помощью HTML. Динамические части ярлыка должны быть окружены символами [%
и %]
, чтобы они интерпретировались и оценивались как таковые.
Чтобы использовать выражения в метках, вы можете нажать на кнопку Insert/Edit Expression…, написать свою формулу как обычно, и когда диалог будет применен, QGIS автоматически добавит окружающие символы.
Подсказка
Когда вы нажимаете кнопку Insert/Edit Expression… без выбора в текстовом поле, новое выражение будет добавлено к существующему тексту. Однако если вы хотите изменить существующее выражение, поведение меняется в зависимости от вашего выделения: Если выделен текст, а выделение находится внутри выражения (между „[%“ и „%]“), или если текст не выделен, но курсор находится внутри выражения, будет выделено все выражение. Во всех остальных случаях выделение останется прежним.
Поскольку карты обычно заполнены некоторой общей текстовой информацией (дата, автор, заголовок, номер страницы, …), QGIS предоставляет прямой доступ к соответствующим выражениям или переменным: нажмите кнопку Динамический текст, чтобы выбрать и вставить их в вашу метку.
Совет
Верхнее меню
может быть использовано для создания нового элемента метки, заполненного выбранным предопределенным выражением.Можно превратить динамическую метку в статическую: нажмите стрелку вниз рядом с кнопкой Вставить/редактировать выражение… и выберите Преобразовать в статическую. Все динамические части содержимого метки будут оценены и заменены их текущими значениями. При необходимости вы можете вручную подправить полученный текст.
Ярлыки можно интерпретировать как HTML-код: галочка
Рендеринг как HTML. Теперь вы можете вставить HTML-теги или стили, URL, кликабельное изображение, которое ссылается на веб-страницу, или что-то более сложное…
Следующий код сочетает HTML-рендеринг с выражениями для расширенной разметки и выводит Рис. 18.25:
<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>

Рис. 18.25 Использование ярлыка с помощью HTML-стилей
18.2.4.2. Внешний вид
Определите шрифт и стиль текста, нажав на кнопку Шрифт. В меню Шрифт метки вы можете использовать некоторые опции для Форматирования текста метки.
Вы можете задать различные горизонтальные и вертикальные поля в
мм
. Это отступ от края элемента макета. Этикетку можно расположить за пределами границ, например, чтобы выровнять элементы этикетки относительно других элементов. В этом случае для отступа нужно использовать отрицательные значения.Выравнивание текста - еще один способ расположить этикетку. Это может быть:
Левый, Центр, Правый или Уточнить для Горизонтальное выравнивание.
и Верх, Вертикальный центр, Вниз для Вертикальное выравнивание.

Рис. 18.26 Свойства внешнего вида элементов этикетки
18.2.4.3. Изучение выражений в элементе метки
Ниже приведены примеры выражений, которые можно использовать для наполнения элемента метки интересной информацией - помните, что код или, по крайней мере, вычисляемая часть должны быть окружены [%
и %]
в рамке :guilabel:Основные свойства
:
Отобразите заголовок с текущим значением признака атласа в «поле1»:
'This is the map for ' || "field1"
или в разделе Основные свойства:
This is the map for [% "field1" %]
Добавьте пагинацию для обработанных элементов атласа (например,
Страница 1/10
):concat( 'Page ', @atlas_featurenumber, '/', @atlas_totalfeatures )
Возвращает название аэропортов текущего атласа региона, основываясь на их общих атрибутах:
aggregate( layer := 'airports', aggregate := 'concatenate', expression := "NAME", filter := fk_regionId = attribute( @atlas_feature, 'ID' ), concatenator := ', ' )
Или, если установлено отношение attributes relation:
relation_aggregate( relation := 'airports_in_region_relation', aggregate := 'concatenate', expression := "NAME", concatenator := ', ' )
Возвращает название аэропортов, содержащихся в текущей функции региона атласа, на основе их пространственного соотношения:
aggregate( layer := 'airports', aggregate := 'concatenate', expression := "NAME", filter := contains( geometry( @parent ), $geometry ), concatenator := ', ' )
ИЛИ:
array_to_string( array:= overlay_contains( layer := 'airports', expression := "NAME" ), delimiter:= ', ' )
Возвращает нижнюю координату X области элемента
Карты 1
:x_min( map_get( item_variables( 'Map 1' ), 'map_extent' ) )
Получает имена слоев в текущем элементе макета
Карта 1
и форматирует по одному имени в строку: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 )
Отображение списка слоев с их лицензионными строками (правами использования) в элементе макета
Карта 1
. Сначала необходимо заполнить свойства слоев Метаданные доступа.array_to_string( map_credits( 'Map 1', true ) )