Статьи

Сложные условные знаки в QGIS

ГИС Дизайн
Время прочтения: 6 минут
Версия QGIS на скриншотах: 3.42
Уровень владения QGIS: подойдет для новичков, которые знают основы работы со слоями и проектом

Когда и где нужны сложные условные знаки

Условные знаки — основа большинства карт. Многообразие различных объектов на карте, которые бывают еще и разного вида, приводит к тому, что условные знаки могут состоять из нескольких элементов.
Первый раз я столкнулся с необходимостью создания сложных условных знаков, состоящих из нескольких элементов, в 2018 году. Тогда вступил в силу Приказ Минэкономразвития, устанавливающий требования к отображению различных объектов на картах генеральных планов, и стоял выбор: купить готовые условные знаки для MapInfo за кучу денег либо самим сделать их в QGIS.
Условный знак дороги может состоять из двух линий: черная толстая линия снизу и красная потоньше сверху (Источник изображения: Приказ Минэкономразвития России от 9 января 2018 г. № 10)
Так что создание условных знаков может помочь не только сделать карту красивее и уникальнее, но и подстроиться под требования законодательства, которые часто меняются, или даже сэкономить.

Что будет в этом уроке

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

Добавляем штриховку к полигону

Начнем с простого: сделаем полигон воды со штриховкой в виде горизонтальных параллельных линий.
Напомню: для того, чтобы установить стиль слоя, необходимо правой клавишей кликнуть на слой, выбрать «Свойства слоя» и во всплывшем окне выбрать «Стиль».
Далее нажимаем на «Простая заливка» и во вкладке «Цвет заливки» устанавливаем новый цвет. После этого нам нужно добавить второй элемент нашего условного знака — штриховку.
Чтобы добавить элемент условного знака, нажимаем на зеленый плюс справа сверху. После этого в списке появится еще одна простая заливка другого цвета. Слева вы можете видеть пример нового условного знака. Теперь он синий, так как новый элемент появился выше нашей голубой заливки, и он полностью ее перекрывает.
Далее во вкладке «Тип слоя» выбираем вместо «Простая заливка» «Заливку штриховкой».
Теперь у нас синяя косая штриховка поверх голубой заливки. Если убрать ее под голубую заливку, то ее не будет видно. Менять очередность элементов можно с помощью стрелочек в правом верхнем углу окна.
Чтобы настроить штриховку, нам важнее всего поля «Поворот» и «Отступ». Для горизонтальной штриховки устанавливаю «Поворот» — 0 градусов, а для мелкой штриховки ставлю отступ 1 мм.
Теперь установим цвет штриховки и толщину ее линий. Для этого выбираем в списке элементов условного знака «Простая линия» и устанавливаем для нее толщину обводки и цвет.
Условный знак готов.

Добавляем к полигону маркеры случайного размера и случайного расположения

Теперь мы сделаем условное обозначение для леса. Обратите внимание, что на знаке деревья не просто случайно расположены, но они еще и разного размера.
Для начала все то же самое: заходим через «Свойства слоя» в «Стиль», устанавливаем цвет для полигона через стандартную «Простую заливку».
Затем с помощью зеленого плюса добавляем новый элемент, но теперь в «Тип слоя» устанавливаем вместо простой заливки «Заливка маркерами со случайным размещением».
Если вы нажмете на «Ок» и закроете окно, то увидите, что при стандартных настройках точек довольно мало.
Поэтому нам потребуется сделать следующие шаги:
  1. Настроить плотность точек.
  2. Настроить тип маркера и цвет.
  3. Настроить размеры маркера.
Начнем по порядку. Количество точек лучше настраивать исходя из плотности, поэтому устанавливаем «Метод подсчета»«в зависимости от плотности».
Далее устанавливаем «Количество точек» — это уже делается экспериментальным путем в зависимости от размера маркера. В моем случае это 20 штук на 250 миллиметров площади, которая устанавливается в поле ниже, но необходимость менять эту настройку возникает достаточно редко.
Теперь настраиваем тип и цвет маркера. Для этого выбираем самый нижний подэлемент «Заливки маркерами со случайным размещением» — «Простой маркер». Тип слоя меняем с «Простой маркер» на «SVG маркер». В окне обзор находим подходящий для нас знак. И не забываем про установку цвета.
Чтобы установить случайный размер маркеров, нам нужно выбрать элемент «Маркер», затем левой клавишей мыши нажать на символ списка со стрелкой в конце справа от пункта «Размер» и в открывшемся меню выбрать вкладку «Изменить». После чего пишем формулу rand(1, 3), которая означает, что размер знака будет случайным и равен от 1 до 3 миллиметров.
Заливка маркерами случайного размера делает карту немного живее и приятнее, но стоит понимать, что некоторые пользователи карты могут подумать, что в том месте где условных знаков больше, лес гуще. Кто-то также может подумать, что условный знак дерева стоит там, где стоит дерево.

