카테고리:

지리공간 함수

ST_DISTANCE

GEOGRAPHY 사이의 최소 측지 거리 또는 두 GEOMETRY 오브젝트 사이의 최소 유클리드 거리를 반환합니다.

구문

ST_DISTANCE( <geography_or_geometry_expression_1> , <geography_or_geometry_expression_2> )
Copy

인자

geography_or_geometry_expression_1

인자는 GEOGRAPHY 또는 GEOMETRY 형식이어야 합니다.

geography_or_geometry_expression_2

인자는 GEOGRAPHY 또는 GEOMETRY 형식이어야 합니다.

반환

거리를 나타내는 FLOAT 값 또는 NULL 을 반환합니다.

  • GEOGRAPHY 입력값의 경우 거리는 미터 단위입니다.

  • GEOMETRY 입력값의 경우 거리는 입력 좌표를 정의하는 데 사용되는 것과 동일한 단위로 계산됩니다.

  • 입력 지점 중 하나 이상이 NULL인 경우, NULL을 반환합니다.

사용법 노트

  • GEOMETRY 오브젝트의 경우 두 입력 GEOMETRY 오브젝트의 SRID가 서로 다른 경우 함수에서 오류를 보고합니다.

다음 예제에서는 ST_DISTANCE 함수를 사용합니다.

GEOGRAPHY 예

이는 적도를 따라 1도 떨어진 두 지점 사이의 거리를 미터 단위로 보여줍니다(약 111 킬로미터 또는 69 마일).

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

하나 이상의 입력 값이 NULL일 때 ST_DISTANCE 함수의 출력을 표시합니다.

SELECT ST_DISTANCE(ST_MAKEPOINT(0, 0), ST_MAKEPOINT(NULL, NULL)) AS null_input;
Copy
+------------+
| NULL_INPUT |
|------------|
|       NULL |
+------------+

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;
Copy
+-------------------+--------------------+
| GEOMETRY_DISTANCE | GEOGRAPHY_DISTANCE |
|-------------------+--------------------|
|       1.414213562 |   157249.628092508 |
+-------------------+--------------------+

추가적인 예를 보려면 GEOGRAPHY 및 GEOMETRY 데이터 타입을 비교하는 예 섹션을 참조하십시오.