Geo distance left join(地理距离左连接(Geo distance left join))¶
Supported in: Batch
Left joins datasets together if the distance between input geometries is less than or equal to the specified distance. Internally converts geometries into the given projected coordinate reference system prior to the join and back to WGS84.
Transform categories: Geospatial, Join
Declared arguments¶
- Condition for columns to select on the left: All columns in the left input schema will be tested to see if they match this condition. If they match, the column will be selected in the output.
ColumnPredicate - Condition for columns to select on the right: All columns in the right input schema will be tested to see if they match this condition. If they match, the column will be selected in the output.
ColumnPredicate - Distance: The distance within which to join geometries, in the same units as the coordinate reference system.
Literal\ - Join key: The geojson columns from the left and right inputs on which to join.
Tuple\, Column\\ > - Left dataset: Left dataset to use in join.
Table - Projected coordinate system: Input geometries will be converted to this coordinate system prior to the join, and distance will be measured in the units of the given coordinate system. Formatted as "authority:id", so for example UTM zone 18N could be identified by EPSG:32618.
Literal\ - Right dataset: Right dataset to use in join.
Table - optional Prefix for columns from right: Prefix to add to all columns on the right hand side.
Literal\
Examples¶
Example 1: Base case¶
Argument values:
- Condition for columns to select on the left:
columnNameIsIn(
columnNames: [geometryColLhs, lhs-1],
) - Condition for columns to select on the right:
columnNameIsIn(
columnNames: [geometryColRhs, rhs-1],
) - Distance: 1640.42
- Join key: (
geometryColLhs,geometryColRhs) - Left dataset: ri.foundry.main.dataset.left
- Projected coordinate system: epsg:2868
- Right dataset: ri.foundry.main.dataset.right
- Prefix for columns from right: null
Inputs:
ri.foundry.main.dataset.left
| geometryColLhs | lhs-1 |
|---|---|
| {"coordinates": [-112.14843750000001,33.440609443703586], "type":"Point"} | 42.0 |
| null | 43.0 |
ri.foundry.main.dataset.right
| geometryColRhs | rhs-1 |
|---|---|
| {"coordinates": [-112.14560508728029,33.44082430962016], "type":"Point"} | rhsVal1 |
| {"coordinates": [-112.11796760559083,33.440895931474124], "type":"Point"} | rhsVal2 |
Output:
| geometryColLhs | lhs-1 | geometryColRhs | rhs-1 |
|---|---|---|---|
| {"coordinates": [-112.14843750000001,33.440609443703586], "type":"Point"} | 42.0 | {"coordinates": [-112.14560508728029,33.44082430962016], "type":"Point"} | rhsVal1 |
| null | 43.0 | null | null |
Example 2: Base case¶
Argument values:
- Condition for columns to select on the left:
columnNameIsIn(
columnNames: [geometryColLhs, lhs-1],
) - Condition for columns to select on the right:
columnNameIsIn(
columnNames: [geometryCol, col1, arrayCol],
) - Distance: 10.0
- Join key: (
geometryColLhs,geometryCol) - Left dataset: ri.foundry.main.dataset.left
- Projected coordinate system: EPSG:4326
- Right dataset: ri.foundry.main.dataset.right
- Prefix for columns from right: rhs_
Inputs:
ri.foundry.main.dataset.left
| geometryColLhs | lhs-1 |
|---|---|
| {"type":"Polygon","coordinates":[[[0.0,0.0],[0.0,10.0],[10.0,10.0],[10.0,0.0],[0.0,0.0]]]} | 42.0 |
| {"coordinates": [55.0, 5.0], "type":"Point"} | 43.0 |
| {"coordinates": [[25.0, 0.0], [0.0, 25.0]], "type":"LineString"} | 44.0 |
ri.foundry.main.dataset.right
| geometryCol | col1 | arrayCol |
|---|---|---|
| {"coordinates": [[[20.0, 10.0], [27.0, 10.0], [27.0, 17.0], [20.0, 17.0], [20.0, 10.0]]], "type": "Polygon"} | rhsVal1 | [ 0.0, 1.0 ] |
| {"coordinates": [[[21.0, 21.0], [27.0, 21.0], [27.0, 27.0], [21.0, 27.0], [21.0, 21.0]]], "type": "Polygon"} | rhsVal2 | [ 0.0, 1.0 ] |
| {"coordinates": [0.0, 0.0], "type":"Point"} | rhsVal3 | [ 0.0, 1.0 ] |
| {"coordinates": [10.0, 10.0], "type":"Point"} | rhsVal4 | [ 0.0, 1.0 ] |
| {"coordinates": [14.0, 14.0], "type":"Point"} | rhsVal5 | [ 0.0, 1.0 ] |
| {"coordinates": [25.0, 25.0], "type":"Point"} | rhsVal6 | [ 0.0, 1.0 ] |
Output:
| geometryColLhs | lhs-1 | rhs_geometryCol | rhs_col1 | rhs_arrayCol |
|---|---|---|---|---|
| {"type":"Polygon","coordinates":[[[0.0,0.0],[0.0,10.0],[10.0,10.0],[10.0,0.0],[0.0,0.0]]]} | 42.0 | {"coordinates": [[[20.0, 10.0], [27.0, 10.0], [27.0, 17.0], [20.0, 17.0], [20.0, 10.0]]], "type": "Polygon"} | rhsVal1 | [ 0.0, 1.0 ] |
| {"coordinates": [55.0, 5.0], "type":"Point"} | 43.0 | null | null | null |
| {"coordinates": [[25.0, 0.0], [0.0, 25.0]], "type":"LineString"} | 44.0 | {"coordinates": [[[20.0, 10.0], [27.0, 10.0], [27.0, 17.0], [20.0, 17.0], [20.0, 10.0]]], "type": "Polygon"} | rhsVal1 | [ 0.0, 1.0 ] |
| {"coordinates": [[25.0, 0.0], [0.0, 25.0]], "type":"LineString"} | 44.0 | {"coordinates": [10.0, 10.0], "type":"Point"} | rhsVal4 | [ 0.0, 1.0 ] |
| {"coordinates": [[25.0, 0.0], [0.0, 25.0]], "type":"LineString"} | 44.0 | {"coordinates": [14.0, 14.0], "type":"Point"} | rhsVal5 | [ 0.0, 1.0 ] |
| {"type":"Polygon","coordinates":[[[0.0,0.0],[0.0,10.0],[10.0,10.0],[10.0,0.0],[0.0,0.0]]]} | 42.0 | {"coordinates": [10.0, 10.0], "type":"Point"} | rhsVal4 | [ 0.0, 1.0 ] |
| {"type":"Polygon","coordinates":[[[0.0,0.0],[0.0,10.0],[10.0,10.0],[10.0,0.0],[0.0,0.0]]]} | 42.0 | {"coordinates": [0.0, 0.0], "type":"Point"} | rhsVal3 | [ 0.0, 1.0 ] |
| {"type":"Polygon","coordinates":[[[0.0,0.0],[0.0,10.0],[10.0,10.0],[10.0,0.0],[0.0,0.0]]]} | 42.0 | {"coordinates": [14.0, 14.0], "type":"Point"} | rhsVal5 | [ 0.0, 1.0 ] |
Example 3: Base case¶
Argument values:
- Condition for columns to select on the left:
columnNameIsIn(
columnNames: [geometryColLhs, lhs-1],
) - Condition for columns to select on the right:
columnNameIsIn(
columnNames: [geometryColRhs, rhs-1],
) - Distance: 1641
- Join key: (
geometryColLhs,geometryColRhs) - Left dataset: ri.foundry.main.dataset.left
- Projected coordinate system: epsg:2868
- Right dataset: ri.foundry.main.dataset.right
- Prefix for columns from right: null
Inputs:
ri.foundry.main.dataset.left
| geometryColLhs | lhs-1 |
|---|---|
| {"coordinates": [-112.14843750000001,33.440609443703586], "type":"Point"} | 42.0 |
| null | 43.0 |
ri.foundry.main.dataset.right
| geometryColRhs | rhs-1 |
|---|---|
| {"coordinates": [-112.14560508728029,33.44082430962016], "type":"Point"} | rhsVal1 |
| {"coordinates": [-112.11796760559083,33.440895931474124], "type":"Point"} | rhsVal2 |
Output:
| geometryColLhs | lhs-1 | geometryColRhs | rhs-1 |
|---|---|---|---|
| {"coordinates": [-112.14843750000001,33.440609443703586], "type":"Point"} | 42.0 | {"coordinates": [-112.14560508728029,33.44082430962016], "type":"Point"} | rhsVal1 |
| null | 43.0 | null | null |
Example 4: Base case¶
Argument values:
- Condition for columns to select on the left:
columnNameIsIn(
columnNames: [geometryColLhs, lhs-1],
) - Condition for columns to select on the right:
columnNameIsIn(
columnNames: [geometryColRhs, rhs-1],
) - Distance: 1641
- Join key: (
geometryColLhs,geometryColRhs) - Left dataset: ri.foundry.main.dataset.left
- Projected coordinate system: epsg:2868
- Right dataset: ri.foundry.main.dataset.right
- Prefix for columns from right: null
Inputs:
ri.foundry.main.dataset.left
| geometryColLhs | lhs-1 |
|---|---|
| {"coordinates": [-112.14843750000001,33.440609443703586], "type":"Point"} | 42.0 |
| null | 43.0 |
ri.foundry.main.dataset.right
| geometryColRhs | rhs-1 |
|---|---|
| {"coordinates": [-112.14560508728029,33.44082430962016], "type":"Point"} | rhsVal1 |
| {"coordinates": [-112.11796760559083,33.440895931474124], "type":"Point"} | rhsVal2 |
Output:
| geometryColLhs | lhs-1 | geometryColRhs | rhs-1 |
|---|---|---|---|
| {"coordinates": [-112.14843750000001,33.440609443703586], "type":"Point"} | 42.0 | {"coordinates": [-112.14560508728029,33.44082430962016], "type":"Point"} | rhsVal1 |
| null | 43.0 | null | null |
Example 5: Null case¶
Argument values:
- Condition for columns to select on the left:
columnNameIsIn(
columnNames: [geometryColLhs, lhs-1],
) - Condition for columns to select on the right:
columnNameIsIn(
columnNames: [geometryColRhs, rhs-1],
) - Distance: 1640.42
- Join key: (
geometryColLhs,geometryColRhs) - Left dataset: ri.foundry.main.dataset.left
- Projected coordinate system: EPSG:2868
- Right dataset: ri.foundry.main.dataset.right
- Prefix for columns from right: null
Inputs:
ri.foundry.main.dataset.left
| geometryColLhs | lhs-1 |
|---|---|
| {"coordinates": [-112.14843750000001,33.440609443703586], "type":"Point"} | 42.0 |
| null | 43.0 |
ri.foundry.main.dataset.right
| geometryColRhs | rhs-1 |
|---|---|
| {"coordinates": [-112.14560508728029,33.44082430962016], "type":"Point"} | rhsVal1 |
| {"coordinates": [-112.11796760559083,33.440895931474124], "type":"Point"} | rhsVal2 |
| null | rhsVal3 |
Output:
| geometryColLhs | lhs-1 | geometryColRhs | rhs-1 |
|---|---|---|---|
| {"coordinates": [-112.14843750000001,33.440609443703586], "type":"Point"} | 42.0 | {"coordinates": [-112.14560508728029,33.44082430962016], "type":"Point"} | rhsVal1 |
| null | 43.0 | null | null |
中文翻译¶
地理距离左连接(Geo distance left join)¶
支持:批处理(Batch)
当输入几何图形之间的距离小于或等于指定距离时,对数据集执行左连接。在连接之前,内部会将几何图形转换为给定的投影坐标参考系统,然后再转换回WGS84。
转换类别:地理空间(Geospatial),连接(Join)
声明参数(Declared arguments)¶
- 左侧列选择条件(Condition for columns to select on the left): 左侧输入模式中的所有列都将被测试是否匹配此条件。如果匹配,该列将被选中输出。
ColumnPredicate - 右侧列选择条件(Condition for columns to select on the right): 右侧输入模式中的所有列都将被测试是否匹配此条件。如果匹配,该列将被选中输出。
ColumnPredicate - 距离(Distance): 连接几何图形的距离范围,单位与坐标参考系统相同。
Literal\ - 连接键(Join key): 用于连接的左侧和右侧输入的geojson列。
Tuple\, Column\\ > - 左侧数据集(Left dataset): 用于连接的左侧数据集。
Table - 投影坐标系统(Projected coordinate system): 输入几何图形将在连接前转换为此坐标系统,距离将以给定坐标系统的单位进行测量。格式为"authority:id",例如UTM zone 18N可表示为EPSG:32618。
Literal\ - 右侧数据集(Right dataset): 用于连接的右侧数据集。
Table - 可选 右侧列前缀(Prefix for columns from right): 添加到右侧所有列的前缀。
Literal\
示例(Examples)¶
示例1:基本情况¶
参数值:
- 左侧列选择条件:
columnNameIsIn(
columnNames: [geometryColLhs, lhs-1],
) - 右侧列选择条件:
columnNameIsIn(
columnNames: [geometryColRhs, rhs-1],
) - 距离: 1640.42
- 连接键: (
geometryColLhs,geometryColRhs) - 左侧数据集: ri.foundry.main.dataset.left
- 投影坐标系统: epsg:2868
- 右侧数据集: ri.foundry.main.dataset.right
- 右侧列前缀: null
输入:
ri.foundry.main.dataset.left
| geometryColLhs | lhs-1 |
|---|---|
| {"coordinates": [-112.14843750000001,33.440609443703586], "type":"Point"} | 42.0 |
| null | 43.0 |
ri.foundry.main.dataset.right
| geometryColRhs | rhs-1 |
|---|---|
| {"coordinates": [-112.14560508728029,33.44082430962016], "type":"Point"} | rhsVal1 |
| {"coordinates": [-112.11796760559083,33.440895931474124], "type":"Point"} | rhsVal2 |
输出:
| geometryColLhs | lhs-1 | geometryColRhs | rhs-1 |
|---|---|---|---|
| {"coordinates": [-112.14843750000001,33.440609443703586], "type":"Point"} | 42.0 | {"coordinates": [-112.14560508728029,33.44082430962016], "type":"Point"} | rhsVal1 |
| null | 43.0 | null | null |
示例2:基本情况¶
参数值:
- 左侧列选择条件:
columnNameIsIn(
columnNames: [geometryColLhs, lhs-1],
) - 右侧列选择条件:
columnNameIsIn(
columnNames: [geometryCol, col1, arrayCol],
) - 距离: 10.0
- 连接键: (
geometryColLhs,geometryCol) - 左侧数据集: ri.foundry.main.dataset.left
- 投影坐标系统: EPSG:4326
- 右侧数据集: ri.foundry.main.dataset.right
- 右侧列前缀: rhs_
输入:
ri.foundry.main.dataset.left
| geometryColLhs | lhs-1 |
|---|---|
| {"type":"Polygon","coordinates":[[[0.0,0.0],[0.0,10.0],[10.0,10.0],[10.0,0.0],[0.0,0.0]]]} | 42.0 |
| {"coordinates": [55.0, 5.0], "type":"Point"} | 43.0 |
| {"coordinates": [[25.0, 0.0], [0.0, 25.0]], "type":"LineString"} | 44.0 |
ri.foundry.main.dataset.right
| geometryCol | col1 | arrayCol |
|---|---|---|
| {"coordinates": [[[20.0, 10.0], [27.0, 10.0], [27.0, 17.0], [20.0, 17.0], [20.0, 10.0]]], "type": "Polygon"} | rhsVal1 | [ 0.0, 1.0 ] |
| {"coordinates": [[[21.0, 21.0], [27.0, 21.0], [27.0, 27.0], [21.0, 27.0], [21.0, 21.0]]], "type": "Polygon"} | rhsVal2 | [ 0.0, 1.0 ] |
| {"coordinates": [0.0, 0.0], "type":"Point"} | rhsVal3 | [ 0.0, 1.0 ] |
| {"coordinates": [10.0, 10.0], "type":"Point"} | rhsVal4 | [ 0.0, 1.0 ] |
| {"coordinates": [14.0, 14.0], "type":"Point"} | rhsVal5 | [ 0.0, 1.0 ] |
| {"coordinates": [25.0, 25.0], "type":"Point"} | rhsVal6 | [ 0.0, 1.0 ] |
输出:
| geometryColLhs | lhs-1 | rhs_geometryCol | rhs_col1 | rhs_arrayCol |
|---|---|---|---|---|
| {"type":"Polygon","coordinates":[[[0.0,0.0],[0.0,10.0],[10.0,10.0],[10.0,0.0],[0.0,0.0]]]} | 42.0 | {"coordinates": [[[20.0, 10.0], [27.0, 10.0], [27.0, 17.0], [20.0, 17.0], [20.0, 10.0]]], "type": "Polygon"} | rhsVal1 | [ 0.0, 1.0 ] |
| {"coordinates": [55.0, 5.0], "type":"Point"} | 43.0 | null | null | null |
| {"coordinates": [[25.0, 0.0], [0.0, 25.0]], "type":"LineString"} | 44.0 | {"coordinates": [[[20.0, 10.0], [27.0, 10.0], [27.0, 17.0], [20.0, 17.0], [20.0, 10.0]]], "type": "Polygon"} | rhsVal1 | [ 0.0, 1.0 ] |
| {"coordinates": [[25.0, 0.0], [0.0, 25.0]], "type":"LineString"} | 44.0 | {"coordinates": [10.0, 10.0], "type":"Point"} | rhsVal4 | [ 0.0, 1.0 ] |
| {"coordinates": [[25.0, 0.0], [0.0, 25.0]], "type":"LineString"} | 44.0 | {"coordinates": [14.0, 14.0], "type":"Point"} | rhsVal5 | [ 0.0, 1.0 ] |
| {"type":"Polygon","coordinates":[[[0.0,0.0],[0.0,10.0],[10.0,10.0],[10.0,0.0],[0.0,0.0]]]} | 42.0 | {"coordinates": [10.0, 10.0], "type":"Point"} | rhsVal4 | [ 0.0, 1.0 ] |
| {"type":"Polygon","coordinates":[[[0.0,0.0],[0.0,10.0],[10.0,10.0],[10.0,0.0],[0.0,0.0]]]} | 42.0 | {"coordinates": [0.0, 0.0], "type":"Point"} | rhsVal3 | [ 0.0, 1.0 ] |
| {"type":"Polygon","coordinates":[[[0.0,0.0],[0.0,10.0],[10.0,10.0],[10.0,0.0],[0.0,0.0]]]} | 42.0 | {"coordinates": [14.0, 14.0], "type":"Point"} | rhsVal5 | [ 0.0, 1.0 ] |
示例3:基本情况¶
参数值:
- 左侧列选择条件:
columnNameIsIn(
columnNames: [geometryColLhs, lhs-1],
) - 右侧列选择条件:
columnNameIsIn(
columnNames: [geometryColRhs, rhs-1],
) - 距离: 1641
- 连接键: (
geometryColLhs,geometryColRhs) - 左侧数据集: ri.foundry.main.dataset.left
- 投影坐标系统: epsg:2868
- 右侧数据集: ri.foundry.main.dataset.right
- 右侧列前缀: null
输入:
ri.foundry.main.dataset.left
| geometryColLhs | lhs-1 |
|---|---|
| {"coordinates": [-112.14843750000001,33.440609443703586], "type":"Point"} | 42.0 |
| null | 43.0 |
ri.foundry.main.dataset.right
| geometryColRhs | rhs-1 |
|---|---|
| {"coordinates": [-112.14560508728029,33.44082430962016], "type":"Point"} | rhsVal1 |
| {"coordinates": [-112.11796760559083,33.440895931474124], "type":"Point"} | rhsVal2 |
输出:
| geometryColLhs | lhs-1 | geometryColRhs | rhs-1 |
|---|---|---|---|
| {"coordinates": [-112.14843750000001,33.440609443703586], "type":"Point"} | 42.0 | {"coordinates": [-112.14560508728029,33.44082430962016], "type":"Point"} | rhsVal1 |
| null | 43.0 | null | null |
示例4:基本情况¶
参数值:
- 左侧列选择条件:
columnNameIsIn(
columnNames: [geometryColLhs, lhs-1],
) - 右侧列选择条件:
columnNameIsIn(
columnNames: [geometryColRhs, rhs-1],
) - 距离: 1641
- 连接键: (
geometryColLhs,geometryColRhs) - 左侧数据集: ri.foundry.main.dataset.left
- 投影坐标系统: epsg:2868
- 右侧数据集: ri.foundry.main.dataset.right
- 右侧列前缀: null
输入:
ri.foundry.main.dataset.left
| geometryColLhs | lhs-1 |
|---|---|
| {"coordinates": [-112.14843750000001,33.440609443703586], "type":"Point"} | 42.0 |
| null | 43.0 |
ri.foundry.main.dataset.right
| geometryColRhs | rhs-1 |
|---|---|
| {"coordinates": [-112.14560508728029,33.44082430962016], "type":"Point"} | rhsVal1 |
| {"coordinates": [-112.11796760559083,33.440895931474124], "type":"Point"} | rhsVal2 |
输出:
| geometryColLhs | lhs-1 | geometryColRhs | rhs-1 |
|---|---|---|---|
| {"coordinates": [-112.14843750000001,33.440609443703586], "type":"Point"} | 42.0 | {"coordinates": [-112.14560508728029,33.44082430962016], "type":"Point"} | rhsVal1 |
| null | 43.0 | null | null |
示例5:空值情况¶
参数值:
- 左侧列选择条件:
columnNameIsIn(
columnNames: [geometryColLhs, lhs-1],
) - 右侧列选择条件:
columnNameIsIn(
columnNames: [geometryColRhs, rhs-1],
) - 距离: 1640.42
- 连接键: (
geometryColLhs,geometryColRhs) - 左侧数据集: ri.foundry.main.dataset.left
- 投影坐标系统: EPSG:2868
- 右侧数据集: ri.foundry.main.dataset.right
- 右侧列前缀: null
输入:
ri.foundry.main.dataset.left
| geometryColLhs | lhs-1 |
|---|---|
| {"coordinates": [-112.14843750000001,33.440609443703586], "type":"Point"} | 42.0 |
| null | 43.0 |
ri.foundry.main.dataset.right
| geometryColRhs | rhs-1 |
|---|---|
| {"coordinates": [-112.14560508728029,33.44082430962016], "type":"Point"} | rhsVal1 |
| {"coordinates": [-112.11796760559083,33.440895931474124], "type":"Point"} | rhsVal2 |
| null | rhsVal3 |
输出:
| geometryColLhs | lhs-1 | geometryColRhs | rhs-1 |
|---|---|---|---|
| {"coordinates": [-112.14843750000001,33.440609443703586], "type":"Point"} | 42.0 | {"coordinates": [-112.14560508728029,33.44082430962016], "type":"Point"} | rhsVal1 |
| null | 43.0 | null | null |