Создаем линию из трех элементов

Теперь отойдем от полигональных слоев и перейдем к линиям. Научимся создавать сложное условное обозначение линии у которой есть фон, пунктир и маркеры — для границы музея-заповедника.
Для начала создадим зеленый фон линии, для этого заходим как обычно в стиль слоя. Устанавливаем «Цвет», «Толщину обводки» и «Отступ». Толщина линии должна быть достаточно толстой, чтобы пунктиру не было тесно в границах линии, а отступ я выставил для того, чтобы линия не залезала на объект на карте. Эта настройка не обязательна, но я иногда ее ставлю, чтобы линия не конфликтовала с объектами, которые расположены на границе.
Отступ также не стоит ставить, если вам важна точность передачи координат и расположения линии.
Следующим этапом добавляем пунктир. Для этого создаем новый элемент, устанавливаем «Толщину обводки» и «Отступ», после чего ставим галочку у пункта «Пользовательский пунктир».
Чтобы настроить размер пунктира и отступов между ними, нажимаем на поле с пунктиром и в открывшемся окне ставим нужные значения. В моем случае я делаю большой отступ, чтобы туда еще и поместился маркер.
Теперь перейдем к настройке последнего элемента знака — маркерной линии. Для этого создаем еще один элемент знака. Тип слоя меняем на «Маркерная линия».
Перейдем к настройкам. Нам нужно, чтобы наш маркер появлялся в середине каждого отступа между пунктирами. Размер пунктира — 5 мм, отступа — 5 мм, итого у нас один цикл равен 10 мм. Значит, и интервал маркера должен быть равен 10 мм, что мы и ставим в пункте «Размещение маркеров».
Наш маркер может появиться в случайном месте пунктирной линии, поэтому нам нужно установить его так, чтобы он располагался в середине отступа между штрихами, сделать это можно с помощью настройки «Смещение вдоль линии».
Также я устанавливаю «Смещение линии» 1 мм, так как я смещал зеленую линию и пунктир на 1 мм через настройку «Отступ» в предшествующих пунктах.
Цвет и размер маркера можно установить через вкладку «Простой маркер» в списке элементов условного знака.
Чтобы убедиться, что все правильно, посмотрите, как выглядит ваша линия на Макете. Иногда линия может баговать в окне QGIS, в котором масштаб меняется с каждым движением колесика мышки. На макете же масштаб статичен.

Секрет красивого условного знака дороги

Теперь мы знаем, как создавать сложные условные знаки. Расскажу вам небольшой секрет, как сделать так, чтобы ваши дороги на карте выглядели лучше. Сейчас на примере я покажу, что имею в виду.
Знак дорог обычно состоит из двух элементов: фоновой линии и внутренней линии потоньше (пример — Приказ Минэкономразвития, скрин из которого я приложил в начале статьи).
Когда две линии пересекаются, на дороге появляются перекрытия. Если линий много, это может привести к множеству перекрытий, как на скриншоте ниже.
Как же этого можно избежать? Довольно просто.
Заходим в «Стиль» слоя и сверху меняем «Простая символика» на «Символизация на основе правил». После чего справа внизу от окна находим уровни знака и для верхней линии знака нашей дороги ставим 1. После этого наши линии дорог перестанут перекрывать друг друга.
Условные знаки — мощный инструмент визуализации в картографии, и QGIS позволяет по-разному использовать этот инструмент. Можно делать знаки еще более сложными, добавлять в них текст или отдельные буквы и даже строить различные диаграммы. Если хотите еще больше узнать про создание условных знаков в QGIS, то можете посмотреть видео с мастер-класса «Условные знаки своими руками».
Материал подготовил Александр Зуев