Перейти к основному содержимому

Qlik Sense GeoOperations

Qlik Sense GeoOperations позволяет выполнять географические расчеты и использовать функции, например расчет маршрутов или областей путешествий. Он также позволяет загружать географические данные из шейп-файлов GeoJSON и ESRI.

Недоступно в:Qlik Sense Enterprise SaaS - Government (US) не поддерживает Qlik Sense GeoOperations.

Qlik Sense GeoOperations доступен в виде решения Advanced Analytics Integration с Qlik Sense GeoAnalytics для Qlik Cloud Services.

Qlik Sense GeoOperations позволяет решать географические задачи с данными, например:

  • определение количества покупателей, проживающих в пределах 15 минут езды от места расположения магазина;
  • привязка GPS-позиций к местам проведения мероприятий, регионам или дорожным сетям;
  • создание пользовательских областей сбыта из списка муниципалитетов;
  • поиск ближайшей больницы для списка пациентов.

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

Примечание: Пример использования GeoOperations см. в разделе Пример GeoOperations.

Принципы работы GeoOperations

Qlik Sense GeoOperations работает путем отправки небольших фрагментов скрипта и при необходимости таблицы в расширение GeoOperations в скрипте загрузки. Затем расширение возвращает данные. GeoOperations делает объект Advanced Analytics Integration, называемый GeoOperations, доступным в языке скрипта, который предоставляет функцию ScriptEval для отправки скрипта и таблицы в расширение. Например, ниже приведен скрипт загрузки для применения операции TravelAreas к ранее загруженной таблице MyPoints и указания параметров для размера областей путешествий или затрат по ним:

Load * Extension GeoOperations.ScriptEval('TravelAreas(costValue="10", costUnit="Minutes")', MyPoints);

 

В качестве первого параметра в ScriptEval передается скрипт, а в качестве второго — таблица.

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

Load * Extension GeoOperations.ScriptEval('TravelAreas(costValue="10", costUnit="Minutes")

DATASOURCE myPoints INTABLE pointField="Point"', MyPoints);

 

Другие типы источников данных всегда должны быть объявлены, а параметры, такие как URL-адреса, должны быть указаны. В каждой операции можно указать используемые источники данных. По умолчанию операции используют их для выбора доступных наборов данных.

Где использовать GeoOperations

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

Выбор и переименование полей GeoOperations

Функции GeoOperations возвращают поля. По умолчанию возвращаются и включаются все поля. Можно предварять функции GeoOperations оператором SELECT, чтобы выбрать и по желанию переименовать конкретные поля, представляющие интерес. Например, этот скрипт использует SELECT для загрузки из службы определения местоположения только двух полей почтового индекса:

Load * Extension GeoOperations.ScriptEval('

SELECT Name as PostalCode, LocationArea FROM

Load() DATASOURCE PostalCodes LOCATIONSERVICE type="PostalCode", country="se"');

 

Использование оператора SELECT в скрипте GeoOperations может быть более эффективным, чем указание полей в операторе LOAD Qlik, поскольку данные не загружаются в Qlik Sense, если они не выбраны в скрипте GeoOperations.

SELECT можно использовать для того, чтобы избежать вычисления некоторых полей, решив не возвращать их в результатах. Например, можно исключить поля с относительным перекрытием, возвращаемые Intersects.

Примечание:

При многократном использовании одной и той же операции в скрипте загрузки используйте оператор SELECT для переименования полей.

Ограничения

В отношении максимального размера наборов данных действуют следующие ограничения:

  • максимальное количество строк: 50 000;
  • максимальный размер набора данных в памяти: 150 МБ;
  • максимальное количество строк с построением маршрутов: 400;
  • максимальное количество строк с поиском по имени: 20 000.

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

Синтаксис скрипта

Скрипт, который можно отправить в GeoOperations, имеет следующий синтаксис.

Синтаксис:  

script ::= [ SELECT (* | select_field,...) FROM ] operation ( [parameter,...] ) {datasource_declaration}

select_field ::= field_name [ AS alias_name ]

parameter ::= parameter_name = "parameter_value"

datasource_declaration ::= DATASOURCE datasource_name datasource_type [parameter,...]

  • field_name  — имя поля в возвращаемой таблице, по желанию заключенное в []
  • alias_name — имя, в которое должно быть переименовано поле, по желанию заключенное в []
  • operation  — одна из операций в Operation
  • parameter_name — имя параметра для операции
  • parameter_value — значение параметра (всегда заключается в двойные кавычки)
  • datasource_name  — имя, которое должен иметь этот источник данных, если на него ссылаются в параметрах операции
  • datasource_type — один из наборов данных в Dataset

Имена параметров и полей чувствительны к регистру, а операции, значения параметров (например, meters, minutes, , car и т. д.) или ключевые слова, такие как SELECT и FROM, — нет.