Важно
Translation is a community effort you can join. This page is currently translated at 60.98%.
2.4. Lesson: Symbology
Слой символа - это его внешний вид на карте. Основное преимущество GIS перед другими способами представления данных с пространственными аспектами заключается в том, что с помощью GIS у вас есть динамическое визуальное представление данных, с которыми вы работаете.
Поэтому внешний вид карты (который зависит от символики отдельных слоев) очень важен. Конечный пользователь создаваемых вами карт должен иметь возможность легко увидеть, что представляет собой карта. Не менее важно, чтобы вы могли изучать данные во время работы с ними, а хорошая символика очень помогает.
Другими словами, иметь правильную символику - это не роскошь и не просто хорошо, что она есть. Фактически, для вас очень важно правильно использовать GIS и создавать карты и информацию, которые люди смогут использовать.
Цель данного занятия: иметь возможность создавать любую символику для любого векторного слоя.
2.4.1. ★☆☆ Follow Along: Changing Colors
To change a layer’s symbology, open its Layer Properties. Let’s
begin by changing the color of the landuse
layer.
Right-click on the
landuse
layer in the layers list.В открывшемся меню выберите пункт Свойства… / Properties….
Примечание
Вы также можете получить доступ к свойствам слоя по умолчанию, дважды кликнув на слой в списке Слоев.
Выберите, вкладку Символика Symbology tab: в окошке Свойства слоя Layer Properties.
Кликните на кнопку выбора цвета рядом с ярлыком Color. Появится стандартное диалоговое окно цвета.
Выберите серый цвет и нажмите OK.
Еще раз нажмите OK в окне Свойства слоя Layer Properties, и вы увидите, что изменение цвета применяется к слою.
2.4.2. ★☆☆ Try Yourself:
Change the color of the water
layer to light blue. Try to use the
Layer Styling panel instead of the Layer Properties menu.
Solution
Verify that the colors are changing as you expect them to change.
It is enough to select the
water
layer in the legend and then click on the Open the Layer Styling panel button. Change the color to one that fits the water layer.
If you want to work on only one layer at a time and don’t want the other layers to distract you, you can hide a layer by clicking in the checkbox next to its name in the layers list. If the box is blank, then the layer is hidden.
2.4.3. ★☆☆ Follow Along: Changing Symbol Structure
Пока что все неплохо, но слой символа - это не только его цвет. Далее мы хотим удалить линии между различными местностями землепользования, чтобы сделать карту менее загроможденной визуально.
Open the Layer Properties window for the
landuse
layer.Под вкладкой Symbology, вы увидите похожее диалоговое окно, которое вы видели ранее. Однако, на этот раз вы делаете больше, чем просто быстро меняете цвет.
В слоях символа откройте раскрывающийся список Заливка Fill и выберите параметр Простая заливка Simple fill.
Кликните раскрывающийся список Стиль обводки Stroke style. На данный момент он должен показывать короткую линию и слова Сплошная линия Solid Line.
Change this to No Line.
Кликните OK.
Now the landuse
layer won’t have any lines between areas.
2.4.4. ★☆☆ Try Yourself:
Change the
water
layer’s symbology again so that it has a darker blue outline.Change the
rivers
layer’s symbology to a sensible representation of waterways.
Помните: вы можете использовать кнопку Открыть панель стилей слоя Open the Layer Styling panel и увидеть все изменения сразу. Данная панель также позволяет вам отменять отдельные изменения при использовании символизирования слоя.
Answer
Your map should now look like this:
If you are a Beginner-level user, you may stop here.
Use the method above to change the colors and styles for all the remaining layers.
Try using natural colors for the objects. For example, a road should not be red or blue, but can be gray or black.
Also feel free to experiment with different Fill style and Stroke style settings for the polygons.
2.4.5. ★★☆ Follow Along: Scale-Based Visibility
Вы обнаружите, что иногда слой не будет подходить для данного масштаба. Например, набор данных по всем континентам может иметь скудную детализацию и быть не очень точным на уровне улиц. Когда такое произойдет, вы захотите иметь возможность скрыть набор данных несоответствующих масштабов.
В нашем случае мы можем решить скрыть здания от просмотра в небольших масштабах. Например, эта карта…
… не очень удобная. Здания трудно различить в таком масштабе.
Чтобы запустить визуализацию на основе масштаба:
Open the Layer Properties dialog for the
buildings
layer.Активируйте вкладку Rendering.
Запустите визуализацию на основе масштаба, кликнув на флажок под названием Видимость в зависимости от масштаба Scale dependent visibility:
Измените минимальное значение Minimum на
1:10000
.Кликните OK.
Test the effects of this by zooming in and out in your map, noting when the
buildings
layer disappears and reappears.
2.4.6. ★★☆ Follow Along: Adding Symbol Layers
Теперь, когда вы знаете, как изменить простую символику слоев, следующим шагом будет создание более сложной символики. QGIS позволяет делать это с помощью слоев символа.
Go back to the
landuse
layer’s symbol properties panel (by clicking Simple fill in the symbol layers tree).In this example, the current symbol has no outline (i.e., it uses the No Line border style).
Выберите Fill на дереве и кликните на кнопку Добавить слой символа Add symbol layer. Диалоговое окно изменится с добавлением нового слоя символа, и будет выглядеть примерно так:
Например, оно может выглядеть несколько иначе по цвету, но вы все равно это измените.
Теперь есть второй слой символа. Поскольку здесь сплошной цвет, он, конечно же, полностью скроет предыдущий вид символа. Кроме того, у него есть стиль границы Сплошная линия Solid Line, который нам не нужен. Очевидно, что данный символ необходимо изменить.
Примечание
Важно не путать слой карты и слой символа. Слой карты - это вектор (или растр), загруженный на карту. Слой символа - это часть символа, используемого для представления слоя карты. В данном курсе обучения слой карты обычно называется просто слоем, но слой символа всегда будет называться слоем символа, чтобы избежать путаницы.
Выбрав новый слой символа Простая заливка Simple Fill:
Set the border style to No Line, as before.
Измените стиль заливки на любой, кроме Сплошная Solid или Без кисти No brush. Например:
Кликните OK.
Теперь вы можете видеть свои результаты и при необходимости поправлять их. Вы даже можете добавить несколько дополнительных слоев символов и таким образом создать своего рода текстуру для своего слоя.
Это весело! Но, вероятно, слишком много цветов, чтобы применять к реальной карте…
2.4.7. ★★☆ Try Yourself:
Remembering to zoom in if necessary, create a simple, but not distracting
texture for the buildings
layer using the methods above.
Answer
Customize your buildings
layer as you like, but remember that it
has to be easy to tell different layers apart on the map.
Here’s an example:
2.4.8. ★★☆ Follow Along: Ordering Symbol Levels
В случае, когда визуализируются слои символов, они также отображаются в последовательности, аналогично тому, как визуализируются различные слои карты. Это означает, что в некоторых случаях наличие множества слоев символов в одном символе может привести к неожиданным результатам.
Give the
roads
layer an extra symbol layer (using the method for adding symbol layers demonstrated above).Задайте для базовой линии Ширину штриха Stroke width of
1.5
и черный цвет.Задайте новому верхнему слою толщину
0.8
и белый цвет.
Вы заметите, следующее:
Что ж, дороги теперь имеют символику, похожую на улицу, но вы видите, что линии перекрывают друг друга на каждом перекрестке. Это совсем не то, что мы хотим!
Чтобы подобного не происходило, вы можете отсортировать уровни символов и, таким образом, управлять порядком, в котором отображаются различные слои символов.
Чтобы изменить порядок слоев символов:
Выберите самый верхний слой Линия Line на дереве слоев символов.
Кликните
в правом нижнем углу окна.Это откроет диалоговое окно:
Проверьте Включены ли уровни символа Enable symbol levels. Затем вы можете установить порядок слоев каждого символа, введя соответствующий номер уровня. Ноль (0) - нижний слой.
В нашем случае, мы просто хотим активировать следующую опцию:
Это отобразит белую линию над границами толстой черной линии:
Дважды кликните OK, чтобы вернуться к карте.
Карта теперь будет выглядеть так:
Когда вы закончите, не забудьте сохранить сам символ, чтобы не потерять работу, если вы снова будете менять символ. Вы можете сохранить текущий стиль символа, нажав кнопку Сохранить стиль… Save Style… в нижней части диалогового окна Свойства слоя Layer Properties. Мы будем применять формат QGIS QML Style File.
Сохраните свой стиль в папке solution/styles/better_roads.qml
. Вы можете загрузить ранее сохраненный стиль в любое время, кликнув на кнопку Load Style…. Прежде чем менять стиль, имейте в виду, что любой несохраненный стиль, который вы меняете, будет утерян.
2.4.9. ★★☆ Try Yourself:
Change the appearance of the roads
layer again.
Сделайте дороги узкими и желтыми, с тонким бледно-серым контуром и тонкой черной линией посередине. Помните, что вам может потребоваться изменить порядок слоев визуализации в диалоговом окне
.Answer
To make the required symbol, you need three symbol layers:
The lowest symbol layer is a broad, solid gray line. On top of it there is a slightly thinner solid yellow line and finally another thinner solid black line.
If your symbol layers resemble the above but you’re not getting the result you want:
Check that your symbol levels look something like this:
Now your map should look like this:
2.4.10. ★★★ Try Yourself:
Уровни символов также работают для классифицированных слоев (т.е. слоев, содержащих несколько символов). Поскольку мы еще не рассмотрели классификацию, вы будете работать с некоторыми элементарными предварительно классифицированными данными.
Create a new project and add only the
roads
dataset.Apply the style file
advanced_levels_demo.qml
provided inexercise_data/styles
to the layer. This can be done through the combobox at the bottom of the Layer Properties dialog.Приблизите местность города СвеллендамSwellendam Swellendam.
Используя слои символов, убедитесь, что контуры слоев переходят друг в друга, как показано на изображении ниже:
Answer
Adjust your symbol levels to these values:
Experiment with different values to get different results.
Open your original map again before continuing with the next exercise.
2.4.11. ★★☆ Follow Along: Symbol layer types
Помимо установки цветов заливки и использования предустановленных шаблонов, вы можете использовать абсолютно различные типы слоев символов. До сих пор мы использовали только тип Простой заливки Simple Fill. Более продвинутые типы слоев символов позволяют еще больше настраивать символы под вас.
Каждый тип вектора (точка, линия и полигон) имеет свой собственный набор типов слоев символов. Сначала мы рассмотрим типы, которые существуют для точек.
Типы Точечных слоев символа
Uncheck all the layers except for
places
.Change the symbol properties for the
places
layer:Вы можете получить доступ к различным типам слоев символов, выбрав слой Простой маркер Simple marker на дереве слоев символов, а затем кликните на раскрывающееся меню Symbol layer type:
Изучите различные доступные вам варианты и выберите символ со стилем, который вы считаете подходящим.
В случае сомнений используйте круглый Простой маркер Simple marker с белой рамкой и бледно-зеленой заливкой, с размером Size в
3.00
и шириной штриха Stroke width в0.5
.
Типы слоев линейных символов
Чтобы увидеть различные параметры, доступные для линейных данных необходимо:
Change the Symbol layer type for the
roads
layer’s topmost symbol layer to Marker line:Выбрать слой Simple marker на дереве слоев символа. Измените свойства символа в соответствии с данным диалоговым окном:
Выбрать слой Marker line и изменить интервал на
1.00
:Убедиться, что уровни символа указаны верно (при помощи диалогового окна
, которые мы использовали ранее) пред тем, как задать стиль.
После того, как вы задали стиль, проверьте ваши результаты на карте. Как видите, эти символы меняют направление вместе с дорогой, но не всегда изгибаются вместе с ней. Это удобно для некоторых целей, но не для всех. При желании вы можете изменить слой символа, о котором идет речь, на тот, который был ранее.
Типы слоев символа полигона
Чтобы увидеть различные параметры, доступные для данных полигона необходимо:
Change the Symbol layer type for the
water
layer, as before for the other layers.Изучить, что могут сделать различные варианты в списке.
Выбрать один из вариантов, который вам подходит.
Если вы сомневаетесь, то можно применить Заливку точечным узором Point pattern fill, со следующими параметрами:
Добавить новый слой символа с обычным режимом Простой заливки Simple fill.
Сделать его таким же светло-голубым с темно-синей рамкой.
Переместить его под слой символа Заливка точечным узором с помощью кнопки Переместить вниз Move down:
В результате у вас есть текстурированный символ для слоя воды с дополнительным преимуществом, заключающимся в том, что вы можете изменять размер, форму и расстояние до отдельных точек, составляющих текстуру.
2.4.12. ★★☆ Try Yourself:
Apply a green transparent fill color to the protected_areas
layer,
and change the outline to look like this:
Answer
Here are examples of the symbol structure:
2.4.13. ★★★ Follow Along: Geometry generator symbology
Вы можете использовать символику генератора геометрии со всеми типами слоев (точки, линии и полигоны). Полученный символ напрямую зависит от типа слоя.
Вкратце, символика генератора геометрии позволяет выполнять некоторые пространственные операции внутри самих символов. Например, вы можете запустить реальную центроидную пространственную операцию на слое полигона, не создавая точечный слой.
Более того, у вас есть все возможности стилизации для изменения внешнего вида получившегося символа.
Давайте попробуем!
Select the
water
layer.Кликните по Simple fill и измените Symbol layer type на Geometry generator.
Перед тем, как приступить к написанию пространственного запроса, мы должны выбрать Тип геометрии на выходе, в результатах. В этом примере мы собираемся создать центроиды для каждого объекта, поэтому измените Тип геометрии на Point / Multipoint.
Теперь давайте напишем запрос на панели запросов:
centroid($geometry)
When you click on OK you will see that the
water
layer is rendered as a point layer! We have just run a spatial operation within the layer symbology itself, isn’t that amazing?
Благодаря символике генератора геометрии вы действительно можете выйти за рамки обычной символики.
★★★ Try Yourself:
Генератор геометрии - это еще один уровень символа. Попробуйте добавить еще один Simple fill под Geometry generator.
Измените также внешний вид Простого маркера символики Генератора геометрии.
Окончательный результат должен выглядеть следующим образом:
2.4.14. ★★★ Follow Along: Creating a Custom SVG Fill
Примечание
Для выполнения данного упражнения вам потребуется установить бесплатную программу для редактирования векторных изображений `Inkscape `_.
Запустите программу Inkscape. Вы увидите следующий интерфейс:
Вам это должно быть знакомо, если вы использовали другие программы для редактирования векторных изображений, такие как Corel.
Сначала мы изменим размер полотна карты на размер, подходящий для небольшой текстуры.
Кликните на элемент меню Document Properties.
. Откроется диалоговое окноИзмените Единицы Units на Пиксели px.
Измените Ширину Width и Высоту Height на
100
.Закройте диалоговое окно по завершении.
Кликните на элемент меню
, чтобы просмотреть страницу, с которой вы работаете.Выберите инструмент Круг Circle:
Кликните и тащите по странице, чтобы нарисовать эллипс. Чтобы превратить эллипс в круг удерживайте кнопку Ctrl, чтобы эллипс превратился в круг, пока вы его рисуете.
Кликните правой кнопкой мыши на только что созданный круг и откройте его параметры Заливка и Обводка Fill and Stroke. Вы можете изменить его визуализацию, например:
Изменить цвет Заливки :guilabel:`Fill`на бледно-серо-голубой,
Задать более темный цвет рамки на вкладке Мазки Stroke paint,
Нарисуйте линию при помощи инструмента Ручка Stroke style.
Нарисуйте линию при помощи инструмента Ручка Pencil:
Кликните один раз, чтобы начать линию. Удерживайте Ctrl чтобы сделать привязку к приращению в 15 градусов.
Переместите указатель по горизонтали и поставьте точку простым нажатием на клик.
Кликните и привяжите к вершине линии и проведите вертикальную линию, заканчивающуюся простым кликом.
Теперь соедините две конечные вершины.
Измените цвет и ширину символа треугольника, чтобы он соответствовал обводке круга, и переместите его по мере необходимости, чтобы в итоге получился следующий символ:
If the symbol you get satisfies you, then save it as
landuse_symbol
under the directory that the course is in, underexercise_data/symbols
, as SVG file.
Выполните следующее в QGIS:
Open the Layer Properties for the
landuse
layer.In the Symbology tab, change the symbol structure by changing the Symbol Layer Type to SVG Fill shown below.
Кликните кнопку … и затем Выбрать файл Select File…, чтобы выбрать картинку SVG.
Файл добавлен в дерево символов, и теперь вы можете настраивать его различные характеристики (цвета, угол, эффекты, единицы измерения …).
Once you validate the dialog, features in landuse
layer should now
be covered by a set of symbols, showing a texture like the one on the
following map. If textures are not visible, you may need to zoom in the map
canvas or set in the layer properties a bigger Texture width.
2.4.15. In Conclusion
Изменение символов для разных слоев, превратили коллекцию векторных файлов в удобочитаемую карту. Вы не только видите, что происходит, но и даже любуетесь этим!
2.4.16. Further Reading
Примеры красивых карт Examples of Beautiful Maps
2.4.17. What’s Next?
Изменение символов для целых слоев полезно, однако информация, содержащаяся в каждом слое, еще не доступна для тех, кто читает эти карты. Как называются улицы? К каким административным районам относятся определенные районы? Какова относительная площадь ферм? Вся эта информация по-прежнему скрыта. На следующем занятии мы разберем, как представить эти данные на вашей карте.
Примечание
Вы не забыли сохранить вашу карту недавно?