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

Geo intersection inner join

サポート対象: バッチ、ストリーミング

入力ジオメトリが重なるかどうかに基づいて左と右のデータセットを内部結合します。接触するジオメトリも結果に含まれます。

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

引数

  • 左の列を選択するための条件 - 左の入力スキーマ内のすべての列がこの条件に一致するかどうかテストされます。一致する場合、列は出力に選択されます。
    ColumnPredicate
  • 右の列を選択するための条件 - 右の入力スキーマ内のすべての列がこの条件に一致するかどうかテストされます。一致する場合、列は出力に選択されます。
    ColumnPredicate
  • 結合キー - 結合する左と右の入力からのGeoJSON列。
    Tuple<Column<Geometry>, Column<Geometry>>
  • 左のデータセット - 結合で使用する左のデータセット。
    Table
  • 右のデータセット - 結合で使用する右のデータセット。
    Table
  • オプション 右の列に追加するプレフィックス - 右側のすべての列に追加するプレフィックス。
    Literal<String>

例 1: 基本ケース

引数の値:

  • 左の列を選択するための条件:
    allColumns(

    )
  • 右の列を選択するための条件:
    allColumns(

    )
  • 結合キー: (geometryColLhs, geometryColRhs)
  • 左のデータセット: ri.foundry.main.dataset.left
  • 右のデータセット: ri.foundry.main.dataset.right
  • 右の列に追加するプレフィックス: null

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

geometryColLhscol1Lhs
{"coordinates": [[[0.0, 0.0], [10.0, 0.0], [10.0, 10.0], [0.0, 10.0], [0.0, 0.0]]], "type": "Polygon"}42.0

ri.foundry.main.dataset.right

geometryColRhscol1Rhs
{"coordinates": [[[2.0, 2.0], [7.0, 2.0], [7.0, 7.0], [2.0, 7.0], [2.0, 2.0]]], "type": "Polygon"}rhsVal1
{"coordinates": [[[12.0, 12.0], [17.0, 12.0], [17.0, 17.0], [12.0, 17.0], [12.0, 12.0]]], "type": "Polygon"}rhsVal2
{"coordinates": [0.0, 0.0], "type":"Point"}rhsVal3
{"coordinates": [15.0, 15.0], "type":"Point"}rhsVal4
{"coordinates": [[-1.0, -1.0], [5.0, 5.0]], "type":"LineString"}rhsVal5
{"coordinates": [[20.0, 20.0], [21.0, 23.0]], "type":"LineString"}rhsVal6
{"coordinates": [[-1.0, -1.0], [5.0, 5.0]], "type":"LineString"}rhsVal7
{"coordinates": [[20.0, 20.0], [21.0, 23.0]], "type":"LineString"}rhsVal8
{"coordinates": [[[[2.0, 2.0], [7.0, 2.0], [7.0, 7.0], [2.0, 7.0], [2.0, 2.0]]], [[[12.0, 12.0], [17.0, 12.0], [17.0, 17.0], [12.0, 17.0], [12.0, 12.0]]]], "type":"MultiPolygon"}rhsVal9
{"coordinates": [[[[170.0, 170.0], [190.0, 170.0], [190.0, 190.0], [170.0, 190.0], [170.0, 170.0]]], [[[12.0, 12.0], [17.0, 12.0], [17.0, 17.0], [12.0, 17.0], [12.0, 12.0]]]], "type":"MultiPolygon"}rhsVal10

出力:

