3.6. Настройка векторных стилей

Картостиль - это описание цветов, текстур, значков, толщины линий, подписей и прочих особенностей отображения слоёв на экране. Эти настройки хранятся отдельно от географических данных, их можно сохранять в отдельные файлы и копировать между слоями. Настройка осуществляется через Слой Свойства слоя Оформление или Слой Свойства слоя Подписи. Для каждого слоя задаётся отдельное оформление.

3.6.1. Настройка оформления векторных слоёв

В описании об оформлении векторного слоя используется 3 типа символов:

  1. Тип символов.
  2. Тип символьного слоя.
  3. Тип классификации.
  • Тип символа - символы различаются по типу: для точечных, линейных и полигональных

слоёв символы различаются. Это не изменяется. Сами символы могут состоять из одного или нескольких символьных слоёв.

../../_images/styles_type1.png

Рис. 3.32. Примеры символов для точечных, линейных и полигональных слоёв.

  • Тип символьного слоя - задаёт способ заливки: цветом, штриховкой, SVG, маркерами, или способ рисования линии: пунктирная линия, линия из маркеров.
../../_images/styles_type2.png

Рис. 3.33. Варианты типов символьного слоя доступные для точечных, линейных и полигональных слоёв.

  • Тип классификации - задаёт способ, как рисовать разные символы для разных объектов в одном слое: все одинаково или по-разному.
../../_images/styles_type3.png

Рис. 3.34. Варианты типов классификации.

Для настройки стиля выделите нужный стиль в списке слоёв, и откройте окно настройки стиля: Слой Свойства слоя вкладка Оформление.

../../_images/styles_stylewindow1.png

Рис. 3.35. Окно настройки стиля в режиме классификации Обычный знак, которое открывается по умолчанию.

Цифрами обозначено: 1. Список типов классификации. 2. Изображение знака. 3. Список символьных слоёв в текущем символе. 4. Кнопки добавления-удаления символьных слоёв.

Если в списке символьных слоёв выбрать один слой, то появится окно настроек символа. Его вид будет разным в зависимости от выбранного типа символьного слоя.

../../_images/styles_stylewindow2.png

Рис. 3.36. Окно настроек символа.

Цифрой обозначено: 1. Список типов символьных слоёв.

3.6.2. Доступные типы символьных слоёв

  • Для точечных слоёв:
    • Символьный маркер: отрисовка с использованием определенного символа заданного шрифта.
    • Простой маркер: отрисовка с использованием одного из предустановленных маркеров.
    • SVG маркер: отрисовка с использованием SVG изображения.
    • Эллипс: отрисовка с использованием геометрических примитивов (эллипс, прямоугольник, треугольник, перекрестие).
    • Векторное поле: отрисовка векторным полем с использованием значений атрибутивной таблицы.
  • Для линейных слоёв:
    • Обрамление линии: добавляет элементы оформления, например, стрелку для указания направления линии.
    • Маркерная линия: отрисовка линии повторением маркерного символа.
    • Простая линия: обычная отрисовка линии (с указанными шириной, цветом и стилем).
  • Для полигональных слоёв:
    • Отрисовка центроидов: отрисовка центроида полигона при помощи одного из предустановленных маркеров.
    • Заливка SVG-шаблоном: Заливка полигона SVG изображением.
    • Простая заливка: обычная отрисовка полигона (с определенным цветом заливки, шаблоном заливки и контуром).
    • Заливка штриховкой: заливка полигона линейной штриховкой.
    • Заливка маркерами: заливка полигона заданным маркером.
    • Обводка: обрамление линии: добавляет элементы оформления (например, кружки) к контуру полигона.
    • Обводка: маркерная линия: контур отрисовывается путем повторения маркерного символа.
    • Обводка: простая линия: обычная отрисовка линии (с указанными шириной, цветом и стилем).

3.6.3. Доступные типы классификации слоев

Возможно выбрать один из пяти типов:

  1. Обычный знак.
  2. Уникальные значения.
  3. Градуированный знак.
  4. Правила.
  5. Точки со смещением.

