카테고리:

지리 공간 함수

ST_MAKEPOLYGONORIENTED

구멍이 없는 다각형을 나타내는 GEOGRAPHY 오브젝트를 생성합니다. 함수는 지정된 LineString을 외부 루프로 사용합니다.

이 함수는 루프의 방향을 수정하려고 시도하지 않으므로 지구의 절반 이상에 걸치게 되는 다각형을 만들 수 있습니다. 반대로, ST_MAKEPOLYGON 은 그와 같이 큰 도형의 방향을 반전시킵니다.

참고 항목:

TO_GEOGRAPHY, ST_MAKEPOLYGON

구문

ST_MAKEPOLYGONORIENTED( <geography_expression> )
Copy

인자

geography_expression

마지막 점이 첫 번째 점과 동일한(즉, 루프) LineString을 나타내는 GEOGRAPHY 오브젝트입니다.

반환

함수는 GEOGRAPHY 형식의 값을 반환합니다.

사용법 노트

  • 다각형의 선은 루프를 형성해야 합니다. 즉, LineString을 정의하는 점으로 구성된 시퀀스의 마지막 점이 시퀀스의 첫 번째 점과 동일한 점이어야 합니다.

  • 루프를 따라 가면서 다각형의 내부는 왼쪽에 있고 다각형의 외부는 오른쪽에 있어야 합니다.

다음 예제에서는 ST_MAKEPOLYGONORIENTED 함수의 사용 방법을 보여줍니다. 아래의 점 시퀀스는 너비가 1도이고 높이가 2도인 측지 직사각형 영역을 정의합니다. 다각형의 왼쪽 아래 모서리는 적도(위도)와 그리니치(경도)에서 시작합니다. 시퀀스의 마지막 점은 루프를 완료하는 첫 번째 점과 동일합니다.

이 예에서는 다각형의 GEOGRAPHY 오브젝트를 ST_AREA 함수에 전달하여 다각형의 면적을 반환합니다.

SELECT ST_AREA(
  ST_MAKEPOLYGONORIENTED(
    TO_GEOGRAPHY('LINESTRING(0.0 0.0, 1.0 0.0, 1.0 2.0, 0.0 2.0, 0.0 0.0)')
  )
) AS area_of_polygon;

+------------------+
|  AREA_OF_POLYGON |
|------------------|
| 24724306355.5504 |
+------------------+
Copy

다음 예는 도형은 같지만 방향이 반대입니다. 다각형 면적의 차이에서 알 수 있듯이, 이 다각형은 이전의 도형을 제외한 전체 지구를 나타냅니다.

SELECT ST_AREA(
  ST_MAKEPOLYGONORIENTED(
    TO_GEOGRAPHY('LINESTRING(0.0 0.0, 0.0 2.0, 1.0 2.0, 1.0 0.0, 0.0 0.0)')
  )
) AS area_of_polygon;

+-----------------+
| AREA_OF_POLYGON |
|-----------------|
| 510041348811633 |
+-----------------+
Copy