操作 | Qlik Cloud帮助
跳到主要内容 跳到补充内容

操作

AddressPointLookup

返回表中地址的点几何图形,即地理编码。 在 Search Text 属性中指定地址字符串,或在相应属性中指定结构化部分,例如 Country Street 等。 也允许组合使用。此操作需要特殊许可证。由于任何原因无法找到的地址不会在结果中返回。

Qlik Geocoding(通过 AddressPointLookup 和 PointToAddressLookup)提供的功能不同于其他位置查找功能。Qlik Geocoding 允许在地址级别进行查找,而常规位置查找的精确度只能达到邮政编码级别。

开始使用 Qlik Geocoding 时,请使用 配置 Qlik Geocoding (仅提供英文版本) 中引用的模板。

信息注释 为了获得最佳结果,请尽可能使用特定数据并省略宽泛数据。例如,如果您同时拥有邮政编码和邮政城市,并且您确信邮政编码是正确的,那么最好不要指定邮政城市。

大多数参数有两个版本,一个指定实际值,例如 country="SWE",另一个指定应从中检索实际值的字段名称, 例如 countryField="CountryIso2"

信息注释 您必须具有用户角色权限 Use : 才能使用 AddressPointLookup。
信息注释 要对中国的英文或拼音地址进行地理编码,Country 参数必须设置为 "CHN"。

返回以下列:

  • <dataset key column> - 输入数据集的关键字段。
  • Address - 找到的地址,格式化为该国家/地区的地址标准。
  • Geometry - 找到的项目的点。
  • HouseNumber - 找到的项目的门牌号。
  • Street - 找到的项目的街道。
  • PostalCode - 找到的项目的邮政编码。
  • City - 找到的项目的城市级行政区划名称。
  • Adm1 - 找到的项目的一级行政区划(州/省)的名称或缩写名称。
  • CountryIso2 - 找到的项目的国家/地区代码。
  • Match - 介于 0 和 1 之间的值,显示匹配的良好程度。值为 1 表示完美匹配。
  • dataset 中的关键字段外的所有列,以数据集名称为前缀。

在不适用或数据不可用的情况下,返回的字段可能为空。

支持:

  • 加载脚本中的 ScriptEval。

对一些瑞典地址进行地理编码的示例,其中每个项目都在各自的字段中:

[Addresses]: Load * inline [ Id,Country,City,Street,HouseNumber,Postal 1,SE,Gothenburg,Odinsgatan,13,41103 2,SE,,Alfhemsgatan,5,41310 ]; Load * Extension GeoOperations.ScriptEval(' Select Id, Address, AddressPoint From AddressPointLookup(countryField="Country", cityField="City", streetField="Street", houseNumberField="HouseNumber", postalCodeField="Postal") ', Addresses);

此示例显示了自由文本样式的地理编码:

[Addresses2]: Load * inline [ Id;Address 1;1600 Pennsylvania Avenue NW, Washington, D.C. 20500 2;767 5th Ave, New York, NY 10153 ] (delimiter is ';'); Load * Extension GeoOperations.ScriptEval(' AddressPointLookup(searchTextField="Address", country="USA") ', Addresses2);
AddressPointLookup 的参数
参数 类型 使用 描述
searchText string 可选 要搜索的文本字符串。 可以是类似 "1600 Pennsylvania Ave, Washington DC, USA" 的地址,或者是与其他字段中的数据组合的不完整地址, 例如 "1117 Washington Ave",其中 City 设置为 "Philadelphia", Country 设置为 "USA"。
searchTextField string 可选 如果未指定 searchText,则可以使用此参数指定应从中检索信息的字段。
country string 可选 包含三个字母的 ISO 代码的字符串。可以指定多个国家/地区,用逗号分隔:"SWE,NOR,FIN"。 要专门对中国的英文或拼音地址进行地理编码,此参数必须设置为 "CHN"。
countryField string 可选 如果未指定 country,则可以使用此参数指定包含国家/地区名称或两个或三个字母的 ISO 代码的字段。 请注意,与其他参数相比,由 country countryField 指定的数据的预期格式并不相同。 country 参数允许指定多个国家/地区,但只能采用三个字母的 ISO 格式,而 countryField 允许采用不同的国家/地区格式。
state string 可选 州/省名称或代码。对于大多数国家/地区,州/省不是地址的一部分。
stateField string 可选 如果未指定 state,则可以使用此参数指定应从中检索信息的字段。
city string 可选 城市名称、直辖市或邮政城市。
cityField string 可选 如果未指定 city,则可以使用此参数指定应从中检索信息的字段。
postalCode string 可选 邮政编码。
postalCodeField string 可选 如果未指定 postalCode,则可以使用此参数指定应从中检索信息的字段。
street string 可选 街道名称。 无需在单独的参数或字段中指定街道和门牌号,可以将两者一起指定,用空格分隔。
streetField string 可选 如果未指定 street,则可以使用此参数指定应从中检索信息的字段。
houseNumber string 可选 门牌号。
houseNumberField string 可选 如果未指定 houseNumber,则可以使用此参数指定应从中检索信息的字段。
matchThreshold real 默认值:0.5 仅返回匹配度高于此值的结果。如果返回太多错误匹配,请增加此值。
language string 默认值:无。 回复中地址首选语言的两个字母的语言代码。如果请求的语言中没有该地址,则以该位置的默认语言返回。
dataset Dataset 默认值:无。 包含将在地理编码器中查找的地址的数据集。支持在从加载脚本发送时对此数据集进行数据流处理,这意味着允许使用更大的表。
precision integer 默认值:6 设置坐标中要舍入的小数位数。 默认值为 6 位小数,精确度约为 10 厘米。 如果您不想对坐标进行舍入,请将该值设置为负数。