geometryColLhscol1LhsgeometryColRhscol1Rhs
{"coordinates": [[[0.0, 0.0], [10.0, 0.0], [10.0, 10.0], [0.0, 10.0], [0.0, 0.0]]], "type": "Polygon"}42.0{"coordinates": [[[2.0, 2.0], [7.0, 2.0], [7.0, 7.0], [2.0, 7.0], [2.0, 2.0]]], "type": "Polygon"}rhsVal1
{"coordinates": [[[0.0, 0.0], [10.0, 0.0], [10.0, 10.0], [0.0, 10.0], [0.0, 0.0]]], "type": "Polygon"}42.0{"coordinates": [0.0, 0.0], "type":"Point"}rhsVal3
{"coordinates": [[[0.0, 0.0], [10.0, 0.0], [10.0, 10.0], [0.0, 10.0], [0.0, 0.0]]], "type": "Polygon"}42.0{"coordinates": [[-1.0, -1.0], [5.0, 5.0]], "type":"LineString"}rhsVal5
{"coordinates": [[[0.0, 0.0], [10.0, 0.0], [10.0, 10.0], [0.0, 10.0], [0.0, 0.0]]], "type": "Polygon"}42.0{"coordinates": [[-1.0, -1.0], [5.0, 5.0]], "type":"LineString"}rhsVal7
{"coordinates": [[[0.0, 0.0], [10.0, 0.0], [10.0, 10.0], [0.0, 10.0], [0.0, 0.0]]], "type": "Polygon"}42.0{"coordinates": [[[[2.0, 2.0], [7.0, 2.0], [7.0, 7.0], [2.0, 7.0], [2.0, 2.0]]], [[[12.0, 12.0], [17.0, 12.0], [17.0, 17.0], [12.0, 17.0], [12.0, 12.0]]]], "type":"MultiPolygon"}rhsVal9

例 2: 基本ケース

引数の値:

  • 左の列を選択するための条件:
    allColumns(

    )
  • 右の列を選択するための条件:
    allColumns(

    )
  • 結合キー: (geometryColLhs, geometryColRhs)
  • 左のデータセット: ri.foundry.main.dataset.left
  • 右のデータセット: ri.foundry.main.dataset.right
  • 右の列に追加するプレフィックス: null

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

geometryColLhslhs1
{}42.0
{"coordinates": [[[0.0, 0.0], [10.0, 0.0], [10.0, 10.0], [0.0, 10.0], [0.0, 0.0]]], "type": "Polygon"}43.0

ri.foundry.main.dataset.right

geometryColRhsrhs1
{"coordinates": [[[2.0, 2.0], [7.0, 2.0], [7.0, 7.0], [2.0, 7.0], [2.0, 2.0]]], "type": "Polygon"}rhsVal1

出力:

geometryColLhslhs1geometryColRhsrhs1
{"coordinates": [[[0.0, 0.0], [10.0, 0.0], [10.0, 10.0], [0.0, 10.0], [0.0, 0.0]]], "type": "Polygon"}43.0{"coordinates": [[[2.0, 2.0], [7.0, 2.0], [7.0, 7.0], [2.0, 7.0], [2.0, 2.0]]], "type": "Polygon"}rhsVal1

例 3: 基本ケース

引数の値:

  • 左の列を選択するための条件:
    allColumns(

    )
  • 右の列を選択するための条件:
    allColumns(

    )
  • 結合キー: (geometryColLhs, geometryColRhs)
  • 左のデータセット: ri.foundry.main.dataset.left
  • 右のデータセット: ri.foundry.main.dataset.right
  • 右の列に追加するプレフィックス: right_

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

geometryColLhscol1Lhs
{"coordinates": [[[0.0, 0.0], [10.0, 0.0], [10.0, 10.0], [0.0, 10.0], [0.0, 0.0]]], "type": "Polygon"}42.0

ri.foundry.main.dataset.right

geometryColRhscol1Rhs
{"coordinates": [[[2.0, 2.0], [7.0, 2.0], [7.0, 7.0], [2.0, 7.0], [2.0, 2.0]]], "type": "Polygon"}rhsVal1

出力:

geometryColLhscol1Lhsright_geometryColRhsright_col1Rhs
{"coordinates": [[[0.0, 0.0], [10.0, 0.0], [10.0, 10.0], [0.0, 10.0], [0.0, 0.0]]], "type": "Polygon"}42.0{"coordinates": [[[2.0, 2.0], [7.0, 2.0], [7.0, 7.0], [2.0, 7.0], [2.0, 2.0]]], "type": "Polygon"}rhsVal1

