13 | Документация

Кластеризация и смещение накладывающихся объектов

На уровне картографического проекта можно настроить кластеризацию близко расположенных объектов (группировку объектов и отображение групп в центроиде группы) и смещение накладывающихся объектов (распределение их по окружности вокруг центроида), которые будут поддерживаться при публикации проекта в CoGIS Server и добавлении такого сервиса к карте в CoGIS Portal .
Алгоритм отрисовки кластеров и распределенных по окружности объектов одинаков. Для накладывающихся объектов также формируется кластер. Для распределенных по окружности объектов также поддерживается формула размера кластера (для размера центрального символа), идентификация, аналогично идентификации кластеров. Поэтому поддерживаются одни и те же переменные.
Далее переменные расписаны в применении к кластерам.

Кластерный символ

Раскраска кластеру задается по всем правилам настройки условного знака. Маркер может быть Простой , Символьный , Растровый , SVG и составной, см. Рисунок 125 .
Рисунок 125 - Выбор маркера для кластера
Размер кластерного символа настраивается через Data defined override expression, см. Рисунок 126 .
Рисунок 126 - Настройка размера кластерного символа (1)
Для этого в контекстном меню Data defined override expression выбирается пункт Assistant, см. Рисунок 127 .
Рисунок 127 - Настройка размера кластерного символа (2)
В окне Размер символа настраивается размер.
Источник значений для расчета размера - переменная @cluster_size , которая содержит количество объектов, попавших в кластер.
Поля Values from (от) и To (до) обозначают количество объектов, которые могут попасть в кластер, см. Рисунок 128 .
Рисунок 128 - Настройка размера кластерного символа (3)
Таким образом через инструмент Assistant создается формула для расчета размера кластерного символа следующего вида:
coalesce(scale_linear(@cluster_size, 1, 4000, 4, 16), 0)
Формулу размера можно отредактировать или задать минуя Assistant , выбрав в контекстном меню Data defined override expression пункт Изменить, см. Рисунок 129 .
Рисунок 129 - Настройка размера кластерного символа (4)

Подпись кластера

Подпись количества объектов, попавших в кластер, задается в раскраске кластерного символа составным маркером, слоем Символьный маркер , см. Рисунок 130 .
Примечание: При выборе установки символики Point cluster Символьный маркер есть по умолчанию.
Рисунок 130 - Настройка подписи количества объектов в кластере
Размер символьного маркера задается по умолчанию аналогично размеру всего символа для кластера: такой же формулой, но с добавлением коэффициента:
0.5 *(coalesce(scale_linear(@cluster_size, 1, 4000, 4, 16), 0))
Дополнительная настройка подписи использует следующие параметры, см. Таблица 2 .
Таблица 2 - Параметры для дополнительной настройки подписи
Переменная
Описание
Значения
elitegis_clustering_need_to_scale_labels
масштабирование текста вместе с символом
true/false
elitegis_clustering_show_small_label
отображение мелкого текста
true/false
elitegis_clustering_need_to_round_cluster_size
Округление в подписи количества объектов в кластере (не более 4 символов)
true/false

Отрисовка исходных объектов (Renderer Settings)

Исходные объекты могут быть отрисованы следующими типами символик: Нет символов , Обычный знак , Уникальные значения , Градуированный знак и Правила .
В настройке Renderer Settings устанавливается раскраска для каждого из типов символик соответственно, как и для обычных не кластерных объектов (см. подробнее п. 5.2.10 ), см. Рисунок 131 .
Рисунок 131 - Отрисовка исходных объектов кластера

Расстояние

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

Видимость в пределах масштаба

Видимость в пределах масштаба в настройках QGIS влияет на видимость кластера.
Для настройки видимости исходных объектов используются дополнительные параметры, без указания которых, исходные объекты отображаться на карте не будут (см. Таблица 3 ).
Таблица 3 - Параметры для настройки видимости исходных объектов кластера
Переменная
Описание
elitegis_feature_min_scale
Значение минимального масштаба
elitegis_feature_max_scale
Значение максимального масштаба

Тип кластеризации

CoGIS Server поддерживает несколько алгоритмов для объединения объектов в кластер. Для выбора алгоритма используется дополнительный параметр: elitegis_clustering_clusterizer_type
Параметр может принимать следующие возможные значения: HexagonedSimple (по умолчанию), HexagonedDelaunay , Simple , Delaunay .

Символика ребра (Edge)

Для настройки символики ребра используется дополнительный слой (временный слой в QGIS) (см. Рисунок 132 ).
Рисунок 132 - Новый временный слой для ребер кластера
Тип геометрии временного слоя должен быть LineString (см. Рисунок 133 ).
Рисунок 133 - Тип геометрии для временного слоя с ребрами кластера
Расположить созданный временный слой необходимо непосредственно ниже основного кластерного слоя (см. Рисунок 134 ).
Рисунок 134 - Расположение слоя ребер кластера в дереве слоев проекта
В свойствах слоя во вкладке Переменные необходимо указать параметр elitegis_clustering_layer_type со значением edge (см. Рисунок 135 )
Рисунок 135 - Переменная для создания ребер кластера
Также необходимо настроить стиль (раскраску) ребра.
Возможно задать видимость в пределах масштаба для слоя. Если видимость в пределах масштаба не задана, это свойство берется от основного кластерного слоя.

Круговые диаграммы для кластера (Chart-диаграммы)

