Как создать территориальный справочник, чтобы «все работало»

У карт в Prognoz Platform есть много интересных и полезных функций. Однако часть функций требует дополнительной настройки справочника территорий. В этой статье я научу вас, как сделать все правильно.

Мы уже писали о возможностях работы с картами в Prognoz Platform. И чтобы все они были доступны пользователю, необходимо «подготовить почву», а именно, настроить территориальный справочник должным образом. Я расскажу о том, какие особенности справочника территорий необходимы, чтобы обеспечить:

  • привязку элементов справочника к элементам карты;
  • автоматический выбор карты;
  • изменения карты во времени.

Как связать карту и справочники

Это самая простая, но и самая важная часть настройки. Без этой связи ваши данные на вашей карте не появятся вообще. Итак, дано: справочник территорий и карта, загруженная в платформу (если второе у вас не входит в «дано», то нужно почитать статью про работу с топоосновами). Чтобы платформа «узнала», какой элемент справочника (скажем, «Пермский край») какой области на карте соответствует, нужен атрибут-связка.

Такой атрибут должен иметь идентификатор TERRID. Собственно, наличие атрибута с таким идентификатором превращает любой справочник в территориальный. Если такого справочника в вашем кубе нет, то визуализатор «Карта» будет вам, увы, недоступен. Ну а дальше понятно, что прописанные там коды должны соответствовать кодам, которые прописаны в топооснове карты (прописываются они в атрибуте ISO). И раз уж об этом зашла речь, то область может быть не только полигоном, но и контуром территории, как на картинке ниже. Едем дальше.

Автоматический выбор карты

В репозитории Prognoz Platform можно настроить карту по умолчанию. То есть одна и та же карта будет по умолчанию использоваться во всех источниках, территориальные справочники которых не содержат нужных настроек. Это вполне удобно, если вы, например, всегда анализируете данные только по регионам России. Но если в ходе анализа вы переключаетесь между разными территориями, например, странами Азии и штатами США, то вам необходим механизм автоматического выбора карты.

Суть этого механизма в том, что карта выбирается платформой в зависимости от того, какие элементы в справочнике территорий у вас отмечены. То есть если вы отметили в справочнике Россию, США и ЮАР, то вам, скорее всего, нужна карта мира по странам. А если отметили Адыгею и Приморский край, то карта России по регионам. Это логично. Не будете же вы разыскивать Адыгею на карте мира.

Естественно, право выбора при этом остается за вами, и вы можете настроить этот процесс максимально под себя. Для этого в справочнике территорий нужно создать атрибуты TOPO_ID, TOPO_ID2, TOPO_ID3 … TOPO_IDN. Количество этих атрибутов зависит от количества уровней иерархии в карте.

Для простоты сразу поясню на примере. У меня есть справочник, в котором 4 уровня: (1) Мир, (2) Континенты, (3) Страны и (4) Округа стран.

Начнем с первого уровня, тут один элемент – сам «Мир».

  • Если я в отчете в этом измерении территорий выберу только его, то для построения карты будет использоваться объект репозитория «Карта» с ключом, который прописан в атрибуте TOPO_ID для элемента «Мир».
  • Если я отмечу «Мир» и «Азию», то из TOPO_ID2.
  • Если «Мир», «Азию» и «Россию», то из TOPO_ID3.

Как нетрудно догадаться, если выбираю «Мир», «Азию», «Россию» и «Центральный федеральный округ», то из TOPO_ID4. Аналогично для всех остальных элементов. Теперь сложнее:

  • Если я отмечу «Россию» и «Китай», то мы ищем у них общего родителя и берем карту соответствующего уровня вложенности. В нашем случае у «России» и «Китая» общий родитель «Азия», она на один уровень выше, значит, нам нужна карта из TOPO_ID2.
  • Если я отмечу «Округа РФ» и все «Округа США», то общий родитель у них «Мир», что на три уровня выше. Получается, мне нужна карта из TOPO_ID4.

Собственно, к чему это я. К тому, что определять уровень сложности и запутанности вы можете сами. А также сами можете менять логику выбора карты за счет выбора конкретных карт для разных атрибутов. Например, можете настроить справочник так, что при любой отметке в рамках «Азии» у вас всегда будет видна вся «Азия», что бы вы там не отмечали: «Адыгею» с «Приморским краем» или же «Казахстан» с «Непалом».

Небольшая ремарка: этот же механизм используется для так называемой детализации территорий. Суть: есть у нас на карте «Россия». Логично, что если я хочу увидеть ее составляющие, то я на нее два раза кликаю. При этом происходит сразу несколько вещей:

  • В справочнике отмечаются элементы, находящиеся «под» «Россией». В нашем случае это «федеральные округа».
  • Осуществляется автоматический выбор карты, точно так же, как описано выше. Можете поупражняться и угадать, из какого атрибута в этом случае будет браться карта.

И еще небольшая ремарка. Если по данному алгоритму не найдена карта в соответствующем атрибуте TOPO_IDN, то берется карта TOPO_IDN-1. И так далее.

Вся эта система описана у нас в справке, можно почитать подробности там.

Версионность карт

Дано: сегодня страна есть, а завтра она разделилась на две страны. Или сегодня Пермский край входит в один федеральный округ, а завтра в другой. Всякое бывает. И допустим, что вы хотите, чтобы при просмотре данных за сегодня карта была одна, а за завтра стала другая. Вопрос: что делать?

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

То есть у каждого элемента будет период действия. При работе с картой это будет учитываться, как в примере ниже (внимание на «СССР» и все, что из него получилось в 1991 году). И, естественно, в кубе должно быть календарное измерение, которое бы управляло измерением территорий.

Полезность: если при работе с картой, вы выбрали какую-то карту, отличную от подбираемой, автоматически, то в дальнейшем автоподбор происходить не будет. Чтобы его вернуть, нужно на ленте инструментов на вкладке «Карта» нажать соответствующую кнопку.

Читайте также

Комментарии

Подробнее о политике использования персональных данных