Важно

Translation is a community effort you can join. This page is currently translated at 77.50%.

3.2. Lesson: Labels

Можно добавить надписи/метки для отображения любой информации об объекте. Надписи могут быть связаны с любым векторным слоем. Содержания этих надписей зависят от данных атрибутов слоя.

Цель данного занятия: Использовать в слое нужные и красивые надписи/ метки.

3.2.1. ★☆☆ Follow Along: Using Labels

В первую очередь убедитесь, что вам видна кнопка labelingSingle в системе GUI:

  1. Пройдите к элементу меню View ► Toolbars.

  2. Убедитесь, что рядом с панелью инструментов Label Toolbar установлен флажок. Если его нет, кликните на Label Toolbar, чтобы активировать флажок.

  3. Кликните на слой places на панели Layers, чтобы его выделить.

  4. Кликните на кнопку на панели инструментов labelingSingle, чтобы открыть вкладку Labels на панели Стиль слоя Layer Styling.

  5. Переключитесь с No Labels на labelingSingle Single Labels (Одиночные надписи/метки).

    Вам нужно будет выбрать, какое поле в атрибутах будет использоваться для надписей. На предыдущем занятии вы решили, что поле Имя name наиболее подходит для данной цели.

  6. Выберите name из списка Значения:

    ../../../_images/select_label_with.png
  7. Кликните Применить Apply.

На карте должны появиться надписи/ метки следующим образом:

../../../_images/first_place_names.png

3.2.2. ★☆☆ Follow Along: Changing Label Options

В зависимости от стилей, которые вы выбрали для своей карты на предыдущих занятиях, вы можете обнаружить, что надписи/ метки имеют неправильный формат и они либо перекрываются, либо находятся слишком далеко от своих точечных маркеров.

Примечание

Ранее, вы применяли кнопку labelingSingle на панели Label Toolbar, чтобы открыть панель Стили слоя Layer Styling. Также, как и с Символикой Symbology, те же параметры надписей доступны через панель Layer Styling и через диалоговое окно Свойства слоя Layer Properties. Здесь вы будете использовать диалоговое окно Layer Properties.

  1. Откройте диалоговое окно Layer Properties двойным нажатием на слой places.

  2. Выберите вкладку labelingSingle Labels.

  3. Убедитесь, что выбран Text в списке параметров слева, затем обновите параметры форматирования текста, чтобы они соответствовали показанным здесь:

    ../../../_images/label_formatting_options.png
  4. Кликните Применить Apply.

    Такой шрифт может быть крупнее и более знакомым пользователям, но его читабельность по-прежнему зависит от того, какие слои отображаются под ним. Чтобы решить эту проблему, давайте взглянем на опцию Буфер Buffer.

  5. Выберите Buffer из списка параметров слева.

  6. Установите флажок рядом с надписью Нарисовать текстовый буфер Draw text buffer, затем выберите параметры, соответствующие показанным здесь:

    ../../../_images/buffer_options.png
  7. Кликните Применить Apply.

    Вы увидите, что появляется цветной буфер или граница к надписям мест, что упрощает их выбор на карте:

    ../../../_images/buffer_results.png

    Теперь мы можем заняться позиционированием надписей относительно их точечных маркеров.

  8. Выберите Разместить Placement из списка параметров слева.

  9. Выберите Вокруг точки Around point и измените значение Расстояние Distance на 2.0 миллиметра:

    ../../../_images/offset_placement_settings.png
  10. Кликните Применить Apply.

    Вы увидите, что надписи/ метки больше не перекрывают свои точечные маркеры.

3.2.3. ★★☆ Follow Along: Using Labels Instead of Layer Symbology

Во многих случаях расположение точки не обязательно должно быть очень конкретным. Например, большинство точек в слое places относятся к целым городам или пригородам, а конкретная точка, связанная с такими функциями, не является такой уж конкретной в больших масштабах. На самом деле, когда задается слишком конкретная точка, она часто сбивает с толку того, кто читает карту.

Например, на карте мира точка, заданная как Европейский Союз, может быть где-то в Польше. Человеку, который «читает» карту и видит точку с надписью Европейский Союз на Польше, может показаться, что столица Европейского Союза, таким образом, находится в Польше.