Обычный знак

Используется для отрисовки всех элементов слоя с использованием одного, определенного пользователем, символа. Свойства, которые можно задать во вкладке «Стиль», частично зависят от типа слоя.

../../_images/dialogue_rendering_simple_values.png

Рис. 3.37. Диалог отрисовки обычным знаком.

Уникальные значения

Объекты с разным значением какого-нибудь атрибута рисуются разными цветами.

Отрисовка уникальными значениями используется для отрисовки всех элементов слоя единым, определенным пользователем, символом, цвет которого отражает значение выбранного атрибута элемента. Вкладка «Стиль» позволяет выбрать:

  1. Поле (в списке полей).
  2. Знак (в диалоге Выбор условного знака).
  3. Градиент (в списке цветовых шкал).

Кнопка Дополнительно в нижнем левом углу окна позволяет указать поля с информацией о вращении и масштабе. Для удобства список в нижней части вкладки показывает значения всех заданных на данный момент атрибутов, включая символы, к которым в будущем будет применена отрисовка. Рисунок Рис. 3.38. иллюстрирует диалог отрисовки уникальными значениями из демонстрационного набора данных NextGIS QGIS:

../../_images/dialogue_rendering_unique_values.png

Рис. 3.38. Диалог отрисовки уникальными значениями.

Можно создавать свои градиенты, выбрав «Новый градиент» из выпадающего списка «Градиент». В появившемся окне можно выбрать тип градиента: «Градиент», «Случайный» или «ColorBrewer», для каждого из которых можно задать желаемое количество цветов.

Градуированый знак

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

../../_images/graduated_mark.png

Рис. 3.39. Фрагмент диалога свойств слоя - Градуированный знак.

Правила

Используется для отрисовки всех элементов слоя с помощью символов, базирующихся на определенных правилах. Задаётся несколько выражений/правил. Каждое выражение выдаёт несколько записей и оформляется по-своему. Может быть разным не только цвет, но и другие параметры.

Точки со смещением

Только для точечных слоёв - рисуются кластеры. В данном стиле при задании значения Порога расстояния между точками (вкладка «Свойства слоя ‣ Стиль») точки группируются с учетом значения Порога расстояния между точками. Далее при отображении на карте внутри группы точек выбирается точка, вокруг которой выстраиваются остальные точки по кругу с радиусом, соответствующим значению «Порога расстояния» между точками.

../../_images/styles_point_offset.png

Рис. 3.40. Фрагмент карты после применения стиля «Точки со смещением».

Инвертированные полигоны

Только для полигональных слоёв. При использовании данного стиля (вкладка «Свойства слоя ‣ Стиль») происходит заливка цветом областей за пределами полигона (снаружи полигона), сам полигон остается прозрачным.

../../_images/styles_inverted_polygons.png

Рис. 3.41. Фрагмент карты До и После применения стиля «Инвертированные полигоны».

Создание теплокарт

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

В настройках градиента можно выбрать прозрачный цвет. Качество отрисовки обозначает размер пикселей.

../../_images/styles_heatmap_00.png

Рис. 3.42. Исходные точки.

../../_images/styles_heatmap_01.png

Рис. 3.43. Теплокарта с настройками по умолчанию.

../../_images/styles_heatmap_02_owngradient.png

Рис. 3.44. Свой градиент.

../../_images/styles_heatmap_03_gradienttransparent.png

Рис. 3.45. Градиент, начинающийся с прозрачного цвета.

../../_images/styles_heatmap_04_quick.png

Рис. 3.46. Самый быстрый.

../../_images/styles_heatmap_05_quality.png

Рис. 3.47. Самый качественный.

../../_images/styles_heatmap_06_discret-quality.png

Рис. 3.48. Дискретный градиент - качественный.

../../_images/styles_heatmap_07_discret-quick.png

Рис. 3.49. Дискретный градиент - быстрый.

../../_images/styles_heatmap_08_bigradius.png

Рис. 3.50. Средний радиус.