Binning

为点数据集生成矩形或六边形分箱。这是一种聚合点数据的方法,以便可以有效地显示数据的概览。

返回以下列:

  • <dataset key column> - 输入数据集的关键字段。
  • BinId - 分箱的标识。
  • BinTable.BinPolygon - 分箱的多边形。
  • BinTable.CenterPoint - 分箱中心的点。
  • dataset 中的关键字段外的所有列,以数据集名称为前缀。

支持:

  • 加载脚本中的 ScriptEval。

从美国机场加载六边形分箱的示例:

Load * Extension GeoOperations.ScriptEval(' Binning(type="hexagonal", gridSize="1") DATASOURCE airports LOCATIONSERVICE geometry="POINT", type="AirportIATA", country="us" ');
Binning 的参数
参数 类型 使用 描述
type string 默认值:rectangular 定义应生成 rectangular(矩形)还是 hexagonal(六边形)分箱。
gridSize real 默认值:无。 单个分箱的高度(以度为单位)。一度大约为 10000 米。
gridWidthHeightRatio real 默认值:1.5 分箱的宽高比。 正方形分箱通常是最佳的,但这因纬度而异。 最佳宽高比的公式为 1/cos(纬度),例如在赤道处为 1,在纬度 +-30 度处为 1.15,在纬度 +-60 度处为 2。 在自适应投影中显示分箱数据通常比在墨卡托投影中看起来更好。
dataset Dataset 默认值:无。 包含要为其生成分箱的点几何图形的数据集。支持在从加载脚本发送时对此数据集进行数据流处理,这意味着允许使用更大的表。
precision integer 默认值:6 设置坐标中要舍入的小数位数。 默认值为 6 位小数,精确度约为 10 厘米。 如果您不想对坐标进行舍入,请将该值设置为负数。

Closest

返回一个数据集中的对象与另一个数据集中最近对象之间的关系和距离(如果有任何对象比最大距离更近)。 成本也可以沿道路计算,在这种情况下,可以选择使用旅行时间。 此操作在许多情况下都很有用,不仅用于获取与最近对象的关系,还用于获取一组点之间的距离矩阵。

返回以下列:

  • <dataset1 name>_<dataset2 name>_RelationId - 为两个几何图形之间的关系生成的键。
  • <dataset1 key column> - 输入 dataset1 的关键字段。
  • <dataset2 key column> - 输入 dataset2 的关键字段。
  • Distance - 以 costUnit 中指定的单位表示的距离。
  • Status - 返回的状态为 "ok" 或 "failed:" 后跟错误消息。
  • LowResLine - 路线的低分辨率版本,仅适用于非 bird 距离类型。
  • 除输入 dataset1 数据集中的关键字段外的所有列,以数据集名称为前缀。
  • 除输入 dataset2 数据集中的关键字段外的所有列,以数据集名称为前缀。

支持:

  • 加载脚本中的 ScriptEval。

此示例查找距离表中各点最近的机场:

MyPoints: LOAD * inline " id;point 1;[12,57.7] 2;[12.1,57.7] " (delimiter is ';'); MyClosestAirports: Load * Extension GeoOperations.ScriptEval(' Closest(distance="100000", closestCount="3") DATASOURCE pts INTABLE keyField="id", pointField="point" DATASOURCE airports LOCATIONSERVICE geometry="POINT", type="AirportIATA", country="se" ', MyPoints);
Closest 的参数
参数 类型 使用 描述
distance real 默认值:无。 与“成本单位”中指定的单位的最大距离。距离大于此值的项目将被忽略。
costUnit string 默认值:meters 应为 meters(米)、yards(码)、kilometers(公里)、miles(英里)、seconds(秒)、minutes(分钟)或 hours(小时)之一。 使用时间单位意味着将旅行时间用作成本,使用长度单位意味着将距离用作成本。 距离类型 Bird 不允许使用时间单位。
distanceType real 默认值:Bird 决定如何测量距离。允许使用以下值:
  • Bird - 测量对象之间的直线距离。
  • Car - 沿具有汽车限制的道路测量。仅支持点数据集。
  • Bike - 沿具有自行车限制的道路测量。仅支持点数据集。
  • Pedestrian - 沿具有行人限制的道路测量。仅支持点数据集。
  • Truck - 沿具有卡车限制的道路测量。仅支持点数据集。
closestCount real 默认值:1 第二个数据集中要与第一个数据集中的对象关联的对象数。 值为 1 表示仅最近的一个,2 表示最近的两个,依此类推。
dataset1 Dataset 默认值:<第一个数据集> 要检查与 dataset2(如果已指定)中对象的接近程度的对象,否则检查与自身中对象的接近程度。 在检查单个数据集中的对象之间的接近程度时,绝不会添加从对象到其自身的关系。 支持在从加载脚本发送且定义了 dataset2 时对此数据集进行数据流处理,这意味着允许使用更大的表。
dataset2 Dataset 默认值:<第二个数据集(如果有)> 要与 dataset1 中的对象关联的对象。
precision integer 默认值:6 设置坐标中要舍入的小数位数。 默认值为 6 位小数,精确度约为 10 厘米。 如果您不想对坐标进行舍入,请将该值设置为负数。

Cluster

根据点之间的地理接近程度从点数据集生成聚类。聚类生成由 distance 参数控制,该参数定义点与其所属聚类的最大距离。 返回一个包含点和聚类之间关系的表。 还返回一个名为 Clusters 的联接表,其中包含聚类几何图形。 它包含字段 ClusterID、ClusterCenter(点几何图形)和 PointCount。 计数字段包含聚类中的点数。

返回以下列:

  • <dataset key column> - 输入数据集的关键字段。
  • ClusterID - 点所属聚类的 ID。
  • Clusters.ClusterPoint - 聚类的中心点。
  • Clusters.PointCount - 属于该聚类的原始点数。
  • 除输入数据集中的关键字段外的所有列,以数据集名称为前缀。

支持:

  • 加载脚本中的 ScriptEval。

此示例对美国的机场进行聚类,以便距离小于 50 公里的机场属于同一个聚类:

MyClusteredAirports: Load * Extension GeoOperations.ScriptEval(' Cluster(distance="50000") DATASOURCE airports LOCATIONSERVICE geometry="POINT", type="AirportIATA", country="us" ');
Cluster 的参数
参数 类型 使用 描述
distance real 默认值:无。 点与其聚类之间的距离不能超过此距离(以米为单位)。
dataset Dataset 默认值:无。 包含要聚类的点的数据集。
precision integer 默认值:6 设置坐标中要舍入的小数位数。 默认值为 6 位小数,精确度约为 10 厘米。 如果您不想对坐标进行舍入,请将该值设置为负数。

Dissolve

根据旧区域标识(或几何图形)与新区域标识之间的映射,融合并简化区域以形成更大的区域。 这通常用于构建由较小的明确定义的区域(例如邮政区域或行政区域)组成的自定义区域。

返回以下列:

  • <dissolveField> - 在输入数据中指定为 dissolveField 的字段。
  • DissolvedPolygon - 新融合区域的几何图形。

支持:

  • 加载脚本中的 ScriptEval。

几何图形数据集是可选的。如果未提供,则假定几何图形在融合定义数据集中可用。

请注意,除 Source 外,所有分辨率中的多边形重叠都将被移除。

此示例创建两个区域,一个由 CA 和 AZ 组成,另一个由 WA 和 OR 组成:

MySalesRegions: LOAD * inline " Adm1Code;RegionName California;SouthWest Arizona;SouthWest Washington;NorthWest Oregon;NorthWest " (delimiter is ';'); MySalesRegionGeometries: Load * Extension GeoOperations.ScriptEval(' Dissolve(dissolveField="RegionName", areaDatasetKeyField="Name") DATASOURCE states LOCATIONSERVICE type="State", country="us" ', MySalesRegions);
Dissolve 的参数
参数 类型 使用 描述
dissolveField string 默认值:<与 dissolveDataset 中的关键字段同名> dissolveDataset 中包含新区域标识的字段名称。
resolution string 默认值:Auto 生成的数据集将被简化,简化的程度由此属性控制。可用值为:
  • auto - 操作根据数据计算分辨率。
  • autolow - 低于(一半)Auto 分辨率的分辨率。
  • autohigh - 高于(两倍)Auto 分辨率的分辨率。
  • source - 不执行简化。 请注意,如果 dissolveDataset 在两个不同的新区域中包含两次相同的旧区域,则必须使用 source
areaDatasetKeyField string 默认值:<areaDataset 中的关键字段> areaDataset 中原始区域的标识。仅在指定了 areaDataset 时使用。
dissolveDataset Dataset 默认值:<第一个数据集> 每个旧区域所属的新区域的定义,即旧区域和新区域标识之间的映射。 如果指定了 areaDataset,则关键字段应映射到其中的键。 如果未提供 areaDataset,则几何图形应在此数据集中可用。
areaDataset Dataset 默认值:<第二个数据集(如果有)> 包含要融合的区域几何图形的数据集。 可以为无,这意味着几何图形应在 dissolveDataset 中可用。 此数据集中的 areaDatasetKeyField 必须链接到 dissolveDataset 中的关键字段。
precision integer 默认值:6 设置坐标中要舍入的小数位数。 默认值为 6 位小数,精确度约为 10 厘米。 如果您不想对坐标进行舍入,请将该值设置为负数。

Intersects

返回一个表,该表在 dataset1 中的键和 dataset2 中的键之间映射所有相交的对象。 如果两个数据集都包含多边形,则返回与各自数据集中的区域相比的相对重叠区域。

可以通过指定 intersectsCount 来限制第二个数据集中应映射到第一个数据集中每个几何图形的相交几何图形的数量。 然后按顺序返回最相交的几何图形。如果未指定 intersectsCount,则该操作是对称的。

返回以下列:

  • <dataset1 name>_<dataset2 name>_RelationId - 为两个几何图形之间的关系生成的键。
  • <dataset1 key column> - 输入 dataset1 的关键字段。
  • <dataset2 key column> - 输入 dataset2 的关键字段。
  • <dataset1 name>.RelativeOverlap - 与 dataset1 中的多边形相比的重叠。仅当两个数据集都包含多边形时才返回。请求此字段会降低性能。
  • <dataset2 name>.RelativeOverlap - 与 dataset2 中的多边形相比的重叠。仅当两个数据集都包含多边形时才返回。请求此字段会降低性能。
  • 除输入 dataset1 数据集中的关键字段外的所有列,以数据集名称为前缀。
  • 除输入 dataset2 数据集中的关键字段外的所有列,以数据集名称为前缀。

支持:

  • 加载脚本中的 ScriptEval。

此示例计算某些线与哪些州/省相交:

MyLines: LOAD * inline " id;line 1;[[-108.1,45.4],[-107.4,44.9]] 2;[[-98.9,40.1],[-100.4,40.9]] " (delimiter is ';'); LinesInStates: Load * Extension GeoOperations.ScriptEval(' SELECT id, states.Name FROM Intersects() DATASOURCE states LOCATIONSERVICE geometry="AREA", type="Admin1", country="us" ', MyLines);
Intersects 的参数
参数 类型 使用 描述
dataset1 Dataset 默认值:<第一个数据集> 包含几何图形的数据集,用于测试哪些几何图形与另一个数据集(如果已指定)中的几何图形相交,或者(如果未指定)测试此数据集中的对象之间是否相交。 在检查单个数据集中的对象之间的相交时,绝不会添加从对象到其自身的关系。 支持在从加载脚本发送且定义了 dataset2 时对此数据集进行数据流处理,这意味着允许使用更大的表。
dataset2 Dataset 默认值:<第二个数据集(如果有)> 包含几何图形的数据集,用于测试哪些几何图形与另一个数据集中的几何图形相交。如果未指定,则计算 dataset1 中对象之间的相交。
intersectsCount integer 默认值:0 如果大于 0,则每个 dataset1 几何图形最多返回此数量的 dataset2 中的相交几何图形。仅返回最相交(最大重叠面积或长度)的几何图形。
precision integer 默认值:6 设置坐标中要舍入的小数位数。 默认值为 6 位小数,精确度约为 10 厘米。 如果您不想对坐标进行舍入,请将该值设置为负数。