С помощью дополнительных слоев и параметров можно задать отображение кластера объектов в виде круговой диаграммы, динамически изменяющейся в зависимости от типов объектов, входящих в кластер. Пример такого отображения представлен на рисунке ниже, см. Рисунок 136 .
Рисунок 136 - Кластера рекламных конструкций на территории г. Новосибирска: каждый кластер представляет собой круговую диаграмму по распределению типов конструкций в кластере
Для настройки круговых диаграмм используются дополнительные постоянные слои.
Для создания такого слоя (настроечного слоя) можно дублировать основной кластерный слой, см. Рисунок 137 .
Рисунок 137 - Дублирование основного кластерного слоя для создания круговой диаграммы
При таком способе создания в настроечном слое сразу сохраняется необходимый источник данных и формула размера кластера.
Так же возможно добавить такой слой заново, воссоздав все настройки вручную.
Расположить настроечный слой необходимо под основным кластерным слоем.
В случае наличия слоя для ребер расположение должно быть следующее, см. Рисунок 138 .
Рисунок 138 - Расположение настроечного слоя для круговых диаграмм относительно основного кластерного слоя и слоя ребер
В свойствах настроечного слоя во вкладке Переменные необходимо указать свойство: elitegis_clustering_layer_type со значением pie (см. Рисунок 139 ).
Рисунок 139 - Переменная для формирования диаграмм
Примечание: таким образом указывается, что данный слой будет восприниматься CoGIS Server как настроечный и публиковаться в сервисе не будет.
Порядок отрисовки символов в кластере (может быть много уровней) представлен на рисунке ниже (см. Рисунок 140 ).
Рисунок 140 - Порядок отрисовки символов в кластере

Раскраска сегментов (pies) в круговой диаграмме

Для настройки раскраски сегментов круговой диаграммы нужно убедиться, что в свойствах слоя в разделе Стиль указан тип символики Point cluster .
Далее в настройках Cluster symbol настраивается символ и размер диаграммы.
Для символа должно быть указано значение Простой маркер (символьный маркер необходимо удалить, в случае если он остался при дублировании исходного слоя).
Размер задаётся аналогичной формулой, как и в исходном слое, с добавлением коэффициента больше на единицу, для того чтобы круговая диаграмма была больше центрального символа, см. Рисунок 141 .
Рисунок 141 - Настройка символа для круговой диаграммы
Таким образом создается формула для расчета размера кластерного символа следующего вида:
1.3 *(coalesce(scale_linear(@cluster_size, 1, 4000, 4, 16), 0))
Для раскраски сегментов диаграммы используется тип отрисовки Уникальные значения . Каждому значению задается свой символ, из которого берется цвет сегмента для этого значения в круговой диаграмме, см. Рисунок 142 .
Рисунок 142 - Настройка цветов для сегментов круговой диаграммы на основе уникальных значений
Для определения значений для каждого сегмента также возможно использовать SQL-выражение. Это, например, позволяет объединить категории, см. Рисунок 143 .
Рисунок 143 - Настройка цветов для сегментов круговой диаграммы с помощью SQL-выражений
Видимость в пределах масштаба для каждого элемента по умолчанию берется из основного слоя. Но её так же можно задать и отдельно для каждого уровня круговой диаграммы.

Круговая диаграмма для одиночного кластера

Символика для отображения круговой диаграммы для одиночного кластера (объекта, который не попал ни в один кластер) задается через параметр elitegis_clustering_single_feature_draw_mode .
Параметр может принимать следующие значения:
  • Simple - используется символ из раскраски исходных объектов без «подсветки»;
  • Cluster - используется символ как у кластера с подписью «1» и подсветкой из chart-диаграммы;
  • Simplechart - используется символ из раскраски исходных объектов и подсветкой из круговой диаграммы.

Группировка кластеров по атрибуту

CoGIS Server поддерживает возможность группировать кластеры по значению из определенного поля, то есть не объединять объекты в один кластер, если у них разный атрибут.
Задается через параметр:
elitegis_clustering_group_by: <Имя поля>
Для группировки по масштабу существует возможность задать диапазон масштабов, в котором применяется группировка.
Параметры: elitegis_clustering_group_min_scale и elitegis_clustering_group_max_scale.

Размер кластера по сумме значений из числового поля

По умолчанию размер кластера и значение в подписи зависят от количества объектов, попавших в кластер. Существует возможность задавать размер кластера на основе суммы значений из указанного поля всех объектов, попавших в кластер, и выводить это значение в подпись кластера.
Задается через параметр со значением имени поля, из которого берется значение для определения размера кластера:
elitegis_clustering_value_expression: <Имя поля>

Настройка идентификации кластера

Возможность настроить результат идентификации кластера задается через параметр elitegis_clustering_identify_mode со следующими значениями:
  • features - выдается список все объектов попавших в кластер;
  • cluster - выдается информация о кластере с экстентом для приближения;
  • mixed (по умолчанию) - смешанный.
    Для смешанного типа идентификации можно настроить дополнительные параметры:
    • elitegis_clustering_identify_features_min_scale - самый мелкий масштаб, при котором при идентификации будет выдаваться список объектов, попавших в кластер, по умолчанию 0 (т. е. всегда будет выдан экстент)
    • elitegis_clustering_identify_features_max_count - максимальное количество объектов в кластере, чтобы возвращать список объектов, а не экстент всех объектов, попавших в кластер, по умолчанию 1.