../../_images/styles_heatmap_09_smallradius.png

Рис. 3.51. Занизить радиус.

../../_images/styles_heatmap_10_radiusverybig.png

Рис. 3.52. Завысить радиус.

../../_images/styles_heatmap_11_maxvalueauto.png

Рис. 3.53. Максимальное значение - авто.

../../_images/styles_heatmap_11_maxvaluelow.png

Рис. 3.54. Максимальное значение - занизить.

../../_images/styles_heatmap_13_complexgradient.png

Рис. 3.55. Сложный градиент с промежуточными цветами.

../../_images/styles_heatmap_14_weightauto.png

Рис. 3.56. Взвешивание - автоматическое. Интенсивность обозначает концентрацию точек.

../../_images/styles_heatmap_15_weightattr.png

Рис. 3.57. Взвешивение - по атрибуту (количество мест). Интенсивность обозначает суммарное количество мест в заведениях.

3.6.4. Рисование своих условных обозначений в SVG

Если вам нужны специальные значки, то вы можете нарисовать их сами в формате svg, поместить файл в интернете, и поставить его URL в качестве пути к значку SVG.

SVG - открытый формат для векторных картинок, внутри него XML, описывающий линии и фигуры. Картинки в этом формате рисуются в Inkscape, CorelDRAW. Так же в принципе эти файлы можно писать вручную: http://svgpocketguide.com/book/ Большая коллекция значков в SVG есть на Wikimedia Commons - https://commons.wikimedia.org/wiki/Category:SVG_icons, туда можно добавлять и свои. Если вам например нужен логотип известной организации, то возможно он там есть.

Для добавления своего значка в стиль QGIS или в стиль для слоя nextgis.com нужно:

  1. Поискать его на https://commons.wikimedia.org, и взять URL файла SVG.
  2. Если значка под подходящей лицензией нет, то нарисовать его самому в Inkscape,
  3. Поместить файл на какой-нибудь сервер видимый из Интернета. Если ваш значок не нарушает авторских прав, то логичнее всего поместить его на https://commons.wikimedia.org, что бы его могли использовать другие люди. Так же можно положить в свой репозиторий на github или gitlab.
  4. Вставить URL файла SVG в окно настройки стиля –> путь к файлу SVG. Этот же стиль можно использовать и в nextgis.com

Если вы работаете только в QGIS, без nextgis.com, то можно использовать путь к файлу на жёстком диске, но это менее надёжно, потому что вы можете о нём забыть, перенести файл значка, и стиль перестанет рисоваться.

3.6.5. Эффекты отрисовки

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

../../_images/styles_effects.png

Рис. 3.58. Фрагмент карты с различными отрисовками.

3.6.6. Сохранение стиля

Стиль можно сохранить в файл. В нём сохранится настройки оформления и настройки подписей.

../../_images/styles_save.png

Рис. 3.59. Диалог сохранения стиля.

В окне свойства стиля нажмите на кнопку «Стиль» (см. Рис. 3.59.).

По нажатию на кнопку «Сохранить настройки по умолчанию» стиль сохранится в формате qml в каталоге, где лежит слой, с тем же названием. Теперь, если вы будете добавлять этот слой как новый, то NextGIS QGIS подхватит этот стиль.

Пункт » Сохранить стиль» - позволяет сохранить его в другой файл, а так же в формат sld.

3.7. Оформление растровых слоёв

Для растровых слоёв существует 4 разных способа визуализации: два - для одноканальных растров, два - для многоканальных.

Примечание

Настройки оформления различаются для разных форматов. Большее количество настроек оформления существует для формата GeoTIFF, а для слоёв WMS и TMS настроек оформления меньше.

Многоканальное цветное

Используйте этот способ оформления, если у вас многоканальный растр, например - цветной космоснимок или скан карты в RGB.

Индексированое

Картинка рисуется по данным из одного выбранного канала растра. Каждое значение растра рисуется отдельно заданным цветом. Этот формат встречается редко. Если вы откроете растр в формате gif, то по умолчанию выставится этот режим.

