두 좌표 사이 거리 계산하는 법 (Haversine 공식 해설)
Haversine 공식으로 두 GPS 좌표 사이의 거리를 계산하는 방법을 배워보세요. 서울-부산 실전 예제, 초기 방위각, 실제 경로가 항상 더 긴 이유까지 정리했습니다.
GPS 좌표 두 개가 있을 때, 두 지점은 얼마나 떨어져 있을까요? 답은 조종사, 항해사, 그리고 모든 지도 앱이 쓰는 공식 하나에 있습니다. 지표면을 따라 대권거리를 구하는 haversine 공식입니다. 직접 검산할 수 있는 실전 예제와 함께 원리를 살펴봅니다.
구면 위의 직선: 대권(Great Circle)
평면 지도에서 두 점 사이 최단 경로는 직선입니다. 구면에서는 대권 — 구의 중심과 두 점을 지나도록 자른 원 — 의 호가 최단 경로입니다. 파리-도쿄 장거리 항공편이 지도상 직선 대신 시베리아 상공으로 휘어 나는 이유가 이것입니다. "곡선"처럼 보이는 경로가 실제로는 가장 짧은 길입니다.
Haversine 공식
위도 φ, 경도 λ(라디안)인 두 점에 대해:
a = sin²(Δφ/2) + cos φ₁ · cos φ₂ · sin²(Δλ/2)
d = 2R · asin(√a)
여기서 R은 지구 평균 반경 6,371,008.8m입니다. 이 공식은 지구를 구로 간주하는데, 실제 타원체 대비 오차는 약 0.5%에 불과해 거의 모든 실용 목적에 충분합니다.
실전 예제: 서울에서 부산까지
- 서울: 37.5665, 126.9780
- 부산: 35.1796, 129.0756
단계별 계산:
- Δφ = 35.1796 − 37.5665 = −2.3869° → −0.04166 rad
- Δλ = 129.0756 − 126.9780 = 2.0976° → 0.03661 rad
- a = sin²(−0.02083) + cos(0.6557) · cos(0.6140) · sin²(0.01831) ≈ 0.000651
- d = 2 × 6,371,008.8 × asin(√0.000651) ≈ 325.1 km
두 도시 간 실제 주행 거리는 약 400km입니다. 직선 거리는 언제나 하한선이지, 도로 거리의 추정치가 아닙니다.
초기 방위각: 어느 방향으로 갈 것인가
같은 두 점에서 초기 방위각 — 출발 시점의 나침반 방향 — 도 구할 수 있습니다:
θ = atan2( sin Δλ · cos φ₂ , cos φ₁ · sin φ₂ − sin φ₁ · cos φ₂ · cos Δλ )
서울 → 부산은 약 144°, 즉 남동쪽입니다. 초기라는 말에 주의하세요. 장거리 경로에서는 대권을 따라가며 방위각이 계속 변합니다. 파리에서 로스앤젤레스로 가는 비행기는 평면 지도상 LA가 남서쪽인데도 북서쪽을 향해 출발합니다.
실제 경로가 더 긴 이유
대권거리는 "까마귀가 나는" 직선 수치입니다. 실제 이동에는 다음이 더해집니다.
- 지형, 계곡, 토지 경계를 따라가는 도로와 철도
- 해안선, 운하, 통항 분리대에 제약받는 항로
- 항공 회랑, 기상, 제트기류가 결정하는 비행 경로
경험칙으로, 도로망이 잘 갖춰진 지역의 주행 거리는 대권거리보다 20~40% 깁니다.
계산은 도구에 맡기세요
숫자만 필요하다면 무료 거리 계산기가 이 모든 걸 클릭 한 번으로 해줍니다. 지도에서 두 지점을 클릭하거나 좌표·주소를 입력하면 킬로미터·마일·해리 단위 대권거리와 초기 방위각을 즉시 확인할 수 있습니다. 좌표 형식을 먼저 바꿔야 한다면 좌표 변환기를 이용하세요.
관련 게시물
UTM 좌표계란? 존, Easting, Northing 완전 정리
UTM(범용 횡단 메르카토르) 좌표계를 이해해 보세요. 60개 존의 원리, easting과 northing의 의미, 위도/경도 대신 UTM을 쓰는 경우를 정리했습니다.
GPS 좌표 활용법: 지도 앱에서 좌표 열기와 주소 변환(역지오코딩)
Google 지도, Apple 지도, 카카오맵에서 GPS 좌표를 여는 방법과, 위도·경도를 읽기 쉬운 도로명 주소로 바꾸는 역지오코딩의 원리를 알아봅니다.
위도와 경도: 완벽한 가이드
기본 개념부터 고급 계산까지 위도와 경도에 대해 알아야 할 모든 것. 이러한 좌표가 어떻게 지구상의 모든 위치를 정밀하게 정의하는지 배웁니다.