Keyboard shortcuts

Press ← or → to navigate between chapters

Press ? to show this help

Press Esc to hide this help

도형 교차 조인

항목값
화면 이름Geometry intersection join
식별자geoIntersectionJoinV1
지원 실행 방식Batch
범주지리공간 (Geospatial), 조인 (Join)

도형이 교차하는 조인 키 쌍에 대해 양쪽의 모든 열을 포함한 행을 반환하는 내부 조인입니다. 여러 조인 키는 지원하지 않습니다. null 도형 키의 행은 제외하고 잘못된 GeoJSON 키는 null로 처리합니다. 양쪽 데이터셋의 열 이름은 서로 달라야 합니다.

입력 인자

이름지정 여부자료형의미와 조건
Join key필수List<Tuple<Column<Geometry>, Column<Geometry>>>왼쪽과 오른쪽 GeoJSON 열쌍의 목록입니다. 열쌍의 도형이 교차하면 행을 선택합니다. 이 변환의 현재 지원 범위는 조인 키 한 쌍입니다.
Left dataset필수Table조인에 사용할 왼쪽 데이터셋입니다.
Right dataset필수Table조인에 사용할 오른쪽 데이터셋입니다.

입출력 예시

예시 1: 기본 동작

인자 값:

  • Join key: [(geometryColLhs, geometryColRhs)]
  • Left dataset: ri.foundry.main.dataset.left
  • Right dataset: ri.foundry.main.dataset.right

입력:

ri.foundry.main.dataset.left

geometryColLhslhs-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

ri.foundry.main.dataset.right