Одноканальное серое

Картинка рисуется по данным из одного выбранного канала растра, чёрно-белой.

Рассмотрим настройки растрового стиля на самом простом примере - цифровой модели рельефа. Это - GeoTIFF, пикселы которого имеют только одно значение (одноканальный) - высоты в метрах. Если бы это была фотография - то пикселы имели бы 3 значения - количества красного, зелёного и синего цвета (трёхканальный).

Высота меняется в диапазоне до нескольких тысяч метров. Для хранения значения из такого диапазона нужно 16 бит. Если значения изменяются в диапазоне от 0 до 255 - то они укладываются в 8 бит и формат такого растра называется RGB.

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

Одноканальное псевдоцветное

Картинка рисуется по данным из одного выбранного канала растра, по цветному градиенту. Используйте этот способ оформления, если у вас одноканальный растр, например - цифровая модель рельефа (DEM).

В полях Мин и Макс выводятся крайние значения, которые встречаются в пикселах этого растра. Градиент заливки распределяется между ними. Если их поменять вручную, то градиент заливки изменится. Если нажать «Охват Текущий» и кнопку «Загрузить», то рассчитаются значения Мин и Макс для текущего охвата карты.

При всех способах визуализации можно задавать прозрачность, яркость, контрастность и тонирование в цвет.

3.8. Настройка подписей

Подписи можно выводить у объектов векторных слоёв. Текст подписи можно брать либо из атрибута, либо рассчитывать выражением из значений нескольких атрибутов. Остальные свойства подписи - цвет, размер, положение, поворот - тоже можно получать из атрибутов.

Для настройки стиля выделите нужный стиль в списке слоёв и откройте окно настройки стиля: Слой Свойства слоя вкладка Подписи.

В открывшемся окне в списке режима подписей выберите «Показывать подписи» для этого слоя. Затем в списке «Подписывать значениями» выберите поле, из которого будет получаться надпись.

Настройки подписей можно сохранить в файл стиля NextGIS QGIS (формат qml), вместе с оформлением.

3.8.1. Вкладка «Текст»

На вкладке «Текст» вы можете выбрать гарнитуру шрифта, размер букв, использовать изменение регистра символов.

../../_images/labels_settings_text.png

Рис. 3.60. Окно свойств подписей, вкладка «Текст».

3.8.2. Вкладка «Форматирование»

На вкладке «Форматирование» можно настроить количество знаков после запятой, выводимых из полей типа Real, и выравнивание многострочных подписей.

../../_images/labels_settings_formating.png

Рис. 3.61. Окно свойств подписей, вкладка «Форматирование».

Совет

Для переноса длинных подписей, рекомендуется в поле «Подписывать значениями» ввести формулу wordwrap(«NAME»,15) - подпись будет получаться из атрибута NAME, и делиться на части не менее 15 символов разделённые пробелами. Это более гибкий способ.

../../_images/labels_settings_worldwrap.png

Рис. 3.62. Окно свойств подписей, настройка переноса текста.

../../_images/labels_map_worldwrap.png

Рис. 3.63. Пример переноса текста.

3.8.3. Вкладка «Буфер»

На вкладке «Буфер» можно настроить рисование закрашеной области вокруг букв. В этом режиме они будут видны на любом фоне.

../../_images/labels_settings_buffer.png

Рис. 3.64. Окно свойств подписей, вкладка «Буфер».

../../_images/labels_demo_buffer.png

Рис. 3.65. Пример подписи без буфера и с буфером.

3.8.4. Вкладка «Фон»

На вкладке «Фон» можно настроить рисование прямоугольного фона под надписями. В этом режиме карта начинает выглядеть более угловато и старомодно.

../../_images/labels_settings_background.png

Рис. 3.66. Окно свойств подписей, вкладка «Фон».

../../_images/labels_demo_background.png

Рис. 3.67. Пример подписи без фона и с фоном.

3.8.5. Вкладка «Тень»

