Как реализовать виджет “Карта”?
parent-chield справочник кодов ОКАТО и ОКТМО
Где взять коды ОКАТО, ОКТМО, регионов
Актуальный для AW справочник можно получить по ссылке выше.
Также можно воспользоваться выгрузкой классификатора, например
https://classifikators.ru/ или с любого другого ресурса. Если вы используете on-premise версию Analytic Workspace, то также есть возможность получить иерархию доступных объектов для карты и коды ОКАТО, ОКТМО из БД.
Для реализации виджета «карта» в модели необходимы коды ОКАТО или ОКТМО.
Данный тип виджета применим там, где есть информация о значениях показателей по регионам РФ.
Принцип построения данного типа виджета заключается в следующем:
- поле модели, включенное в область группировок виджета, используется для связи данных и карты.
Начиная с версии v.1.18 данное поле может содержать значения кодов ОКАТО, ОКТМО или кодов для субъектов РФ. - показателями по региону являются поля, включенные в область столбцов виджета . При это они:
- отображаются как значения для региона при наведении на него курсора мыши;
- могут быть использованы для условного цветового выделения данных по региону.
Настройка данных для виджета этого типа включает:
- Добавление поля модели в группировку, содержащего коды территориальной принадлежности субъектов (ОКАТО, ОКТМО, код субъекта) (для корректной работы фильтров виджета в информационной панели, рекомендуем в группировку добавлять только поля территориальной принадлежности) и обеспечивающего связь остальных данных с картой;
- Добавление полей модели для показателей по региону;
- Определение у полей для показателей - условий агрегации промежуточных значений;
- Задание правил условного цветового выделения регионов и/или районов (при наличии второго уровня группировки) на основе значений включенных показателей.
Требования к модели для карты
Рассмотрим модель, в которой есть поле с кодами ОКАТО для регионов.
Для того, чтобы реализовать виджет карта в данных потребуется:
- Коды, в нашем случае ОКАТО
- Показатели по региону, например средняя зарплата, численность населения и т.д.
Примечание
В случае, когда кодов регионов нет в исходных данных, мы можем их обогатить. Для этого достаточно при помощи LEFT JOIN (left table - исходные данные, right table - табличка с кодами регионов, можно связать по наименованию регионов).
Виджет “Карта”
После создания и загрузки модели перейдем к созданию виджета. Выбираем тип “Карта”. В группы добавляем код ОКАТО, а в агрегаты - требуемое значение показателя. В нашем случае это будет среднее максимальной зарплаты в регионе. Также добавим цветовое форматирование по агрегату.
Подробнее про настройку форматирования можно прочитать по ссылкам:
Настройка форматирования в виджетах - Документация
Пример настройки форматирования в виджетах
Как реализовать drill-down
Для проваливания на уровень округов необходимо в данных определить коды для округов и добавить этот показатель к строкам модели. Рассмотрим реализацию на примере одного региона - Архангельская область.
В первую очередь соберем модель. На этом этапе задача получить строки, где будут указаны ОКАТО региона и ОКАТО округа. Реализация задачи может отличаться от данных, поэтому не будем останавливаться на подходах, а сразу обратимся к результату. Возможный вариант модели представлен на скриншоте. Обратите внимание на поля parent_okato(ОКАТО региона) и child_okato(ОКАТО округа).
Переходим к созданию виджета. В группы добавляем последовательно OKATO по уровням, в агрегатах определим произвольный агрегат.
На карте отобразятся данные по Архангельской области(карта строится по parent_okato), если двойным кликом провалиться в регион, то карта перестроится уже по child_okato.
Для проваливания на уровни ниже, нужно также поддержать в данных модели логику: в строке должен быть ОКАТО региона(1 уровень), ОКАТО округа(2 уровень), ОКАТО муниципального образования(3 уровень) и т.д.
FAQ по часто возникающим проблемам при построении карты
Именования районов из официальных справочников ОКАТО не совпадают с именованиями районов в AW. Что делать?
Для построения карты необходимо использовать коды ОКАТО или ОКТМО. Необходимо реализовать маппинг по этим полям.
Добавил коды ОКАТО в группы, однако данные на карте не отобразились.
Проверьте, что коды(для регионов) представлены в следующем виде(на примере Волгоградской области):
- ОКАТО: 18 000 000 000 (11 разрядов)
- ОКТМО: 18 000 000 (8 разрядов)