Keyboard shortcuts

Press ← or → to navigate between chapters

Press ? to show this help

Press Esc to hide this help

후속 처리를 위한 도형 준비

항목값
화면 이름Prepare geometry
식별자normalizeGeometryV4
지원 실행 방식Batch, Streaming
범주지리공간 (Geospatial)
반환 자료형Geometry | Struct<ok:Geometry, error:String>

도형 문자열을 유효한 GeoJSON으로 변환하여 온톨로지 인덱싱 같은 후속 처리에 준비합니다. 다각형을 닫고 중복을 제거합니다. 너비가 180도를 넘어 날짜 변경선을 가로지르는 것으로 판단한 도형은 양쪽의 여러 feature로 나눕니다. 기본 모드는 변환 결과 또는 변환 실패 시 null을 반환하며, show errors 모드는 해석한 결과나 설명형 오류 메시지를 담은 구조체를 반환합니다.

입력 인자

이름지정 여부자료형의미와 조건
Geometry string필수Expression<String>해석하여 GeoJSON으로 변환할 도형 문자열입니다.
Output mode선택Enum<Simple, With errors>변환한 도형 또는 오류 시 null을 반환하는 simple 모드와 결과 구조체 중 선택합니다. 구조체는 성공한 도형을 ok, 변환할 수 없는 경우의 설명형 오류를 error 필드에 담습니다.

입출력 예시

예시 1: 기본 동작

인자 값:

  • Geometry string: geometry
  • Output mode: null
