Контакты
Блог о картографии и геоинформационных системах
Расширение ORBISmap для Qlik Sense
В федеральной информационной системе возникла задача объединить информацию из нескольких источников в единое хранилище данных для последующего анализа.

Для работы с большими данными была выбрана платформа бизнес-анализа Qlik Sense.

Так как данные содержали геопривязку к местности, понадобились не только возможности BI системы, но и геоинформационного анализа.

Существующие гео-расширения для Qlik Sense не позволяли решить поставленные задачи из-за ограничений по функциональности и возможностям развития, поэтому нами было создано картографическое расширение на базе геоинформационной системы ORBISmap, которое позволило расширить возможности визуализации этой аналитической платформы.

Что такое Qlik Sense?
Qlik Sense — приложение для визуализации и исследования данных.

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

Подробнее о Qlik Sense можно узнать на странице продукта.

Возможности расширения ORBISmap
Qlik Sense и ORBISmap связаны таким образом, чтобы выбор данных в одном месте незамедлительно отражался в другом. Для этого все реализованные на базе геоинформационной системы функции были интегрированы в аналитическую подсистему. Это позволяет пользователю видеть изменения на карте, применяя фильтры к данным в Qlik Sense, и наоборот — фильтровать данные на уровне аналитической подсистемы, выбирая на карте объекты, наборы точек или полигонов.

В расширении ORBISmap реализован широкий выбор типов визуализаций данных:

  • Точки на карте
  • Тематическая карта (заливка полигональных объектов различными цветами)
  • Пузырьковые диаграмма
  • Карта перемещений (стрелки)
  • Круговые диаграммы
  • Гистограммы
  • Линейные диаграммы
  • Анимированные потоки
ORBISmap позволяет комфортно работать с большим количеством геоданных и одновременно выводить на карту более 10 000 объектов.

Помимо предустановленных в ORBISmap подложек можно использовать свою картографию для лучшей детализации и визуализации данных.

Технические подробности
Картографическое расширение для Qlik Sense было создано с помощью ORBISmap JS API.

Принцип интеграции
В Qlik Sense мы создали два типа расширений: первый — для управления геоданными (компонент управления геоданными карты), второй — для отображения итогового результата в интерактивной карте (компонент карты). В одном приложении Qlik Sense может быть несколько расширений.

Компонент управления геоданными карты получает данные из Qlik Sense и управляют их выборкой. Компонент карты получает подготовленные данные из компонента управления геоданными карты, запрашивает геопривязку данных из системы ORBISmap и отображает полученные визуализации.

Компонент управления геоданными карты
В Qlik Sense все расширения должны быть визуально представлены пользователю. Визуальное отображение компонента управления геоданными карты представляет собой небольшую прямоугольную область с базовыми элементами управления отображением картографического слоя. Например, компонент, с помощью которого можно временно выключить отображение картографического слоя на карте, может выглядеть так

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


Панель настроек компонента управления геоданными карты
Компоненты управления геоданными карты действуют по одному принципу:

  • получают данные из гиперкуба Qlik Sense,
  • определяют карту, с которой взаимодействовать (ранее выбранная пользователем в настройке слоя, либо первая на текущем листе),
  • при наличии связанной карты передают в нее данные для отображения и настройки картографического слоя,
  • создают собственное визуальное отображение на листе приложения.

Компонент карты
Компонент карты базируется на ORBISmap JS API — инструменте, позволяющем построить интерактивную карту по данным пользователя и геопространственным данным, хранящимся в системе ORBISmap.

С помощью компонента карты производятся все взаимодействия с данными: просмотр информации об объектах, выборки данных слоя для отображения связанных данных других картографических слоев (несвязанные данные скрываются), смена базовой карты (подложки), инструменты измерения расстояний и другие.
    Компонент карты
    Компонент карты имеет минимальный набор настроек — позволяет указать базовую карту, стартовую позицию карты, режим отображения (2D, 3D) и масштаб геометрии объектов.

    При разработке компонента карты мы столкнулись со следующей особенностью — любые расширения в приложении Qlik Sense обновляются (перерисовываются) при каждом изменении выборки данных или размеров страницы браузера. Плюс данной функции в том, что компонент карты всегда получает актуальные данные для отображения. Минус в том, что перерисовку карты может вызвать даже один из нескольких связанных слоев, а это влечет за собой дополнительные нагрузки на браузер пользователя и производительность карты.

    Поэтому появилась необходимость отслеживать актуальное состояние уже отображенных данных для предотвращения перерисовки слоев, в которые не вносились изменения. Картографический слой понимает, были ли внесены изменения в уже отображенные данные, и принимает решение о необходимости перерисовки.

    Геопривязка в ORBISmap
    Значительная часть пользовательских данных содержала названия объектов, которые различались в зависимости от набора данных, например, Россия, РФ, Российская Федерация, МО, Московская обл., и так далее.

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

    При необходимости отобразить площадные объекты, компонент карты получает эти данные при помощи ORBISmap JS API.

    Заключение
    Нам было интересно создать расширение для сторонней системы и поучаствовать в проекте с большими данными. Платформа Qlik Sense взяла на себя агрегирование и фильтрацию разнородных данных, а разработанное на базе функционала геоинформационной платформы ORBISmap расширение позволило визуализировать эти данные с привязкой к местности.При создании расширений на базе ORBISmap для Qlik Sense широко использовались имеющиеся в системе инструменты для разработчиков — интерфейсы прикладного программирования (API). Наличие подобных инструментов (серверных и клиентских) позволяет интегрировать функционал работы ORBISmap с геопространственными и аналитическими данными практически в любые сторонние web-системы.

    Подробнее с API ORBISmap можно ознакомиться в разделе документации.