IpLookup

返回表中 IP 地址的位置信息和点几何图形。 这在分析 Web 服务的访问数据时非常有用。 返回的表包含以下字段:
  • 关键字段 - 与名称表的关键字段相同。
  • <Address Table Ip Field> - 与查找的 IP 字段相同。仅当与关键字段不同时才可用。
  • IpPoint - 找到的项目的点。
  • CountryIso2 - 找到的项目的国家/地区代码。
  • Adm1Code - 找到的项目的一级行政区划代码。请注意,此代码并不总是与位置服务返回的代码兼容。
  • City - 找到的项目的城市。
  • 除输入数据集中的关键字段外的所有列,以数据集名称为前缀。

IP 地理定位本质上是不精确的。对于许多 IP 地址,可以精确定位到城市,但对于其他 IP 地址,只能解析到国家/地区。

最佳实践是仅将 Ip 列发送到 IpLookup 操作。查找某些 IP 地址的示例:

MyIpData: LOAD * inline " User;Ip Alice;188.12.2.2 Bob;176.77.23.14 " (delimiter is ';'); MyIpPoints: Load * Extension GeoOperations.ScriptEval(' IpLookup(ipField="Ip") ', MyIpData{Ip});

同一个 IP 在多行中重复是很常见的。像此示例中那样首先过滤出唯一的 IP 可以提高性能:

MyIpData: LOAD * inline " User;Ip Alice;176.77.23.14 Bob;188.12.2.2 Carol;176.77.23.14 Dave;188.12.2.2 Bob;188.12.2.2 Bob;188.12.2.2 " (delimiter is ';'); MyDistinctIpData: Load distinct Ip resident MyIpData; MyIpPoints: Load * Extension GeoOperations.ScriptEval(' IpLookup(ipField="Ip") ', MyDistinctIpData); Drop Table MyDistinctIpData;

本产品包含由 MaxMind 创建的 GeoLite2 数据,可从 MaxMind 获取。

IpLookup 的参数
参数 类型 使用 描述
ipField string 可选 包含要查找的 IP 地址的字段。如果未指定,则使用数据集的关键字段。
dataset Dataset 默认值:无。 包含将在地理编码器中查找的 IP 地址的数据集。支持在从加载脚本发送时对此数据集进行数据流处理,这意味着允许使用更大的表。
precision integer 默认值:6 设置坐标中要舍入的小数位数。 默认值为 6 位小数,精确度约为 10 厘米。 如果您不想对坐标进行舍入,请将该值设置为负数。

Load

加载数据集而不应用任何操作。这使得加载 GeoOperations 支持的所有格式成为可能。 请注意,如果几何图形详细且显示缓慢, Simplify 可能是 Load 的一个很好的替代方案。

返回以下列:

  • dataset 中的所有列。

支持:

  • 加载脚本中的 ScriptEval。

从瑞典加载邮政编码的示例:

Load * Extension GeoOperations.ScriptEval('Load() DATASOURCE PostalCodes LOCATIONSERVICE type="PostalCode", country="se"');

由于 WKT 被支持作为 INTABLE 中数据的几何图形格式,因此 Load 操作非常适合将从数据库加载的地理几何图形转换为 Sense 几何图形格式,以便可以显示它。 以下示例显示了如何转换 WKT 数据,在本例中来自 MyWKTData 表:

MyWKTData: LOAD *inline " id;wkt 1;POINT(-80.204 25.791) 2;POINT(-81.381 28.538)" (delimiter is ';'); Load * Extension GeoOperations.ScriptEval(' Select id, wkt as point From Load() ', MyWKTData);
Load 的参数
参数 类型 使用 描述
dataset Dataset 默认值:<第一个数据集> 要加载的数据集。支持在从加载脚本发送时对此数据集进行数据流处理,这意味着允许使用更大的表。
precision integer 默认值:6 设置坐标中要舍入的小数位数。 默认值为 6 位小数,精确度约为 10 厘米。 如果您不想对坐标进行舍入,请将该值设置为负数。

PointToAddressLookup

