ST_DISTANCE

ST_DISTANCE

두 GEOGRAPHY 객체 사이의 최소 대권 거리(great circle distance) 또는 두 GEOMETRY 객체 사이의 최소 유클리드 거리를 반환하는 지리 공간 함수예요.

출처: Snowflake SQL Reference

본문

ST_DISTANCE( <geography_or_geometry_expression_1> , <geography_or_geometry_expression_2> )

두 인자 모두 GEOGRAPHY 또는 GEOMETRY 타입이어야 해요.

반환값 — 거리를 나타내는 FLOAT 값 또는 NULL을 반환해요.

  • GEOGRAPHY 입력이면 거리는 미터 단위에요.
  • GEOMETRY 입력이면 거리는 입력 좌표를 정의할 때 쓴 것과 같은 단위로 계산돼요.
  • 입력 포인트 중 하나 이상이 NULL이면 NULL을 반환해요.

사용 메모 — GEOMETRY 객체의 경우 두 입력 GEOMETRY 객체의 SRID가 다르면 오류를 보고해요.

예시 (GEOGRAPHY) — 적도를 따라 1도 떨어진 두 지점 사이의 거리(약 111km 또는 69마일)를 미터로 보여줄게요.

WITH d AS
  ( ST_DISTANCE(ST_MAKEPOINT(0, 0), ST_MAKEPOINT(1, 0)) )
SELECT d / 1000 AS kilometers, d / 1609 AS miles;
+---------------+--------------+
|    KILOMETERS |        MILES |
|---------------+--------------|
| 111.195101177 | 69.108204585 |
+---------------+--------------+

예시 (GEOMETRY) — GEOGRAPHY와 GEOMETRY 입력에 대해 계산된 거리를 비교:

SELECT ST_DISTANCE(TO_GEOMETRY('POINT(0 0)'), TO_GEOMETRY('POINT(1 1)')) AS geometry_distance,
  ST_DISTANCE(TO_GEOGRAPHY('POINT(0 0)'), TO_GEOGRAPHY('POINT(1 1)')) AS geography_distance;
+-------------------+--------------------+
| GEOMETRY_DISTANCE | GEOGRAPHY_DISTANCE |
|-------------------+--------------------|
|       1.414213562 |   157249.628092508 |
+-------------------+--------------------+

더 알아보기 (Learn more)