Время прочтения: 4 минуты
Уровень владения QGIS: подойдет для новичков, которые знают основы работы со слоями и проектом
Версия QGIS на скриншотах: 3.40
Версия QGIS на скриншотах: 3.40
Зачем нужны правила для подписей
Надписи на карте — незаменимый элемент, без которого сложно представить карту. При этом подписи передают нам не только текстовую информацию. Тип, цвет и размер шрифта может рассказать о природе объекта и о его роли в иерархии элементов карты.
Названия столиц государств часто отображаются шрифтом большего размера, чем названия других городов, что дает дополнительную информацию о значимости населенных пунктов. Это удобно делать в QGIS с помощью подписей на основе правил, когда в рамках одного слоя мы можем настроить разные стили подписей для разных объектов, чтобы больше рассказать об их значимости и роли в иерархии.
Карта выше — пример того, как много информации могут давать шрифты. С помощью цвета можно различить города (подписаны черным цветом), элементы рельефа (подписаны коричневым) и водные объекты (подписаны синим). С помощью размера и стиля шрифта считывается информация об иерархии: размер шрифтов морей больше, чем у заливов, а у заливов больше, чем у рек.
Зачем нужны визуальная иерархия подписей на карте
Визуальная иерархия подписей на карте — это один из базовых аспектов картографического дизайна. И это не просто привычная традиция картографии, как подпись рек курсивным шрифтом. Иерархия ускоряет ориентирование на карте и поиск нужной информации, помогая игнорировать ненужные для анализа элементы.
Для большей убедительности посмотрите на пример ниже. Ради эксперимента попробуйте поочередно, используя карты, найти топонимы из списка: Iowa (штат), Sault Ste. Marie (город), Winnebago (озеро), North Bay (город). На какой карте получилось сделать это быстрее?
Настраиваем визуальную иерархию подписей для слоя в QGIS
Чтобы попрактиковаться, для примера настроим иерархию подписей городов Бразилии, которые я взял в наборе данных Natural Earth из слоя ne_10m_populated_places. В нашем примере мы будем менять размер шрифта в зависимости от значимости города.
Чтобы установить подписи на основе правил, нужно зайти в свойства слоя (правой клавишей мыши кликнем на слой на панели слоев и в самом низу меню ищем Свойства), после чего во вкладке “Подписи” в верхнем всплывающем меню выбираем “Подписи на основе правил”.
Два раза кликаем по первой строчке, которая создается стандартно, и видим окно, где мы можем установить первое правило. Если вдруг у вас нет первой строчки, нажмите на зеленый плюсик внизу окна.
Для начала установим шрифт для столицы страны, но перед этим в строке “Описание” подпишем, для чего мы устанавливаем правило. Убедимся, что будем подписывать значением, взятым из колонки с именем города, и после этого настроим стили. Чтобы установить правило рядом со строкой “Фильтр”, вверху нажмем на кнопку с буквой ε. Можно вписывать правила сразу в строчку, но через дополнительное меню это сделать проще.
В открытом редакторе выражений довольно удобно писать формулы. Например, если открыть вкладку "Поля и значения" и кликнуть на нужное нам поле, то оно сразу печатается слева без ошибок.
Давайте подробно разберем код для подписей столиц:
"FEATURECLA" = 'Admin-0 capital'- "FEATURECLA" — поле, в котором хранится информация о том, является ли город столицей страны (значение 'Admin-0 capital'), столицей региона/штата (значение 'Admin-1 capital' или же это просто населенный пункт (значение ‘Populated place’);
- = 'Admin-0 capital' означает, что стиль будет работать, когда значение в поле "FEATURECLA" равно Admin-0 capital. Обратите внимание, что кавычки с названием колонки и значением колонки разные.
После того как код написан, нажимаем "ОК" и создаем еще два стиля: один для городов с населением больше 1 млн человек и один для тех, которые меньше.
Теперь заполняем новое правило, меняем описание и настройки стиля слоя, а также пишем новый код. Обратите внимание, что для второй категории городов я уменьшил размер шрифта, чтобы показать иерархию. Но далее мы отойдем от административной иерархии в учебных целях и будем отталкиваться от численности населения.
Давайте разберем код в строке "Фильтр":
"FEATURECLA" != 'Admin-0 capital' AND "POP_MAX" >=1000000- "FEATURECLA" != 'Admin-0 capital' — здесь != означает не равно. Население Бразилиа больше 1 миллиона человек, и столица будет попадать под два правила, что в таких случаях может давать не тот результат, что нам нужен. Поэтому с помощью != 'Admin-0 capital' мы исключаем его из правила;
- AND "POP_MAX" >=1000000 означает, что для выполнения правила население города в колонке "POP_MAX" должно быть более 1 миллиона человек, включая города с населением 1000000. Если работаете с числами, убедитесь, что тип поля — целое или десятичное число, иначе код работать не будет.
Для следующей категории все просто: копируем правило для городов с населением свыше 1 млн. человек, меняем описание и размер шрифта в правиле. В коде же меняем >= на <.
Установив все правила в окне "Свойства слоя", нажимаем “ОК” и наблюдаем, насколько понятнее стала карта.
Связанные статьи:
Материал подготовил Александр Зуев