返回列表中各点的最近地址,也称为反向地理编码。 此操作需要特殊许可证。 靠近街道的点将获得街道级别的地址,否则将回退到返回邮政区域或城市级别的匹配项。对于太远的点,不返回任何数据。

信息注释 您必须具有用户角色权限 Use : 才能使用 PointToAddressLookup。

返回以下列:

  • <dataset key column> - 输入数据集的关键字段。
  • Address - 找到的地址,格式化为该国家/地区的地址标准。
  • Geometry - 找到的项目的点。
  • HouseNumber - 找到的项目的门牌号。
  • Street - 找到的项目的街道。
  • PostalCode - 找到的项目的邮政编码。
  • City - 找到的项目的城市级行政区划名称。
  • Adm1 - 找到的项目的一级行政区划(州/省)的名称或缩写名称。
  • CountryIso2 - 找到的项目的国家/地区代码。
  • Distance - 到找到的地址的距离(以米为单位)。
  • dataset 中的关键字段外的所有列,以数据集名称为前缀。

请注意,在不适用或数据不可用的情况下,返回的字段可能为空。

获取某些点的地址的示例:

MyAddressPoints: LOAD * inline " id;point 1;[-108.1,45.4] 2;[-98.9,40.1] 3;[12.1,57.7] " (delimiter is ';'); Load * Extension GeoOperations.ScriptEval(' PointToAddressLookup() ', MyAddressPoints);
PointToAddressLookup 的参数
参数 类型 使用 描述
language string 默认值: 回复中地址首选语言的两个字母的语言代码。如果请求的语言中没有该地址,则以该位置的默认语言返回。
dataset Dataset 默认值:无。 包含将在地理编码器中查找的点的数据集。支持在从加载脚本发送时对此数据集进行数据流处理,这意味着允许使用更大的表。
precision integer 默认值:6 设置坐标中要舍入的小数位数。 默认值为 6 位小数,精确度约为 10 厘米。 如果您不想对坐标进行舍入,请将该值设置为负数。

Routes

计算表中两个位置之间的路线,包括长度和持续时间。

请注意,起点是数据集中的几何图形列。 终点列在操作参数中指定,因为数据集只知道一个几何图形列。

如果您使用 bird 作为交通类型,它会在起点和终点之间生成大圆弧。

返回以下列:

  • <dataset key column> - 输入数据集的关键字段。
  • Distance - 路线距离(以米为单位)。
  • Duration - 估计的路线旅行时间(以秒为单位)。
  • Status - 返回的状态为 "ok" 或 "failed:" 后跟错误消息。
  • LowResLine - 路线的低分辨率版本。
  • 除输入数据集中的关键字段外的所有列,以数据集名称为前缀。

支持:

  • 加载脚本中的 ScriptEval。
  • 图表脚本中的 ScriptEvalStr,用于获取路线。
  • 图表脚本中的 ScriptEval,用于获取距离或持续时间。

这是一个计算数据集中各点之间路线的示例:

MyRoutePoints: LOAD * inline " routeid;origin;dest 1;[12,57.7];[12,57.8] 2;[12.1,57.7];[12.2,57.7] " (delimiter is ';'); MyRoutes: Load * Extension GeoOperations.ScriptEval('Routes(destField="dest")', MyRoutePoints);

这是一个直接在线图层中计算路线的示例。每次选择更改时,都会为选择调用该操作。 通常应该有一个计算条件,如果仅选择了几个点,则该条件为真(否则最好在加载脚本中计算路线)。 这应该放在加载脚本中以加载数据。例如:

Load * Extension GeoOperations.ScriptEval( 'Load() DATASOURCE Cities LOCATIONSERVICE geometry="POINT", type="City", country="dk"');

在线图层中使用以下维度:

LocationDbId

在线图层中使用计算条件:

Count(LocationDbId)<10

在应设置为 Line geometry 的 Location 属性中,输入此内容以计算从固定位置到所选点的路线:

=GeoOperations.ScriptEvalStr('SELECT LowResLine from Routes(originField="Me", destField="LocationPoint")', '[11.2,54.8]' as Me, LocationPoint)

