HAVERSINE
HAVERSINE
Haversine 공식을 사용해 지구 표면 위 두 지점 사이의 대권 거리(great-circle distance)를 킬로미터 단위로 계산해요. 두 지점은 십진 도(decimal degrees)로 된 위도와 경도로 지정해요.
참고: Snowflake는 HAVERSINE 함수 대신 ST_DISTANCE 함수 사용을 권장해요. ST_DISTANCE 함수는 지리 공간 타입 값을 사용해 계산을 수행하므로, 지리 공간 데이터를 저장하고 그 데이터에 지리 공간 함수를 사용할 수 있어요. 또한 ST_DISTANCE 함수를 사용하는 조인 조건은 HAVERSINE 함수를 사용하는 조인 조건보다 성능이 더 좋아요.
본문
구문
HAVERSINE( <lat1>, <lon1>, <lat2>, <lon2> )
인자
lat1
- 첫 번째 지점의 위도를 십진 도로 나타낸 값이에요.
lon1
- 첫 번째 지점의 경도를 십진 도로 나타낸 값이에요.
lat2
- 두 번째 지점의 위도를 십진 도로 나타낸 값이에요.
lon2
- 두 번째 지점의 경도를 십진 도로 나타낸 값이에요.
반환 값
이 함수는 FLOAT 타입의 값을 반환해요.
예시
다음 예시는 뉴욕과 로스앤젤레스 사이의 지리 공간 거리를 킬로미터 단위로 반환해요.
SELECT HAVERSINE(
40.7127,
-74.0059,
34.0500,
-118.2500
) AS distance_in_kilometers;
+------------------------+
| DISTANCE_IN_KILOMETERS |
|------------------------|
| 3936.385096389 |
+------------------------+
다음 예시는 앞의 예시와 같지만, 결과에 1000을 곱해 지리 공간 거리를 킬로미터가 아니라 미터 단위로 반환해요.
SELECT HAVERSINE(
40.7127,
-74.0059,
34.0500,
-118.2500
) * 1000 AS distance_in_meters;
+--------------------+
| DISTANCE_IN_METERS |
|--------------------|
| 3936385.09638929 |
+--------------------+
더 알아보기
- Geospatial functions — 지리 공간 함수 모음
- ST_DISTANCE — 지리 공간 타입으로 두 지점 사이 거리 계산