例 4: 基本ケース

引数の値:

  • 左の列を選択するための条件:
    columnNameIsIn(
     columnNames: [geometryColLhs],
    )
  • 右の列を選択するための条件:
    columnNameIsIn(
     columnNames: [geometryColRhs],
    )
  • 結合キー: (geometryColLhs, geometryColRhs)
  • 左のデータセット: ri.foundry.main.dataset.left
  • 右のデータセット: ri.foundry.main.dataset.right
  • 右の列に追加するプレフィックス: null

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

geometryColLhscol1Lhs
{"coordinates": [[[0.0, 0.0], [10.0, 0.0], [10.0, 10.0], [0.0, 10.0], [0.0, 0.0]]], "type": "Polygon"}42.0

ri.foundry.main.dataset.right

geometryColRhscol1Rhs
{"coordinates": [[[2.0, 2.0], [7.0, 2.0], [7.0, 7.0], [2.0, 7.0], [2.0, 2.0]]], "type": "Polygon"}rhsVal1

出力:

geometryColLhsgeometryColRhs
{"coordinates": [[[0.0, 0.0], [10.0, 0.0], [10.0, 10.0], [0.0, 10.0], [0.0, 0.0]]], "type": "Polygon"}{"coordinates": [[[2.0, 2.0], [7.0, 2.0], [7.0, 7.0], [2.0, 7.0], [2.0, 2.0]]], "type": "Polygon"}

例 5: Nullケース

引数の値:

  • 左の列を選択するための条件:
    allColumns(

    )
  • 右の列を選択するための条件:
    allColumns(

    )
  • 結合キー: (geometryColLhs, geometryColRhs)
  • 左のデータセット: ri.foundry.main.dataset.left
  • 右のデータセット: ri.foundry.main.dataset.right
  • 右の列に追加するプレフィックス: null

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

geometryColLhslhs1
null42.0
{"coordinates": [[[0.0, 0.0], [10.0, 0.0], [10.0, 10.0], [0.0, 10.0], [0.0, 0.0]]], "type": "Polygon"}43.0

ri.foundry.main.dataset.right

geometryColRhsrhs1
{"coordinates": [[[2.0, 2.0], [7.0, 2.0], [7.0, 7.0], [2.0, 7.0], [2.0, 2.0]]], "type": "Polygon"}rhsVal1
{"coordinates": [0.0, 0.0], "type":"Point"}rhsVal2
nullrhsVal3

出力:

geometryColLhslhs1geometryColRhsrhs1
{"coordinates": [[[0.0, 0.0], [10.0, 0.0], [10.0, 10.0], [0.0, 10.0], [0.0, 0.0]]], "type": "Polygon"}43.0{"coordinates": [[[2.0, 2.0], [7.0, 2.0], [7.0, 7.0], [2.0, 7.0], [2.0, 2.0]]], "type": "Polygon"}rhsVal1
{"coordinates": [[[0.0, 0.0], [10.0, 0.0], [10.0, 10.0], [0.0, 10.0], [0.0, 0.0]]], "type": "Polygon"}43.0{"coordinates": [0.0, 0.0], "type":"Point"}rhsVal2

例 6: Nullケース

引数の値:

  • 左の列を選択するための条件:
    allColumns(

    )
  • 右の列を選択するための条件:
    allColumns(

    )
  • 結合キー: (geometryColLhs, geometryColRhs)
  • 左のデータセット: ri.foundry.main.dataset.left
  • 右のデータセット: ri.foundry.main.dataset.right
  • 右の列に追加するプレフィックス: null

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

geometryColLhslhs1
null42.0
{"coordinates": [[[0.0, 0.0], [10.0, 0.0], [10.0, 10.0], [0.