跳到主要内容 跳到补充内容

使用 Qlik GeoOperations 编写脚本

Qlik GeoOperations 连接器为您创建和格式化 GeoOperations 脚本。您可以在 数据加载编辑器 中修改这些脚本。您也可以手动用 GeoOperations 函数编写脚本,而不是使用 Qlik GeoOperations 连接器。

Qlik GeoOperations 的工作方式

首先,将 Qlik GeoOperations 连接器添加为数据源。在您应用程序的 数据加载编辑器 中,选择要从连接器加载的数据时,可以选择要执行的操作和要应用的参数。然后,Qlik GeoOperations 连接器将相应 GeoOperations 的脚本添加到加载脚本中。您也可以手动添加此脚本。

每个操作脚本都包含一个加载语句,用于选择数据使用和操作。这些将发送到加载脚本中的 GeoOperations 扩展。然后服务器端扩展返回数据。Qlik GeoOperations 使脚本语言中名为 GeoOperations 的高级分析集成对象可用。这提供了将脚本和表发送到扩展的函数 ScriptEval

例如,以下加载脚本用于将行进区域操作应用至之前加载的表格 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 函数前面放置 SELECT 语句,来选择以及可选地重命名感兴趣的特定字段。例如,该脚本使用 SELECT 来从位置服务仅加载两个邮政编码字段:

Load * Extension GeoOperations.ScriptEval('

SELECT Name as PostalCode, LocationArea FROM

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

 

GeoOperations 脚本中使用 SELECT 语句比在 Qlik LOAD 语句中指定字段更为有效,因为如果没有在 GeoOperations 脚本中选择数据,则不会将其加载到 Qlik Sense 中。

可使用 SELECT 选择不在结果中返回某些字段,来避免计算这些字段。例如,可排除由 Intersects 返回的相对重叠字段。

信息注释

如果您在加载脚本中使用同一操作多次,可使用 SELECT 语句重命名字段。

脚本语法

发送至 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});

参数名称和字段名称要区分大小写,但是操作、参数选项(例如 metersminutes, 等)或诸如 SELECTFROM 的关键词则不区分。

AddressPointLookupPointToAddressLookup 脚本故障排除

本页面有帮助吗?

如果您发现此页面或其内容有任何问题 – 打字错误、遗漏步骤或技术错误 – 请告诉我们如何改进!