На вкладке «Тень» можно настроить рисование тени под надписями. В этом режиме карта начинает выглядеть более сложно.

../../_images/labels_settings_shadows.png

Рис. 3.68. Окно свойств подписей, вкладка «Тень».

../../_images/labels_demo_shadows.png

Рис. 3.69. Пример подписи без тени и с тенью.

3.8.6. Вкладка «Размещение»

На вкладке «Размещение» можно настроить алгоритм, по которому подписи раздвигаются, что бы не накладываться друг на друга.

Так же имеется возможность передвигать вручную и поворачивать отдельные подписи.

../../_images/labels_settings_positioning.png

Рис. 3.70. Окно свойств подписей, вкладка «Размещение».

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

Для точечных слоёв

../../_images/labels_demo-1-cartografic.png

Рис. 3.71. Пример размещения точечных подписей в режиме Сartografic. Для точечных подписей это рекомендуемый алгоритм. Он делает как написано в учебниках: пытается сначала поставить подпись в правую-верхнюю сторону от точки.

../../_images/labels_demo-2-vokrug.png

Рис. 3.72. Пример размещения точечных подписей в режиме «Вокруг точки». Это старый алгоритм, который был до Cartografic.

../../_images/labels_demo-3-center.png

Рис. 3.73. Пример размещения точечных подписей в режиме «На расстоянии от точки» без смещения. Подписи закрывают точки. Видно, что шоссе проходят прямо через Бутурлино.

../../_images/labels_demo-4-right.png

Рис. 3.74. Пример размещения точечных подписей в режиме «На расстоянии от точки» со смещением. Все точки подписаны справа.

Для линейных слоёв

../../_images/labels_demo-11-poverh.png

Рис. 3.75. Пример размещения линейных подписей в режиме «Поверх линий».

../../_images/labels_demo-12-upper.png

Рис. 3.76. Пример размещения линейных подписей в режиме «Над линиями». Обратите внимание, что такие надписи не загораживают трамвайные линии на улицах.

../../_images/labels_demo-13-upper-lower.png

Рис. 3.77. Пример размещения линейных подписей в режиме «Над линиями» и «Под линиями». Так нарисовалось больше надписей.

Для полигональных слоёв

../../_images/labels_demo-21-s.png

Рис. 3.78. Пример размещения линейных подписей в режиме «На расстоянии от центроида».

../../_images/labels_demo-22-c.png

Рис. 3.79. Пример размещения линейных подписей в режиме «Вокруг центроида».

../../_images/labels_demo-23-per.png

Рис. 3.80. Пример размещения линейных подписей в режиме «По периметру».

../../_images/labels_demo-24-hor.png

Рис. 3.81. Пример размещения линейных подписей в режиме «Горизонтальное».

../../_images/labels_demo-25-free.png

Рис. 3.82. Пример размещения линейных подписей в режиме «Свободное».

3.8.7. Вкладка «Отрисовка»

На вкладке «Отрисовка» можно настроить алгоритм, по которому некоторые подписи скрываются, что бы не накладываться друг на друга.

../../_images/labels_settings_drawing.png

Рис. 3.83. Окно свойств подписей, вкладка «Отрисовка».

3.8.8. Перемещение подписей

Если вам нужно управлять размещением подписей, то в NextGIS QGIS это можно делать 3 способами:

  1. Простой способ: подобрать настройки в окне Свойства стиля Подписи Размещение. Имеется несколько разных алгоритмов, которые раздвигают подписи так, что бы они не загораживали друг друга.
  2. Старый способ: сделать отдельный точечный или линейный слой. Указать ему прозрачные цвета заливки и обводки, и выводить подписи из него.
  3. Рекомендуемый способ: Добавить в слой через «Калькулятор полей» 2 поля с названием lx, ly, тип - дробный, размер 10, точность 8. В настройках подписей найти свойства X, Y, связать их с этими атрибутами, в основном окне NextGIS QGIS включить «Панель подписей», включить режим редактирования слоя, двигать отдельные подписи кнопкой «Переместить подпись».