ST_DISTANCE
ST_DISTANCE
두 GEOGRAPHY 객체 사이의 최소 대권 거리(great circle distance) 또는 두 GEOMETRY 객체 사이의 최소 유클리드 거리를 반환하는 지리 공간 함수예요.
본문
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 |
+-------------------+--------------------+