ST_MakePolygon
ST_MakePolygon에는 다각형을 반환하는 두 가지 변형이 있습니다. 하나는 단일 지오메트리를 사용하고 다른 하나는 2개의 지오메트리를 사용합니다.
첫 번째 변형의 입력은 출력 다각형의 외부 링을 정의하는 라인스트링입니다.
두 번째 변형의 입력은 라인스트링과 다중 라인스트링입니다. 둘 다 비어 있거나 닫혀 있습니다.
출력 다각형의 외부 링 경계는 입력 라인스트링이고 다각형의 내부 링 경계는 입력 다중 라인스트링의 라인스트링입니다. 입력 라인스트링이 비어 있으면 빈 다각형이 반환됩니다. 다중 라인스트링의 빈 라인스트링은 무시됩니다. 결과 지오메트리의 공간 참조 시스템 식별자(SRID)는 두 입력 지오메트리의 공통 SRID입니다.
반환된 지오메트리의 차원은 입력 지오메트리의 차원과 같습니다. 외부 링과 내부 링의 차원이 같아야 합니다.
구문
ST_MakePolygon(geom1)
ST_MakePolygon(geom1, geom2)
인수
- geom1
-
GEOMETRY
데이터 형식의 값 또는GEOMETRY
형식으로 계산되는 표현식입니다. 하위 유형은LINESTRING
이어야 합니다. linestring 값은 닫혀 있거나 비어 있어야 합니다. - geom2
-
GEOMETRY
데이터 형식의 값 또는GEOMETRY
형식으로 계산되는 표현식입니다. 하위 유형은MULTILINESTRING
이어야 합니다.
반환 타입
POLYGON
하위 유형의 GEOMETRY
입니다.
반환된 지오메트리의 공간 참조 시스템 식별자(SRID)는 입력의 SRID와 같습니다.
geom1 또는 geom2가 null이면 null이 반환됩니다.
geom1이 라인스트링이 아니면 오류가 반환됩니다.
geom2가 다중 라인스트링이 아니면 오류가 반환됩니다.
geom1이 닫히지 않으면 오류가 반환됩니다.
geom1이 단일 점이거나 닫혀 있지 않으면 오류가 반환됩니다.
geom2에 단일 점이 있거나 닫혀 있지 않은 라인스트링이 하나 이상 포함되어 있으면 오류가 반환됩니다.
geom1과 geom2의 SRID 값이 다른 경우 오류가 반환됩니다.
geom1과 geom2의 차원이 다른 경우 오류가 반환됩니다.
예제
다음 SQL은 입력 라인스트링에서 다각형을 반환합니다.
SELECT ST_AsText(ST_MakePolygon(ST_GeomFromText('LINESTRING(77.29 29.07,77.42 29.26,77.27 29.31,77.29 29.07)')));
st_astext
---------------
POLYGON((77.29 29.07,77.42 29.26,77.27 29.31,77.29 29.07))
다음 SQL은 닫힌 라인스트링과 닫힌 다중 라인스트링에서 다각형을 생성합니다. 라인스트링은 다각형의 외부 링에 사용됩니다. 다중 라인스트링의 라인스트링은 다각형의 내부 링에 사용됩니다.
SELECT ST_AsEWKT(ST_MakePolygon(ST_GeomFromText('LINESTRING(0 0,10 0,10 10,0 10,0 0)'), ST_GeomFromText('MULTILINESTRING((1 1,1 2,2 1,1 1),(3 3,3 4,4 3,3 3))')));
st_astext
----------------------------------
POLYGON((0 0,10 0,10 10,0 10,0 0),(1 1,1 2,2 1,1 1),(3 3,3 4,4 3,3 3))