geometry출력
{"type":"Polygon","coordinates":[[[0.0,0.0],[10.0,0.0],[10.0,10.0],[0.0,10.0],[0.0,0.0]]]}{"type":"Polygon","coordinates":[[[0.0,0.0],[0.0,10.0],[10.0,10.0],[10.0,0.0],[0.0,0.0]]]}
{"type":"Polygon","coordinates":[[[0.0,0.0,1.0],[1.0,0.0,1.0],[0.0,1.0,1.0],[0.0,0.0,1.0]]]}{"type":"Polygon","coordinates":[[[0.0,0.0,1.0],[0.0,1.0,1.0],[1.0,0.0,1.0],[0.0,0.0,1.0]]]}
{"type":"Polygon","coordinates":[[[0.0,0.0],[1.0,0.0], [0.0,1.0]]]}{"type":"Polygon","coordinates":[[[0.0,0.0],[0.0,1.0],[1.0,0.0],[0.0,0.0]]]}
{"type":"Polygon","coordinates":[[[0.0,0.0],[1.0,0.0], [1.0,0.0], [0.0,1.0], [0.0,0.0]]]}{"type":"Polygon","coordinates":[[[0.0,0.0],[0.0,1.0],[1.0,0.0],[0.0,0.0]]]}
{"type":"Polygon","coordinates":[[[179.0,-30.0],[-179.0,-30.0],[-179.0,30.0],[179.0,30.0],[179.0,-30]]]}{"type":"MultiPolygon","coordinates":[[[[-180.0,-30.0],[-180.0,30.0],[-179.0,30.0],[-179.0,-30.0],[-180.0,-30.0]]],[[[180.0,30.0],[180.0,-30.0],[179.0,-30.0],[179.0,30.0],[180.0,30.0]]]]}
{"type":"LineString","coordinates":[[179.0,30.0],[-179.0,30.0]]}{"type":"MultiLineString","coordinates":[[[179.0,30.0],[180.0,30.0]],[[-180.0,30.0],[-179.0,30.0]]]}
{"type":"GeometryCollection","geometries":[{"type":"LineString","coordinates":[[40.0,10.0],[0.0,1.0]...{"type":"GeometryCollection","geometries":[{"type":"LineString","coordinates":[[40.0,10.0],[0.0,1.0]...
{"type":"GeometryCollection","geometries":[{"type":"Point","coordinates":[1.0,0.0]},{"type":"LineString","coordinates":[[179.0,30.0],[-179.0,30.0]]}]}{"type":"GeometryCollection","geometries":[{"type":"Point","coordinates":[1.0,0.0]},{"type":"MultiLineString","coordinates":[[[179.0,30.0],[180.0,30.0]],[[-180.0,30.0],[-179.0,30.0]]]}]}
{"type":"GeometryCollection","geometries":[{"type":"LineString","coordinates":[[0.0,0.0],[1.0,0.0]]}...{"type":"MultiLineString","coordinates":[[[0.0,0.0],[1.0,0.0]],[[1.0,1.0],[2.0,1.0]]]}
{"type":"GeometryCollection","geometries":[{"type":"MultiLineString","coordinates":[[[0.0,0.0],[1.0,0.0]],[],[[1.0,1.0],[2.0,1.0]]]},{"type":"MultiPoint","coordinates":[[0.0,0.0],[1.0,1.0]]}]}{"geometries":[{"coordinates":[[[0.0,0.0],[1.0,0.0]],[[1.0,1.0],[2.0,1.0]]],"type":"MultiLineString"},{"coordinates":[[0.0,0.0],[1.0,1.0]],"type":"MultiPoint"}],"type":"GeometryCollection"}
{"type":"MultiPolygon","coordinates":[[[[1.0,1.0],[2.0,1.0],[2.0,2.0],[1.0,2.0],[1.0,1.0]]],[[]],[[[10.0,10.0],[20.0,10.0],[20.0,20.0],[10.0,20.0],[10.0,10.0]]]]}{"type":"MultiPolygon","coordinates":[[[[1.0,2.0],[2.0,2.0],[2.0,1.0],[1.0,1.0],[1.0,2.0]]],[[[10.0,20.0],[20.0,20.0],[20.0,10.0],[10.0,10.0],[10.0,20.0]]]]}

예시 2: 기본 동작

인자 값:

  • Geometry string: geometry
  • Output mode: null
geometry출력
{"type":"MultiPolygon","coordinates":[[[[102.0,2.0],[102.0,3.0],[103.0,3.0],[103.0,2.0],[102.0,2.0]]]]}{"type":"Polygon","coordinates":[[[102.0,2.0],[102.0,3.0],[103.0,3.0],[103.0,2.0],[102.0,2.0]]]}
{"type":"MultiPolygon","coordinates":[[[]],[[[102.0,2.0],[103.0,2.0],[103.0,3.0],[102.0,3.0],[102.0,2.0]]]]}{"type":"Polygon","coordinates":[[[102.0,2.0],[102.0,3.0],[103.0,3.0],[103.0,2.0],[102.0,2.0]]]}
{"type":"FeatureCollection","features":[{"geometry":{"type":"MultiPolygon","coordinates":[[[[0.0,0.0],[0.0,1.0],[1.0,0.0],[0.0,0.0]]]]},"properties":{"gaccname":"namehere"},"type":"Feature"}]}{"type":"Polygon","coordinates":[[[0.0,0.0],[0.0,1.0],[1.0,0.0],[0.0,0.0]]]}
{"type":"GeometryCollection","geometries":[{"type":"LineString","coordinates":[[40.0,11.0],[0.0,1.0]]},{"type":"LineString","coordinates":[[10.0,10.0],[20.0,20.0],[10.0,40.0]]}]}{"type":"MultiLineString","coordinates":[[[40.0,11.0],[0.0,1.0]],[[10.0,10.0],[20.0,20.0],[10.0,40.0]]]}

예시 3: 기본 동작

인자 값:

  • Geometry string: geometry
  • Output mode: null
geometry출력
{"type":"Polygon","coordinates":[[[0.0,0.0],[1.0,1.0],[0.0,1.0], [1.0,0.0], [0.0,0.0]]]}{"type":"MultiPolygon","coordinates":[[[[0.0,0.0],[0.5,0.5],[1.0,0.0],[0.0,0.0]]],[[[0.5,0.5],[0.0,1.0],[1.0,1.0],[0.5,0.5]]]]}
{"type":"Polygon","coordinates":[[[0.0,0.0],[2.0,0.0],[1.0,1.0],[2.0,2.0],[0.0,2.0],[1.0,1.0],[0.0,0.0]]]}{"type":"MultiPolygon","coordinates":[[[[0.0,0.0],[1.0,1.0],[2.0,0.0],[0.0,0.0]]],[[[1.0,1.0],[0.0,2.0],[2.0,2.0],[1.0,1.0]]]]}
{"type":"Polygon","coordinates":[[[0.0,0.0],[2.0,0.0],[2.0,2.0],[0.0,2.0],[0.0,0.0]],[[0.0,0.0],[2.0,0.0],[1.0,1.0],[0.0,0.0]]]}{"type":"Polygon","coordinates":[[[0.0,2.0],[2.0,2.0],[2.0,0.0],[1.0,1.0],[0.0,0.0],[0.0,2.0]]]}
{"type":"Polygon","coordinates":[[[0.0,0.0],[1.0,0.0],[1.0,1.0],[0.0,1.0],[0.0,0.0]],[[3.0,3.0],[4.0,3.0],[4.0,4.0],[3.0,4.0],[3.0,3.0]]]}{"type":"MultiPolygon","coordinates":[[[[0.0,1.0],[1.0,1.0],[1.0,0.0],[0.0,0.0],[0.0,1.0]]],[[[3.0,4.0],[4.0,4.0],[4.0,3.0],[3.0,3.0],[3.0,4.0]]]]}

예시 4: null 처리

인자 값:

  • Geometry string: geometry
  • Output mode: with_errors
geometry출력
null{
 error: Input is null,
 ok: null,
}
Not geojson{
 error: Input string could not be parsed as GeoJSON,
 ok: null,
}
{"type":"Polygon","coordinates":[[[0.0,0.0],[1.0,0.0,1.0],[0.0,1.0],[0.0,0.0]]]}{
 error: Coordinate dimension is mixed,
 ok: null,
}
{"type":"LineString","coordinates":[[0.0,0.0]]}{
 error: Invalid number of points in LineString (found 1 - must be 0 or >= 2),
 ok: null,
}
{"type":"Polygon","coordinates":[[[0.0,0.0],[1.0,91.0],[0.0,1.0],[0.0,0.0]]]}{
 error: Coordinates out-of-bounds. Latitudes must fall in [-90, 90] and longitudes in [-180, 180],
 ok: null,
}
{"type":"Polygon","coordinates":[[[0.0,-90.1],[1.0,0.0],[0.0,1.0],[0.0,0.0]]]}{
 error: Coordinates out-of-bounds. Latitudes must fall in [-90, 90] and longitudes in [-180, 180],
 ok: null,
}
{"type":"Polygon","coordinates":[[[0.0,0.0],[181.0,89.0],[0.0,1.0],[0.0,0.0]]]}{
 error: Coordinates out-of-bounds. Latitudes must fall in [-90, 90] and longitudes in [-180, 180],
 ok: null,
}
{"type":"Polygon","coordinates":[[[0.0,0.0],[-182.0,89.0],[0.0,1.0],[0.0,0.0]]]}{
 error: Coordinates out-of-bounds. Latitudes must fall in [-90, 90] and longitudes in [-180, 180],
 ok: null,
}
{"type":"Polygon","coordinates":[]}{
 error: Expected polygon to contain at least one ring,
 ok: null,
}

예시 5: null 처리

인자 값:

  • Geometry string: geometry
  • Output mode: null
geometry출력
{"type":"Polygon","coordinates":[[]]}null

예시 6: 경계 조건

인자 값:

  • Geometry string: geometry
  • Output mode: null
geometry출력
{"coordinates": [[[-191.9065788394177,5.453742403668187],[-191.9065788394177,-11.163604962907428],[-...{"type":"MultiPolygon","coordinates":[[[[-180.0,-11.163604962907428],[-180.0,5.453742403668187],[-15...

예시 7: 경계 조건

인자 값:

  • Geometry string: geometry
  • Output mode: null
geometry출력
{"type":"LineString","coordinates":[[1.0, 1.0], [1.0, 1.0], [1.0, 1.0]]}{"type":"Point","coordinates":[1.0,1.0]}

예시 8: 경계 조건

인자 값:

  • Geometry string: geometry
  • Output mode: null
geometry출력
{"type":"MultiPolygon","coordinates":[[[[0.0,0.0],[1.0,0.0],[0.0,0.0]]],[[[102.0,2.0],[103.0,2.0],[103.0,3.0],[102.0,3.0],[102.0,2.0]]]]}{"type":"GeometryCollection","geometries":[{"type":"LineString","coordinates":[[0.0,0.0],[1.0,0.0]]},{"type":"Polygon","coordinates":[[[102.0,2.0],[102.0,3.0],[103.0,3.0],[103.0,2.0],[102.0,2.0]]]}]}

예시 9: 경계 조건

인자 값:

  • Geometry string: geometry
  • Output mode: null
geometry출력
{"type":"GeometryCollection","geometries":[{"type":"GeometryCollection","geometries":[{"type":"GeometryCollection","geometries":[{"type":"Point","coordinates":[-122.4000,37.8000]}]}]}]}{"coordinates":[-122.4, 37.8], "type":"Point"}
{"type":"GeometryCollection","geometries":[{"type":"GeometryCollection","geometries":[{"type":"Geome...{"coordinates":[-122.4, 37.8], "type":"Point"}

예시 10: 경계 조건

인자 값:

  • Geometry string: geometry
  • Output mode: with_errors
geometry출력
{"type":"GeometryCollection","geometries":[{"type":"GeometryCollection","geometries":[{"type":"GeometryCollection","geometries":[{"type":"Point","coordinates":[-122.4000,37.8000]}]}]}]}{
 error: null,
 ok: {"type":"Point","coordinates":[-122.4,37.8]},
}
{"type":"GeometryCollection","geometries":[{"type":"GeometryCollection","geometries":[{"type":"Geome...{
 error: null,
 ok: {"type":"Point","coordinates":[-122.4,37.8]},
}
{"type":"GeometryCollection","geometries":[{"type":"GeometryCollection","geometries":[{"type":"Multi...{
 error: null,
 ok: {"type":"MultiLineString","coordinates":[[[-122.36,37...
{"type":"GeometryCollection","geometries":[{"type":"GeometryCollection","geometries":[{"type":"MultiPoint","coordinates":[[-122.4100,37.8100],[-122.4200,37.8200],[-122.4300,37.8300]]}]}]}{
 error: null,
 ok: {"type":"MultiPoint","coordinates":[[-122.41,37.81],[-122.42,37.82],[-122.43,37.83]]},
}

긴 구조값 안의 줄임표는 생략한 내용을 나타냅니다.