跳到主要内容

Qlik Sense GeoOperations

Qlik Sense GeoOperations 允许您进行地理计算和函数功能,例如计算路线或出行区域。它还能够从 GeoJSON 和 ESRI shapefile 加载地理数据。

不适用于:Qlik Sense Enterprise SaaS - Government (US) 不支持 Qlik Sense GeoOperations

Qlik Sense GeoOperations 可作为与 Qlik Cloud

Qlik Sense GeoOperations 让您能够用自己的数据解决地理问题,例如:

  • 确定有多少客户居住于距离门店位置在 15 分钟车程以内
  • 将 GPS 位置与地点、地区或道路网络链接
  • 从城市列表构建自定义销售区域
  • 针对患者名单查找最近的医院

GeoOperations 函数可在脚本撰写中用于数据加载脚本和可视化表达式。GeoOperations 函数可用来从外部文件或从 Qlik GeoAnalytics 位置服务加载地理数据集。GeoOperations 函数还可用于转换地理数据或进行计算。

备注: 若需有关如何使用 GeoOperations 的示例,请参阅 GeoOperations 示例

GeoOperations 的工作方式

Qlik Sense GeoOperations 的工作方式是向加载脚本中的 GeoOperations 扩展发送脚本的小片段以及表格(可选)。然后扩展返回数据。GeoOperations 使得名为 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"');

 

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

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

备注:

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

限制

有以下限制适用于数据集的最大大小:

  • 最大行数:50000
  • 内存中的最大数据集大小:150MB
  • 路由的最大行数:400
  • 名称查找的最大行数:20000

一些操作支持来自 Qlik 引擎的数据流数据。从 Qlik 引擎串流的数据可能更大,但是路由的大小限制仍然适用。

脚本语法

可发送至 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 -“操作”中的一个操作
  • parameter_name - 用于操作的参数的名称
  • parameter_value - 参数值(始终包含在双引号中)
  • datasource_name - 该数据源应当具有的名称(如果在操作参数中引用了该名称)
  • datasource_type - 数据集中的一个数据集

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