> 백엔드 개발 > 파이썬 튜토리얼 > Haversine 공식은 Python에서 GPS 지점 간의 거리와 방위각을 어떻게 계산합니까?

Haversine 공식은 Python에서 GPS 지점 간의 거리와 방위각을 어떻게 계산합니까?

Mary-Kate Olsen
풀어 주다: 2024-12-01 18:41:10
원래의
606명이 탐색했습니다.

How Does the Haversine Formula Calculate Distance and Bearing Between GPS Points in Python?

Python의 Haversine 공식: GPS 지점 간 거리와 방위 계산

내비게이션 세계에서는 두 GPS 지점 간의 거리와 방위를 결정하는 것이 중요합니다. Haversine 공식은 구면 기하학을 사용하여 이러한 값을 계산하는 정확한 방법을 제공합니다.

Haversine 공식을 사용하여 거리 계산

두 GPS 지점 사이의 거리를 계산하려면 위도와 경도를 변환해야 합니다. 십진수 도에서 라디안까지. 그런 다음 다음 공식을 적용합니다.

dlon = lon2 - lon1
dlat = lat2 - lat1
a = sin(dlat/2) ** 2 + cos(lat1) * cos(lat2) * sin(dlon/2) ** 2
c = 2 * asin(sqrt(a))
distance = c * r
로그인 후 복사

dlon과 dlat는 경도와 위도의 차이를 나타내고, a는 중간 값이며, r은 지구의 반경(킬로미터의 경우 6371킬로미터, 킬로미터의 경우 3956마일)입니다. 마일).

Haversine 공식을 사용하여 베어링 계산

거리를 결정하는 것 외에도 다음이 가능합니다. 또한 Haversine 공식을 사용하여 첫 번째 지점에서 두 번째 지점까지의 방위(방위각)를 찾습니다.

y = sin(dlon) * cos(lat2)
x = cos(lat1) * sin(lat2) - sin(lat1) * cos(lat2) * cos(dlon)
bearing = atan2(y, x)
로그인 후 복사

여기서 dlon은 경도의 차이이고 lat1과 lat2는 두 지점의 위도입니다. x와 y는 중간 값이고 방위는 북쪽 시계 방향에서 라디안 단위로 측정된 방위각을 나타냅니다.

Python 구현

다음은 거리와 방향각을 계산하기 위한 Haversine 공식의 Python 구현입니다.

from math import radians, cos, sin, asin, sqrt

def haversine(lon1, lat1, lon2, lat2):
    lon1, lat1, lon2, lat2 = map(radians, [lon1, lat1, lon2, lat2])

    dlon = lon2 - lon1
    dlat = lat2 - lat1
    a = sin(dlat/2)**2 + cos(lat1) * cos(lat2) * sin(dlon/2)**2
    c = 2 * asin(sqrt(a))
    r = 6371

    return c * r
로그인 후 복사

위 내용은 Haversine 공식은 Python에서 GPS 지점 간의 거리와 방위각을 어떻게 계산합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