注: 以下の翻訳の正確性は検証されていません。AIPを利用して英語版の原文から機械的に翻訳されたものです。

GeoPoint-to-GeoPoint 3d 距離内部結合

サポート対象: バッチ

ポイント ジオメトリ間の距離に基づいて、左と右のデータセットを内部結合します。ジオメトリはポイントを表す必要があり、z座標を含めることができます。内部的には、結合前にジオメトリを指定された投影座標リファレンスシステムに変換し、その後WGS84に戻します。ポイント以外のジオメトリは無視され、右データセット全体がドライバーとエグゼキューターのメモリに収まる必要があります。3 GBのエグゼキューターは、ネイバーズデータセット内の最大400万ポイントを処理できます。

トランスフォームカテゴリ: ジオスペーシャル、結合

引数

  • 左側で選択する列の条件 - 左入力スキーマのすべての列がこの条件に一致するかテストされます。一致する場合、列は出力に選択されます。
    ColumnPredicate
  • 右側で選択する列の条件 - 右入力スキーマのすべての列がこの条件に一致するかテストされます。一致する場合、列は出力に選択されます。
    ColumnPredicate
  • 距離 - ジオメトリを結合する距離。座標リファレンスシステムと同じ単位で表されます。
    Literal<DefiniteNumeric>
  • 結合キー - 左と右の入力から結合するgeojson列。
    Tuple<Column<Geometry>, Column<Geometry>>
  • 左データセット - 結合に使用する左データセット。
    Table
  • 投影座標システム - 結合前に入力ジオメトリがこの座標システムに変換され、距離が指定された座標システムの単位で測定されます。「authority」としてフォーマットされます。たとえば、UTMゾーン18NはEPSG:32618で識別できます。
    Literal<String>
  • 右データセット - 結合に使用する右データセット。
    Table
  • z座標を使用する - z座標を含めて3次元距離を計算するかどうか。falseの場合、z座標は無視され、2次元距離が計算されます。
    Literal<Boolean>
  • オプション 右側の列に対するプレフィックス - 右側のすべての列に追加するプレフィックス。
    Literal<String>

例 1: 基本ケース

引数の値:

  • 左側で選択する列の条件:
    columnNameIsIn(
     columnNames: [geometryColLhs, lhs-1],
    )
  • 右側で選択する列の条件:
    columnNameIsIn(
     columnNames: [geometryCol, arrayCol],
    )
  • 距離: 2.5
  • 結合キー: (geometryColLhs, geometryCol)
  • 左データセット: ri.foundry.main.dataset.left
  • 投影座標システム: EPSG:4326
  • 右データセット: ri.foundry.main.dataset.right
  • z座標を使用する: false
  • 右側の列に対するプレフィックス: rhs_

入力: ri.foundry.main.dataset.left

geometryColLhslhs-1
{"coordinates": [0.0, 0.0, 0.0], "type":"Point"}42.0
{"coordinates": [0.0, 0.0, 5.0], "type":"Point"}43.0
{"coordinates": [0.0, 0.0], "type":"Point"}44.0

ri.foundry.main.dataset.right

geometryColcol1arrayCol
{"coordinates": [0.0, 0.0, 2.0], "type":"Point"}rhsVal1[ 0.0, 1.0 ]
{"coordinates": [0.0, 1.0], "type":"Point"}rhsVal2[ 0.0, 1.0 ]

出力:

geometryColLhslhs-1rhs_geometryColrhs_arrayCol
{"coordinates": [0.0, 0.0, 0.0], "type":"Point"}42.0{"coordinates": [0.0, 0.0, 2.0], "type":"Point"}[ 0.0, 1.0 ]
{"coordinates": [0.0, 0.0, 0.0], "type":"Point"}42.0{"coordinates": [0.0, 1.0], "type":"Point"}[ 0.0, 1.0 ]
{"coordinates": [0.0, 0.0, 5.0], "type":"Point"}43.0{"coordinates": [0.0, 0.0, 2.0], "type":"Point"}[ 0.0, 1.0 ]
{"coordinates": [0.0, 0.0, 5.0], "type":"Point"}43.0{"coordinates": [0.0, 1.0], "type":"Point"}[ 0.0, 1.0 ]
{"coordinates": [0.0, 0.0], "type":"Point"}44.0{"coordinates": [0.0, 0.0, 2.0], "type":"Point"}[ 0.0, 1.0 ]
{"coordinates": [0.0, 0.0], "type":"Point"}44.0{"coordinates": [0.0, 1.0], "type":"Point"}[ 0.0, 1.0 ]

例 2: 基本ケース

引数の値:

  • 左側で選択する列の条件:
    columnNameIsIn(
     columnNames: [geometryColLhs, lhs-1],
    )
  • 右側で選択する列の条件:
    columnNameIsIn(
     columnNames: [geometryCol, arrayCol],
    )
  • 距離: 2.5
  • 結合キー: (geometryColLhs, geometryCol)
  • 左データセット: ri.foundry.main.dataset.left
  • 投影座標システム: EPSG:4326
  • 右データセット: ri.foundry.main.dataset.right
  • z座標を使用する: true
  • 右側の列に対するプレフィックス: rhs_

入力: ri.foundry.main.dataset.left

geometryColLhslhs-1
{"coordinates": [0.0, 0.0, 0.0], "type":"Point"}42.0
{"coordinates": [0.0, 0.0, 5.0], "type":"Point"}43.0
{"coordinates": [0.0, 5.0], "type":"Point"}44.0