Routes 的参数
参数 类型 使用 描述
dataset Dataset 默认值:无。 包含要计算的路线的起点和终点的数据集。起点应位于数据集的几何图形中。 支持在从加载脚本发送时对此数据集进行数据流处理,这意味着允许使用更大的表。
criteria string 默认值:fastest 选择要计算的 fastest(最快)或 shortest(最短)路线。
transportation string 默认值:car 交通模式,为 car(汽车)、 truck(卡车)、 bike(自行车)、 pedestrian(步行)或 bird(鸟,以 10 米/秒的速度飞行)之一。
destField string 默认值:无。 数据集中指定终点的字段。请注意,起点是数据集中指定的几何图形字段。
geometryType string 默认值:POINT destField 中的几何图形类型。允许的值为 Point NamedPoint LatLon。 如果是命名点,则在位置服务中查找几何图形,并添加几何图形列。
suffix string 默认值:无。 适用于高级用户。指定的字符串将附加到所有 ID。 这是一种向基于服务器的位置服务指定更多信息(例如国家/地区代码或类型)的便捷方法。 另一种方法是在将表加载到 Qlik 时附加额外数据。 使用以下后缀,所有项目都被指定为瑞典的城市:
,SE:city
有关要使用的语法的更多信息,请参阅 Location Service Guide
precision integer 默认值:6 设置坐标中要舍入的小数位数。 默认值为 6 位小数,精确度约为 10 厘米。 如果您不想对坐标进行舍入,请将该值设置为负数。

Simplify

简化数据集中的线和区域几何图形。 使用 Simplify 操作而不是 Load 操作加载地理数据通常很有用,可以获得更高效、显示更快的几何图形。

简化的程度是根据面积、对象数量和对象大小自动计算的。 然后可以使用 resolution 参数将其调整为更高或更低的分辨率。

区域简化是使用处理拓扑的算法完成的,可以消除间隙并连接孤岛。

线简化是使用断点减少算法完成的。

请注意,多边形的重叠将被移除。输出中将没有重叠的多边形。

返回以下列:

  • <dataset key column> - 输入 dataset1 的关键字段。
  • Simplified_<geometry column name> - 原始几何图形的简化版本。
  • dataset 中的关键字段外的所有列,以数据集名称为前缀。

支持:

  • 加载脚本中的 ScriptEval。

加载美国各州简化版本的示例:

Load * Extension GeoOperations.ScriptEval(' SELECT LocationDbId, Simplified_LocationPolygon FROM Simplify() DATASOURCE states LOCATIONSERVICE type="State", country="us" ');
Simplify 的参数
参数 类型 使用 描述
resolution string 默认值:Auto 生成的数据集将被简化,简化的程度由此属性控制。可用值为:
  • Auto - 操作根据数据计算分辨率。
  • AutoLow - 低于(一半)Auto 分辨率的分辨率。
  • AutoHigh - 高于(两倍)Auto 分辨率的分辨率。
dataset Dataset 默认值:<第一个数据集> 包含要简化的几何图形的数据集。
precision integer 默认值:6 设置坐标中要舍入的小数位数。 默认值为 6 位小数,精确度约为 10 厘米。 如果您不想对坐标进行舍入,请将该值设置为负数。

TravelAreas

计算旅行时间 ISO 区域。 返回区域内的所有位置都可以在特定时间内到达,或者沿道路的距离小于特定距离。 返回一个包含 ID、旅行区域几何图形、中心点、成本、成本单位和状态(OK 或 failed)的表。

如果您使用 "bird" 作为交通类型,它会在起点周围生成地理上正确的圆。

返回以下列:

  • <dataset key column> - 输入数据集的关键字段。
  • TravelArea - 定义旅行区域的多边形几何图形。
  • Cost - 在 costValue 或 costField 中指定的成本。
  • CostUnit - 在 costUnit 中指定的成本单位。
  • Status - 返回的状态为 "OK" 或 "failed:" 后跟错误消息。
  • 除输入数据集中的关键字段外的所有列,以数据集名称为前缀。

支持:

  • 加载脚本中的 ScriptEval。
  • 图表脚本中的 ScriptEvalStr,用于获取旅行区域几何图形。
  • 图表脚本中的 ScriptEval,用于获取成本。

此加载脚本示例根据坐标在迈阿密和奥兰多生成 10 分钟的旅行区域:

MyPoints: LOAD * inline " id;point 1;[-80.204,25.791] 2;[-81.381,28.538] " (delimiter is ';'); MyTravelAreas: Load * Extension GeoOperations.ScriptEval( 'SELECT id, TravelArea from TravelAreas(costValue="10", costUnit="Minutes")', MyPoints);

此加载脚本示例使用命名点在迈阿密和奥兰多生成 10 分钟的旅行区域:

