ST_MAKEPOLYGON
함수는 Google BigQuery의 GIS 기능에서 사용되는 함수로, 지리적 선형(LineString) 객체를 사용하여 다각형(Polygon) 지리 객체를 생성하는 데 사용됩니다. 이 함수는 WGS84 좌표계를 사용하여 지리적 다각형을 정의합니다. 아래에서는 ST_MAKEPOLYGON
함수에 대한 상세한 설명과 예시를 제공하겠습니다.
함수 설명
ST_MAKEPOLYGON
함수는 LINESTRING
을 입력으로 받아 다각형을 생성합니다. 이 LINESTRING
은 다각형의 외곽 경계를 정의하며, 닫힌 형태여야 합니다(즉, 첫 번째 점과 마지막 점이 동일해야 함).
ST_MAKEPOLYGON(linestring)
예시
다음은 ST_MAKEPOLYGON
함수를 사용하여 다각형을 생성하는 예시입니다.
예시 1: 단순 다각형 생성
-- 닫힌 선형 객체를 사용하여 다각형 생성
SELECT ST_MAKEPOLYGON(ST_GeogFromText('LINESTRING(30 10, 40 40, 20 40, 10 20, 30 10)')) AS polygon;
위 쿼리를 실행하면 다음과 같은 결과를 얻을 수 있습니다:
+-------------------------------------------------------------+
| polygon |
+-------------------------------------------------------------+
| POLYGON((30 10, 40 40, 20 40, 10 20, 30 10)) |
+-------------------------------------------------------------+
활용 예시
ST_MAKEPOLYGON
함수는 다양한 GIS 분석에서 유용하게 사용됩니다. 예를 들어, 특정 영역을 정의하고 그 안에 포함되는 지점을 분석하거나, 지리적 데이터를 시각화할 때 활용할 수 있습니다.
영역 정의 및 포함 관계 분석
특정 다각형 영역 내에 포함된 지점을 찾는 예시입니다.
-- 특정 다각형 영역 내에 포함된 지점을 찾기
WITH polygon AS (
SELECT ST_MAKEPOLYGON(ST_GeogFromText('LINESTRING(30 10, 40 40, 20 40, 10 20, 30 10)')) AS area
),
points AS (
SELECT ST_GEOGPOINT(35, 30) AS point1, ST_GEOGPOINT(50, 50) AS point2
)
SELECT
ST_WITHIN(point1, area) AS point1_within,
ST_WITHIN(point2, area) AS point2_within
FROM polygon, points;
위 쿼리를 실행하면 특정 지점들이 다각형 영역 내에 있는지 확인할 수 있습니다.
복잡한 다각형 생성
내부 구멍이 있는 다각형을 생성하는 예시입니다. 이를 위해서는 외곽 경계와 내부 구멍 경계를 정의하는 선형 객체가 필요합니다.
-- 외곽 경계와 내부 구멍을 정의하여 복잡한 다각형 생성
WITH
outer_boundary AS (
SELECT ST_GeogFromText('LINESTRING(0 0, 10 0, 10 10, 0 10, 0 0)') AS outer
),
inner_boundary AS (
SELECT ST_GeogFromText('LINESTRING(2 2, 8 2, 8 8, 2 8, 2 2)') AS inner
)
SELECT ST_MAKEPOLYGON(outer, [inner]) AS complex_polygon;
위 쿼리를 실행하면 내부에 구멍이 있는 복잡한 다각형을 생성할 수 있습니다.
이와 같이 ST_MAKEPOLYGON
함수는 BigQuery에서 지리적 데이터를 분석하고 다양한 다각형 지리 객체를 생성하는 데 필수적인 함수로, 다양한 GIS 작업에 활용할 수 있습니다.
'🖥️ IT, 컴퓨터 > 🏁 SQL・빅쿼리' 카테고리의 다른 글
[GIS] ST_BUFFER 함수 :: 버퍼 (0) | 2024.07.03 |
---|---|
[GIS] ST_GEOGFROMTEXT 함수 :: 텍스트를 GEOGRAPHY 객체로 (0) | 2024.07.03 |
[GIS] ST_MAKELINE 함수 (0) | 2024.06.27 |
[GIS] ST_GEOGPOINT 함수 (0) | 2024.06.27 |
[BigQuery] Geo Viz :: 빅쿼리에서 바로 지도 띄워 확인하는 법 (0) | 2024.06.21 |
댓글