ST_AREA

ST_AREA

ST_AREA는 GEOGRAPHY 또는 GEOMETRY 객체 안의 폴리곤(Polygon)들의 면적을 반환하는 지리 공간 함수예요.

출처: Snowflake SQL Reference

본문

카테고리: 지리 공간 함수

구문 (Syntax)

ST_AREA( <geography_or_geometry_expression> )

인자 (Arguments)

<geography_or_geometry_expression> — 인자는 GEOGRAPHY 또는 GEOMETRY 타입이어야 해요.

반환값 (Returns)

면적을 나타내는 REAL 값을 반환해요:

  • GEOGRAPHY 입력 값의 경우 면적은 제곱미터 단위예요.
  • GEOMETRY 입력 값의 경우 면적은 입력 좌표를 정의할 때 사용한 것과 같은 단위로 계산돼요.

사용 시 유의사항 (Usage notes)

  • geography_expression이 폴리곤을 포함하는 Polygon, MultiPolygon, GeometryCollection이 아니라면 ST_AREA는 0을 반환해요.
  • geography_expression이 GeometryCollection이라면 ST_AREA는 컬렉션 안 폴리곤들의 면적 합을 반환해요.

예시 (Examples)

GEOGRAPHY 예시

이 예시는 GEOGRAPHY 객체에 ST_AREA 함수를 사용해, 적도에 아랫변이 있고 각 변이 1도인 지구 표면의 면적을 계산해요:

SELECT ST_AREA(TO_GEOGRAPHY('POLYGON((0 0, 1 0, 1 1, 0 1, 0 0))')) AS area;
+------------------+
|             AREA |
|------------------|
| 12364036567.0764 |
+------------------+

GEOMETRY 예시

다음 예시는 Point, LineString, Polygon을 나타내는 GEOMETRY 객체에 ST_AREA 함수를 호출해요.

SELECT ST_AREA(g), ST_ASWKT(g)
FROM (SELECT TO_GEOMETRY(column1) as g
  from values ('POINT(1 1)'),
              ('LINESTRING(0 0, 1 1)'),
              ('POLYGON((0 0, 0 1, 1 1, 1 0, 0 0))'));
+------------+--------------------------------+
| ST_AREA(G) | ST_ASWKT(G)                    |
|------------+--------------------------------|
|          0 | POINT(1 1)                     |
|          0 | LINESTRING(0 0,1 1)            |
|          1 | POLYGON((0 0,0 1,1 1,1 0,0 0)) |
+------------+--------------------------------+

더 알아보기