개발이야기/MySQL

[MySQL] 위도 경도 값으로 거리 계산하기 (Haversine 공식)

후린개발자 2023. 8. 29.
반응형

아래 쿼리는 서울과 부산의 위도, 경도 값으로 하버사인(Haversine) 공식을 사용하여 직선 거리를 계산 하였습니다.

ㅇ 서울 위도/경도 : 37.5665, 126.9780
ㅇ 부산 위도/경도 : 35.1796, 129.0756

 

SELECT
    '서울' AS 출발지,
    '부산' AS 목표지,
(
    6371*
		acos
		(
		cos(radians(35.1796))*cos(radians(37.5665))*cos(radians(126.9780)-radians(129.0756)) 
		+sin(radians(35.1796))*sin(radians(37.5665))
		)
) AS 거리;

 

ㅇ 6371은 지구의 반지름을 나타내며, 이 값은 km 단위의 결과를 얻기 위해 사용됩니다.

ㅇ acos는 아크 코사인 함수로, 코사인 값의 역함수를 계산합니다.

ㅇ cos(radians(35.1796)), cos(radians(37.5665))는 출발지와 목표지의 위도에 대한 코사인 값을 계산합니다. radians 함수는 각도를 라디안으로 변환합니다.

ㅇ cos(radians(126.9780)-radians(129.0756))는 경도 간의 차이에 대한 코사인 값을 계산합니다.

ㅇ sin(radians(35.1796))*sin(radians(37.5665))는 출발지와 목표지의 위도에 대한 사인 값을 계산합니다.

 

 

쿼리 실행 결과

 

구글지도 (서울-부산 거리)

 

반응형

댓글

💲 추천 글