Построение виджета "Карта"

Как реализовать виджет “Карта”?

parent-chield справочник кодов ОКАТО и ОКТМО

Где взять коды ОКАТО, ОКТМО, регионов

Актуальный для AW справочник можно получить по ссылке выше.
Также можно воспользоваться выгрузкой классификатора, например
https://classifikators.ru/ или с любого другого ресурса. Если вы используете on-premise версию Analytic Workspace, то также есть возможность получить иерархию доступных объектов для карты и коды ОКАТО, ОКТМО из БД.

Для реализации виджета «карта» в модели необходимы коды ОКАТО или ОКТМО.
Данный тип виджета применим там, где есть информация о значениях показателей по регионам РФ.

Принцип построения данного типа виджета заключается в следующем:

  • поле модели, включенное в область группировок виджета, используется для связи данных и карты.
    Начиная с версии v.1.18 данное поле может содержать значения кодов ОКАТО, ОКТМО или кодов для субъектов РФ.
  • показателями по региону являются поля, включенные в область столбцов виджета . При это они:
    • отображаются как значения для региона при наведении на него курсора мыши;
    • могут быть использованы для условного цветового выделения данных по региону.

Настройка данных для виджета этого типа включает:

  1. Добавление поля модели в группировку, содержащего коды территориальной принадлежности субъектов (ОКАТО, ОКТМО, код субъекта) (для корректной работы фильтров виджета в информационной панели, рекомендуем в группировку добавлять только поля территориальной принадлежности) и обеспечивающего связь остальных данных с картой;
  2. Добавление полей модели для показателей по региону;
  3. Определение у полей для показателей - условий агрегации промежуточных значений;
  4. Задание правил условного цветового выделения регионов и/или районов (при наличии второго уровня группировки) на основе значений включенных показателей.

Требования к модели для карты

Рассмотрим модель, в которой есть поле с кодами ОКАТО для регионов.
Для того, чтобы реализовать виджет карта в данных потребуется:

  1. Коды, в нашем случае ОКАТО
  2. Показатели по региону, например средняя зарплата, численность населения и т.д.
Примечание

В случае, когда кодов регионов нет в исходных данных, мы можем их обогатить. Для этого достаточно при помощи LEFT JOIN (left table - исходные данные, right table - табличка с кодами регионов, можно связать по наименованию регионов).

Виджет “Карта”

После создания и загрузки модели перейдем к созданию виджета. Выбираем тип “Карта”. В группы добавляем код ОКАТО, а в агрегаты - требуемое значение показателя. В нашем случае это будет среднее максимальной зарплаты в регионе. Также добавим цветовое форматирование по агрегату.

Подробнее про настройку форматирования можно прочитать по ссылкам:
Настройка форматирования в виджетах - Документация
Пример настройки форматирования в виджетах

Как реализовать drill-down

Для проваливания на уровень округов необходимо в данных определить коды для округов и добавить этот показатель к строкам модели. Рассмотрим реализацию на примере одного региона - Архангельская область.
В первую очередь соберем модель. На этом этапе задача получить строки, где будут указаны ОКАТО региона и ОКАТО округа. Реализация задачи может отличаться от данных, поэтому не будем останавливаться на подходах, а сразу обратимся к результату. Возможный вариант модели представлен на скриншоте. Обратите внимание на поля parent_okato(ОКАТО региона) и child_okato(ОКАТО округа).

Переходим к созданию виджета. В группы добавляем последовательно OKATO по уровням, в агрегатах определим произвольный агрегат.
На карте отобразятся данные по Архангельской области(карта строится по parent_okato), если двойным кликом провалиться в регион, то карта перестроится уже по child_okato.


Для проваливания на уровни ниже, нужно также поддержать в данных модели логику: в строке должен быть ОКАТО региона(1 уровень), ОКАТО округа(2 уровень), ОКАТО муниципального образования(3 уровень) и т.д.

Пример с drill-down до 3 уровня

image



FAQ по часто возникающим проблемам при построении карты

Именования районов из официальных справочников ОКАТО не совпадают с именованиями районов в AW. Что делать?

Для построения карты необходимо использовать коды ОКАТО или ОКТМО. Необходимо реализовать маппинг по этим полям.

Добавил коды ОКАТО в группы, однако данные на карте не отобразились.

Проверьте, что коды(для регионов) представлены в следующем виде(на примере Волгоградской области):

  • ОКАТО: 18 000 000 000 (11 разрядов)
  • ОКТМО: 18 000 000 (8 разрядов)