MyCities: LOAD * inline " cid;City 1;Miami,US 2;Orlando,FL,US " (delimiter is ';'); Load * Extension GeoOperations.ScriptEval('TravelAreas(costValue="10",costUnit="minutes") DATASOURCE cities INTABLE keyField="City", namedPointField="City"', MyCities {City});

这是一个直接在区域图层中计算点周围旅行区域的示例。每次选择更改时,都会为选择调用该操作。 这应该放在加载脚本中以加载示例的数据:

MyAirports: Load * Extension GeoOperations.ScriptEval(' Load() DATASOURCE airports LOCATIONSERVICE geometry="POINT", type="AirportIATA", country="se" ');

在区域图层中使用以下维度:

LocationDbId

在区域图层中使用计算条件:

Count(LocationDbId)<10

在 Location 属性中输入此内容:

=GeoOperations.ScriptEvalStr('Select TravelArea from TravelAreas(costValue="10", costUnit="minutes")', LocationPoint)

TravelAreas 的参数
参数 类型 使用 描述
dataset Dataset 默认值:<第一个数据集> 包含旅行区域计算的起点和可选成本的数据集。支持在从加载脚本发送时对此数据集进行数据流处理,这意味着允许使用更大的表。
costValue number 默认值:无。 返回区域边界处的成本。成本可以是长度或时间。(请参阅下面的 costUnit。) 允许每个区域有单独成本的另一种方法是指定 costField。
costField string 默认值:无。 数据集中指定成本的字段。仅在 costValue 为空时使用。
costUnit string 默认值:seconds 应为 seconds(秒)、minutes(分钟)、hours(小时)、meters(米)、yards(码)、kilometers(公里)或 miles(英里)之一。 使用时间单位时,计算在该时间内到达的区域;使用长度单位时,计算旅行距离短于指定距离的区域。
transportation string 默认值:car 交通模式,为 car(汽车)、truck(卡车)、bike(自行车)、pedestrian(步行)或 bird(鸟,以 10 米/秒的速度飞行)之一。
precision integer 默认值:6 设置坐标中要舍入的小数位数。 默认值为 6 位小数,精确度约为 10 厘米。 如果您不想对坐标进行舍入,请将该值设置为负数。

Within

返回两个数据集之间的关系,其中一个数据集(被包含)中的几何图形完全位于另一个数据集(包含)的区域内。 返回一个表,该表在被包含的键和包含的键之间映射所有找到的关系。

通常使用 within 来查找数据所在的区域; 例如,测试 GPS 位置以确定它们所在的行政区域。 这是一种反向地理编码。

返回以下列:

  • <enclosed name>_<enclosing name>_RelationId - 为两个几何图形之间的关系生成的键。
  • <enclosed key column> - 输入 dataset1 的关键字段。
  • <enclosing key column> - 输入 dataset2 的关键字段。
  • enclosed 数据集中的关键字段外的所有列,以数据集名称为前缀。
  • enclosing 数据集中的关键字段外的所有列,以数据集名称为前缀。

支持:

  • 加载脚本中的 ScriptEval。

为了补偿数据中的不准确性,有时最好使用 Closest 而不是 Within。例如,如果您有沿海地区的点数据,并且希望将其与行政区域关联,那么微小的不准确性可能会使点略微落在区域之外。

这是一个加载脚本示例,用于计算哪些点在哪些州/省内:

MyPoints: LOAD * inline " id;point 1;[-108.1,45.4] 2;[-98.9,40.1] 3;[12.1,57.7] " (delimiter is ';'); PointsInStates: Load * Extension GeoOperations.ScriptEval(' Within() DATASOURCE states LOCATIONSERVICE geometry="AREA", type="Admin1", country="us" ', MyPoints);
Within 的参数
参数 类型 使用 描述
enclosed Dataset 默认值:<第一个数据集> 包含几何图形的数据集,用于测试它们被哪些区域包含。支持在从加载脚本发送时对此数据集进行数据流处理,这意味着允许使用更大的表。
enclosing Dataset 默认值:<第二个数据集> 包含区域几何图形的数据集,用于测试它们包含哪些几何图形。支持在从加载脚本发送时对此数据集进行数据流处理,这意味着允许使用更大的表。
precision integer 默认值:6 设置坐标中要舍入的小数位数。 默认值为 6 位小数,精确度约为 10 厘米。 如果您不想对坐标进行舍入,请将该值设置为负数。
 

本页面有帮助吗?

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