geometryColRhsrhs-1
{"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

출력:

geometryColLhslhs-1geometryColRhsrhs-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": [[[2.0, 2.0], [7.0, 2.0], [7.0, 7.0], [2.0, 7.0], [2.0, 2.0]]], "type": "Polygon"}rhsVal1
{"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
{"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": [[-1.0, -1.0], [5.0, 5.0]], "type":"LineString"}rhsVal5
{"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": [[-1.0, -1.0], [5.0, 5.0]], "type":"LineString"}rhsVal7
{"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": [[[[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: 기본 동작

인자 값:

  • Join key: [(geometryColLhs, geometryColRhs)]
  • Left dataset: ri.foundry.main.dataset.left
  • Right dataset: ri.foundry.main.dataset.right

입력:

ri.foundry.main.dataset.left

geometryColLhslhs1
{}42.0
{"type":"Polygon","coordinates":[[[0.0,0.0],[0.0,10.0],[10.0,10.0],[10.0,0.0],[0.0,0.0]]]}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
{"type":"Polygon","coordinates":[[[0.0,0.0],[0.0,10.0],[10.0,10.0],[10.0,0.0],[0.0,0.0]]]}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: null 처리

인자 값:

  • Join key: [(geometryColLhs, geometryColRhs)]
  • Left dataset: ri.foundry.main.dataset.left
  • Right dataset: ri.foundry.main.dataset.right

입력:

ri.foundry.main.dataset.left

geometryColLhslhs1
null42.0
{"type":"Polygon","coordinates":[[[0.0,0.0],[0.0,10.0],[10.0,10.0],[10.0,0.0],[0.0,0.0]]]}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
{"type":"Polygon","coordinates":[[[0.0,0.0],[0.0,10.0],[10.0,10.0],[10.0,0.0],[0.0,0.0]]]}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
{"type":"Polygon","coordinates":[[[0.0,0.0],[0.0,10.0],[10.0,10.0],[10.0,0.0],[0.0,0.0]]]}43.0{"coordinates": [0.0, 0.0], "type":"Point"}rhsVal2

예시 4: null 처리

인자 값:

  • Join key: [(geometryColLhs, geometryColRhs)]
  • Left dataset: ri.foundry.main.dataset.left
  • Right dataset: ri.foundry.main.dataset.right

입력:

ri.foundry.main.dataset.left

geometryColLhslhs1
null42.0
{"type":"Polygon","coordinates":[[[0.0,0.0],[0.0,10.0],[10.0,10.0],[10.0,0.0],[0.0,0.0]]]}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
{"type":"Polygon","coordinates":[[[0.0,0.0],[0.0,10.0],[10.0,10.0],[10.0,0.0],[0.0,0.0]]]}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

예시 5: 경계 조건

인자 값:

  • Join key: [(geometryColLhs, geometryColRhs)]
  • Left dataset: ri.foundry.main.dataset.left
  • Right dataset: ri.foundry.main.dataset.right

입력:

ri.foundry.main.dataset.left

geometryColLhslhs1
{"coordinates": [[[170.0, 170.0], [190.0, 170.0], [190.0, 190.0], [170.0, 190.0], [170.0, 170.0]]], "type": "Polygon"}42.0

ri.foundry.main.dataset.right

geometryColRhsrhs1
{"coordinates": [[[175.0, 175.0], [195.0, 175.0], [195.0, 195.0], [175.0, 195.0], [175.0, 175.0]]], "type": "Polygon"}rhsVal1

출력:

geometryColLhslhs1geometryColRhsrhs1
{"coordinates": [[[170.0, 170.0], [190.0, 170.0], [190.0, 190.0], [170.0, 190.0], [170.0, 170.0]]], "type": "Polygon"}42.0{"coordinates": [[[175.0, 175.0], [195.0, 175.0], [195.0, 195.0], [175.0, 195.0], [175.0, 175.0]]], "type": "Polygon"}rhsVal1

예시 6: 경계 조건

인자 값:

  • Join key: [(geometryColLhs, geometryColRhs)]
  • Left dataset: ri.foundry.main.dataset.left
  • Right dataset: ri.foundry.main.dataset.right

입력:

ri.foundry.main.dataset.left

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

ri.foundry.main.dataset.right

geometryColRhsrhs1
{"coordinates": [[[0.0, 5.0], [2.5, 7.5], [4.0, 5.0], [2.5, 2.5], [0.0, 5.0]]], "type":"Polygon"}rhsVal1
{"coordinates": [[[0.0, 5.0], [2.0, 7.0], [4.0, 5.0], [2.0, 3.0], [0.0, 5.0]]], "type":"Polygon"}rhsVal2

출력:

geometryColLhslhs1geometryColRhsrhs1
{"coordinates": [[[0.0, 0.0], [5.0, 5.0], [0.0, 10.0], [10.0, 5.0], [0.0, 0.0]]], "type":"Polygon"}42.0{"coordinates": [[[0.0, 5.0], [2.5, 7.5], [4.0, 5.0], [2.5, 2.5], [0.0, 5.0]]], "type":"Polygon"}rhsVal1

예시 7: 경계 조건

인자 값:

  • Join key: [(geometryColLhs, geometryColRhs)]
  • Left dataset: ri.foundry.main.dataset.left
  • Right dataset: ri.foundry.main.dataset.right

입력:

ri.foundry.main.dataset.left

geometryColLhs
{"coordinates": [0.0, 0.0], "type":"Point"}

ri.foundry.main.dataset.right

geometryColRhs
{"coordinates": [0.0, 0.0], "type":"Point"}
{"coordinates": [15.0, 15.0], "type":"Point"}

출력:

geometryColLhsgeometryColRhs
{"coordinates": [0.0, 0.0], "type":"Point"}{"coordinates": [0.0, 0.0], "type":"Point"}

예시 8: 경계 조건

인자 값:

  • Join key: [(geometryColLhs, geometryColRhs)]
  • Left dataset: ri.foundry.main.dataset.left
  • Right dataset: ri.foundry.main.dataset.right

입력:

ri.foundry.main.dataset.left

geometryColLhslhs1
{"coordinates": [0.0, 0.0], "type":"Point"}42.0

ri.foundry.main.dataset.right

geometryColRhsrhs1
{"coordinates": [0.0, 0.0], "type":"Point"}rhsVal1
{"coordinates": [15.0, 15.0], "type":"Point"}rhsVal2

출력:

geometryColLhslhs1geometryColRhsrhs1
{"coordinates": [0.0, 0.0], "type":"Point"}42.0{"coordinates": [0.0, 0.0], "type":"Point"}rhsVal1

예시 9: 경계 조건

인자 값:

  • Join key: [(geometryColLhs, geometryColRhs)]
  • Left dataset: ri.foundry.main.dataset.left
  • Right dataset: ri.foundry.main.dataset.right

입력:

ri.foundry.main.dataset.left

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

ri.foundry.main.dataset.right

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

출력:

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