ri.foundry.main.dataset.right

geometryColcol1arrayCol
{"coordinates": [0.0, 0.0, 2.0], "type":"Point"}rhsVal1[ 0.0, 1.0 ]
{"coordinates": [1.0, 1.0, 6.0], "type":"Point"}rhsVal2[ 0.0, 1.0 ]
{"coordinates": [0.0, 0.0, 3.0], "type":"Point"}rhsVal3[ 0.0, 1.0 ]
{"coordinates": [0.0, 0.0], "type":"Point"}rhsVal4[ 0.0, 1.0 ]

出力:

geometryColLhslhs-1rhs_geometryColrhs_arrayCol
{"coordinates": [0.0, 0.0, 0.0], "type":"Point"}42.0{"coordinates": [0.0, 0.0, 2.0], "type":"Point"}[ 0.0, 1.0 ]
{"coordinates": [0.0, 0.0, 5.0], "type":"Point"}43.0{"coordinates": [0.0, 0.0, 3.0], "type":"Point"}[ 0.0, 1.0 ]
{"coordinates": [0.0, 0.0, 5.0], "type":"Point"}43.0{"coordinates": [1.0, 1.0, 6.0], "type":"Point"}[ 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
  • z座標を使用する: false
  • 右側の列に対するプレフィックス: null

入力: ri.foundry.main.dataset.left

geometryColLhslhs-1
{"coordinates": [-112.14843750000001,33.440609443703586], "type":"Point"}42.0
null43.0

ri.foundry.main.dataset.right

geometryColRhsrhs-1
{"coordinates": [-112.14560508728029,33.44082430962016], "type":"Point"}rhsVal1
{"coordinates": [-112.11796760559083,33.440895931474124], "type":"Point"}rhsVal2

出力:

geometryColLhslhs-1geometryColRhsrhs-1
{"coordinates": [-112.14843750000001,33.440609443703586], "type":"Point"}42.0{"coordinates": [-112.14560508728029,33.44082430962016], "type":"Point"}rhsVal1

例 4: 基本ケース

引数の値:

  • 左側で選択する列の条件:
    columnNameIsIn(
     columnNames: [geometryColLhs, lhs-1],
    )
  • 右側で選択する列の条件:
    columnNameIsIn(
     columnNames: [],
    )
  • 距離: 10.0
  • 結合キー: (geometryColLhs, geometryCol)
  • 左データセット: ri.foundry.main.dataset.left
  • 投影座標システム: EPSG:4326
  • 右データセット: ri.foundry.main.dataset.right
  • z座標を使用する: false
  • 右側の列に対するプレフィックス: rhs_

入力: ri.foundry.main.dataset.left

geometryColLhslhs-1
{"coordinates": [15.0, 5.0], "type":"Point"}42.0
{"coordinates": [55.0, 5.0], "type":"Point"}43.0

ri.foundry.main.dataset.right

geometryColcol1arrayCol
{"coordinates": [15.0, 5.0], "type":"Point"}rhsVal1[ 0.0, 1.0 ]

出力:

geometryColLhslhs-1
{"coordinates": [15.0, 5.0], "type":"Point"}42.0

例 5: 基本ケース

引数の値:

  • 左側で選択する列の条件:
    columnNameIsIn(
     columnNames: [],
    )
  • 右側で選択する列の条件:
    columnNameIsIn(
     columnNames: [geometryCol, arrayCol],
    )
  • 距離: 10.0
  • 結合キー: (geometryColLhs, geometryCol)
  • 左データセット: ri.foundry.main.dataset.left
  • 投影座標システム: EPSG:4326
  • 右データセット: ri.foundry.main.dataset.right
  • z座標を使用する: false
  • 右側の列に対するプレフィックス: rhs_

入力: ri.foundry.main.dataset.left

geometryColLhslhs-1
{"coordinates": [15.0, 5.0], "type":"Point"}42.0
{"coordinates": [55.0, 5.0], "type":"Point"}43.0

ri.foundry.main.dataset.right

geometryColcol1arrayCol
{"coordinates": [55.0, 5.0], "type":"Point"}rhsVal1[ 0.0, 1.0 ]

出力:

rhs_geometryColrhs_arrayCol
{"coordinates": [55.0, 5.0], "type":"Point"}[ 0.0, 1.0 ]

例 6: Nullケース

引数の値:

  • 左側で選択する列の条件:
    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
  • z座標を使用する: false
  • 右側の列に対するプレフィックス: rhs_

入力: ri.foundry.main.dataset.left

geometryColLhslhs-1
{"coordinates": [15.0, 5.0], "type":"Point"}42.0
{"coordinates": [55.0, 5.0], "type":"Point"}43.0
{"coordinates": [[[20.0, 10.0], [27.0, 10.0], [27.0, 17.0], [20.0, 17.0], [20.0, 10.0]]], "type": "Polygon"}44.0
null45.0

ri.foundry.main.dataset.right

geometryColcol1arrayCol
{"coordinates": [15.0, 5.0], "type":"Point"}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": [[[20.0, 10.0], [27.0, 10.0], [27.0, 17.0], [20.0, 17.0], [20.0, 10.0]]], "type": "Polygon"}rhsVal3[ 0.0, 1.0 ]
nullrhsVal4[ 0.0, 1.0 ]

出力:

geometryColLhslhs-1rhs_geometryColrhs_col1rhs_arrayCol
{"coordinates": [15.0, 5.0], "type":"Point"}42.