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

Кластеризация

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

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

Раскраска кластеру задается по всем правилам настройки условного знака. Маркер может быть Простой , Символьный , Растровый , SVG и составной, см. Рисунок 104 .

Рисунок 104 – Выбор маркера для кластера

Размер кластерного символа настраивается через Data defined override expression, см. Рисунок 105 .

Рисунок 105 – Настройка размера кластерного символа (1)

Для этого в контекстном меню Data defined override expression выбирается пункт Assistant, см. Рисунок 106 .

Рисунок 106 – Настройка размера кластерного символа (2)

В окне Размер символа настраивается размер.

Источник значений для расчета размера – переменная @cluster_size , которая содержит количество объектов, попавших в кластер.

Поля Values from (от) и To (до) обозначают количество объектов, которые могут попасть в кластер, см. Рисунок 107 .

Рисунок 107 – Настройка размера кластерного символа (3)

Таким образом через инструмент Assistant создается формула для расчета размера кластерного символа следующего вида:

coalesce(scale_linear(@cluster_size, 1, 4000, 4, 16), 0)

Формулу размера можно отредактировать или задать минуя Assistant , выбрав в контекстном меню Data defined override expression пункт Изменить, см. Рисунок 108 .

Рисунок 108 – Настройка размера кластерного символа (4)

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

Подпись количества объектов, попавших в кластер, задается в раскраске кластерного символа составным маркером, слоем Символьный маркер , см. Рисунок 109 .

Примечание: При выборе установки символики Point cluster Символьный маркер есть по умолчанию.

Рисунок 109 – Настройка подписи количества объектов в кластере

Размер символьного маркера задается по умолчанию аналогично размеру всего символа для кластера: такой же формулой, но с добавлением коэффициента:

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.9 ), см. Рисунок 110 .

Рисунок 110 – Отрисовка исходных объектов кластера

Расстояние

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

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

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

Видимость в пределах масштаба в настройках QGIS влияет на видимость кластера.

Для настройки видимости исходных объектов используются дополнительные параметры,без указания которых, исходные объекты отображаться на карте не будут. см. Таблица 3.

Таблица 3 – Параметры для настройки видимости исходных объектов кластера

Переменная Описание
elitegis_feature_min_scale Значение минимального масштаба
elitegis_feature_max_scale Значение максимального масштаба

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

CoGIS Server поддерживает несколько алгоритмов для объединения объектов в кластер. Для выбора алгоритма используется дополнительный параметр: elitegis_clustering_clusterizer_type

Параметр может принимать следующие возможные значения: HexagonedSimple (по умолчанию), HexagonedDelaunay , Simple , Delaunay .

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

Для настройки символики ребра используется дополнительный слой (временный слой в QGIS), см. Рисунок 111 .

Рисунок 111 – Новый временный слой для ребер кластера

Тип геометрии временного слоя должен быть LineString , см. Рисунок 112 .

Рисунок 112 – Тип геометрии для временного слоя с ребрами кластера

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

Рисунок 113 – Расположение слоя ребер кластера в дереве слоев проекта

В свойствах слоя во вкладке Переменные необходимо указать параметр elitegis_clustering_layer_type со значением edge :

Также необходимо настроить стиль (раскраску) ребра.

Возможно задать видимость в пределах масштаба для слоя. Если видимость в пределах масштаба не задана, это свойство берется от основного кластерного слоя.

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

С помощью дополнительных слоев и параметров можно задать отображение кластера объектов в виде круговой диаграммы, динамически изменяющейся в зависимости от типов объектов, входящих в кластер. Пример такого отображения представлен на рисунке ниже, см. Рисунок 114 .

Рисунок 114 – Кластера рекламных конструкций на территории г. Новосибирска: каждый кластер представляет собой круговую диаграмму по распределению типов конструкций в кластере

Для настройки круговых диаграмм используются дополнительные постоянные слои.

Для создания такого слоя (настроечного слоя) можно дублировать основной кластерный слой, см. Рисунок 115 .

Рисунок 115 – Дублирование основного кластерного слоя для создания круговой диаграммы

При таком способе создания в настроечном слое сразу сохраняется необходимый источник данных и формула размера кластера.

Так же возможно добавить такой слой заново, воссоздав все настройки вручную.

Расположить настроечный слой необходимо под основным кластерным слоем.

В случае наличия слоя для ребер, расположение должно быть следующее, см. Рисунок 116 .

Рисунок 116 – Расположение настроечного слоя для круговых диаграмм относительно основного кластерного слоя и слоя ребер

В свойствах настроечного слоя во вкладке Переменные необходимо указать свойство: elitegis_clustering_layer_type со значением pie : .

Примечание: Таким образом указывается, что данный слой будет восприниматься CoGIS Server как настроечный и публиковаться в сервисе не будет.

Порядок отрисовки символов в кластере (может быть много уровней) представлен на рисунке ниже, см. Рисунок 117 .

Рисунок 117 – Порядок отрисовки символов в кластере

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

Для настройки раскраски сегментов круговой диаграммы нужно убедиться, что в свойствах слоя в разделе Стиль указан тип символики Point cluster .

Далее в настройках Cluster symbol настраивается символ и размер диаграммы.

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

Размер задаётся аналогичной формулой, как и в исходном слое, с добавлением коэффициента больше на единицу, для того чтобы круговая диаграмма была больше центрального символа, см. Рисунок 118 .

Рисунок 118 – Настройка символа для круговой диаграммы

Таким образом создается формула для расчета размера кластерного символа следующего вида:

1.3 *(coalesce(scale_linear(@cluster_size, 1, 4000, 4, 16), 0))

Для раскраски сегментов диаграммы используется тип отрисовки Уникальные значения . Каждому значению задается свой символ, из которого берется цвет сегмента для этого значения в круговой диаграмме, см. Рисунок 119 .

Рисунок 119 – Настройка цветов для сегментов круговой диаграммы на основе уникальных значений

Для определения значений для каждого сегмента также возможно использовать SQL-выражение. Это, например, позволяет объединить категории, см. Рисунок 120 .

Рисунок 120 – Настройка цветов для сегментов круговой диаграммы с помощью 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