Поэтому, для предотвращения такого рода недоразумений, часто полезно деактивировать символы точек и полностью заменить их надписями.

В QGIS это можно сделать, изменив положение надписей для их визуализации непосредственно над точками, на которые они ссылаются.

  1. Откройте вкладку labelingSingle Labels в диалоговом окне Layer Properties в слое places.

  2. Выберите Placement из списка параметров.

  3. Кликните на кнопку Смещение от точки Offset from point.

    Это откроет параметры Квадранта Quadrant, которые вы можете использовать для установки положения надписи/ метки относительно маркера точки. В данном случае мы хотим, чтобы надпись располагалась по центру точки, поэтому выберите центральный квадрант:

    ../../../_images/quadrant_offset_options.png
  4. Скройте символы точки чрез редактирование слоя Symbology как обычно, и задайте размер Маркера Marker до 0.0:

    ../../../_images/hide_point_marker.png
  5. Кликните Apply и вы увидите следующий результат:

    ../../../_images/hide_point_marker_results.png

Если бы вы отдалили карту, то вы бы увидели, что некоторые надписи исчезают при большем масштабе, чтобы избежать перекрывания. Иногда это именно то, что вам нужно, когда вы имеете дело с наборами данных, которые содержат много точек, но в других случаях, вы потеряете полезную информацию. Есть еще одна возможность для работы с подобными случаями, о которых мы поговорим позже на этом занятии. А пока отдалите карту, кликните кнопку showUnplacedLabel на панели инструментов и посмотрите, что произойдет.

3.2.4. ★★☆ Try Yourself: Customize the Labels

  • Сбросьте настройки надписи /метки и символа, чтобы получить точечный маркер и смещение надписи до 2.0 миллиметров.

  • Установите масштаб карты 1:100000. Вы можете сделать это через ввод в поле Масштаб Scale в Status Bar. Измените свои надписи, чтобы они подходили для просмотра в данном масштабе.

3.2.5. ★★☆ Follow Along: Labeling Lines

Теперь, когда вы знаете, как работает надпись/ метка, возникает дополнительная проблема. Точки и полигоны легко надписать, но как насчет линий? Если вы надписываете их так же как точки, то ваши результаты будут выглядеть так:

../../../_images/bad_street_labels.png

Теперь мы переформатируем надписи слоя roads, чтобы их было легче понять.

  1. Скройте слой places, чтобы он вас не отвлекал.

  2. Активируйте labelingSingle Single Labels для слоя  roads, как вы делали выше для слоя Места places.

  3. Установите Размер Size шрифта на 10, чтобы вы могли видеть больше надписей.

  4. Приблизить местность города Свеллендам Swellendam.

  5. Во вкладке Labels есть вкладка Размещение Placement, далее выберите следующие настройки:

    ../../../_images/street_label_settings.png

    Вы, вероятно, обнаружите, что для стиля текста используются значения по умолчанию, и поэтому надписи очень трудно читать. Обновите Text, чтобы использовать темно-серый или черный цвет Color, и Buffer, чтобы использовать светло-желтый цвет Color.

    Карта будет выглядеть примерно так, в зависимости от масштаба:

    ../../../_images/street_label_formatted.png

    Вы увидите, что названия некоторых дорог появляются более одного раза, и это не всегда необходимо. Чтобы этого не произошло:

  6. Во вкладке Labels есть диалоговое окно Layer Properties, выберите параметр Визуализация Rendering и выберите «Объединить соединенные линии, чтобы избежать дублирования надписей» Merge connected lines to avoid duplicate labels, как показано ниже:

    ../../../_images/merge_lines_option.png
  7. Кликните OK

    Еще одна полезная функция –это то, что можно предотвратить рисование надписей для функций, слишком короткими, чтобы их можно было заметить.

  8. На той же панели Визуализация Rendering установите значение Подавить маркировку функций менее чем… Suppress labeling of features smaller than… 5.00 mm и обратите внимание на результаты, когда вы нажмете кнопку Apply.

    Попробуйте также другие настройки места Placement. Как мы видели ранее, вариант По горизонтали Horizontal в данном случае не лучший вариант, поэтому давайте попробуем вместо этого вариант Изогнутый Curved.

  9. Выберите параметр Изогнутый Curved на панели Размещение Placement во вкладке Надписи Labels.

