🖥️ IT, 컴퓨터/🏁 SQL・빅쿼리

[GIS] ST_MAKEPOLYGON 함수

김 홍시 2024. 6. 27.
반응형

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 작업에 활용할 수 있습니다.

반응형

댓글