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

Qlik Sense GeoOperations

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

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

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

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

Признаки

  • Доступно в языке скрипта в Qlik Sense SaaS.

  • Извлечение пространственных отношений, чтобы их можно было обрабатывать с помощью Qlik.
  • Поиск местоположений во время загрузки (в качестве альтернативы поиску во время представления на диаграмме с картой).
  • Агрегирование точек в кластеры или группы.
  • Указание местоположений в виде:
    • геометрий точки, линии или области в том же формате, что и QlikGeoAnalytics, и Qlik Sense;
    • полей широты и долготы;
    • именованных точек или областей.
  • Загрузка географических данных из различных входных форматов.
  • Использование операций на данных, уже загруженных в Qlik.

Принципы работы 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, имеет следующий синтаксис:

1. Операция

Простейшая форма скрипта выполняет операцию.

Синтаксис:  

Operation(paramName="paramValue", ...)

Пример:  

Cluster(distance="100000")

 

Для получения дополнительной информации см. список операций и их параметров.

2. Набор данных

Второй шаг — загрузка набора данных для выбранных операций.

Синтаксис:  

Operation(paramName="paramValue", ...)

DATASOURCE name TYPE paramName="paramvalue", ...

Пример:  

Within()

DATASOURCE states LOCATIONSERVICE type="STATE", country="US"

 

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

3. Сборка

Вот как готовый скрипт будет выглядеть в Редактор загрузки данных:

[MyPointsInStates]:

Load * Extension GeoOperations.ScriptEval(’

Within()

DATASOURCE states LOCATIONSERVICE type=”STATE”, country=”US”

’, MyTable);

 

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

4. Фильтрация полей

Следующие дополнения позволяют дополнительно фильтровать результаты операции.

[MyPointsInStates]:

Load * Extension GeoOperations.ScriptEval(’

SELECT Name, states.Name as State FROM

Within()

DATASOURCE states LOCATIONSERVICE type=”STATE”, country=”US”

’, MyTable{Name, Point});

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