Вот результат:

../../../_images/final_street_labels.png

Как видите, такое действие скрывает некоторые надписи, которые были ранее видны, из-за сложности заставить некоторые из них следовать извилистым линиям улиц, оставаясь при этом читаемыми. Это делает другие надписи гораздо более полезными, поскольку они отслеживают дороги, а не плавают в пространстве между ними. Вы можете решить, какой из этих вариантов применить, в зависимости от того, что, по вашему мнению, кажется более полезным, или что выглядит лучше.

3.2.6. ★★★ Follow Along: Data Defined Settings

  1. Отключите надпись слоя roads.

  2. Повторно активируйте надпись слоя places.

  3. Откройте таблицу атрибутов  places с помощью кнопки openTable.

    В таблице есть одно поле, которое нас сейчас интересует: это Место place, оно определяет тип городской местности для каждой записи. Мы можем использовать эти данные, чтобы повлиять на стили надписей.

  4. Перейдите на панель Text на панели places Labels.

  5. Кликните на кнопку dataDefine рядом с кнопкой курсивного текста под надписью Стиль Style и выберите Редактировать… Edit…, чтобы открыть Конструктор строк выражений Expression String Builder:

    ../../../_images/expression_string_builder.png
  6. В поле Fields and Values дважды кликните на place, а затем кликните Все уникальные All Unique. Откроется список всех уникальных значений поля place данного слоя. Добавьте = в текстовом редакторе, а затем дважды кликните town.

    Кроме того, вы можете ввести: «место=город» / "place" = 'town' прямо в текстовом редакторе.

  7. Кликните дважды OK:

    ../../../_images/expression_builder_settings.png

Обратите внимание, что надписи для всех мест, в которых поле place соответствует town, отображаются курсивом.

../../../_images/italic_label_result.png

3.2.7. ★★★ Try Yourself: Using Data Defined Settings

Примечание

Мы немного забегаем вперед, чтобы продемонстрировать некоторые более продвинутые настройки надписей. Предполагается, что если вы на продвинутом уровне, вы знаете что нижеследующее означает. Если вы не сможете это сделать, пропускайте данный раздел и вернитесь позже, когда вы изучите необходимые материалы.

  1. Откройте Таблицу атрибутов для places.

  2. Войдите в режим редактирования, кликнув на кнопку toggleEditing.

  3. Добавьте новый столбец с помощью кнопки newAttribute.

  4. Настройте его следующим образом:

    ../../../_images/font_size_column.png
  5. Используйте это, чтобы установить собственный размер шрифта для каждого типа места (каждый ключ в поле place).

3.2.8. ★★★ Further Possibilities With Labeling

Мы не можем охватить все варианты в данном курсе, но имейте в виду, что во вкладке Label есть много других полезных функций. Вы можете установить визуализацию на основе масштаба, изменить приоритет визуализации для надписей в слое и установить каждый параметр надписи с помощью слоя атрибутов. Вы даже можете установить ротацию, положение XY и другие свойства надписи (если у вас есть поля атрибутов, выделенные для данной цели), а затем отредактировать эти свойства с помощью инструментов, расположенных рядом с основной кнопкой Параметры надписей слоя Layer Labeling Options:

labelingSingle showPinnedLabels pinLabels showHideLabels moveLabel rotateLabel changeLabelProperties

(Данные инструменты будут активны, если существуют обязательные поля атрибутов и вы находитесь в режиме редактирования).

Не стесняйтесь исследовать больше возможностей системы надписей.

3.2.9. In Conclusion

Вы узнали, как использовать атрибуты слоя для создания динамических надписей. Это может сделать вашу карту более информативной и стильной!

3.2.10. What’s Next?

Теперь, когда вы знаете, как атрибуты могут повлиять на вашу карту, как насчет их использования для изменения надписей самих объектов? Это тема следующего занятия!