> 백엔드 개발 > 파이썬 튜토리얼 > Python에서 Haversine 공식을 사용하여 GPS 지점 사이의 거리와 방위를 계산할 때 음의 방위 값을 어떻게 수정할 수 있습니까?

Python에서 Haversine 공식을 사용하여 GPS 지점 사이의 거리와 방위를 계산할 때 음의 방위 값을 어떻게 수정할 수 있습니까?

Barbara Streisand
풀어 주다: 2024-11-30 16:29:10
원래의
594명이 탐색했습니다.

How Can I Correct Negative Bearing Values When Using the Haversine Formula in Python to Calculate Distance and Bearing Between GPS Points?

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

이 Python 가이드에서는 GPS 지점을 결정하는 강력한 도구인 Haversine 공식을 자세히 살펴보겠습니다. 두 GPS 사이의 거리와 방위 좌표.

문제:

두 GPS 지점 사이의 거리와 방위를 계산하려고 하는데 방위 출력에 불일치가 발생하여 음수 값이 생성됩니다. 0~360 범위 내에 있어야 합니다. 도.

코드:

제공된 코드는 Haversine 공식을 사용하여 거리와 방위를 모두 계산합니다.

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

def haversine(lon1, lat1, lon2, lat2):
    # Convert decimal degrees to radians
    lon1, lat1, lon2, lat2 = map(radians, [lon1, lat1, lon2, lat2])

    # Haversine formula
    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 # Radius of earth in kilometers
    return c * r
로그인 후 복사

베어링 계산 :

제공된 코드의 문제는 베어링 계산에 있습니다. 이를 수정하려면 다음 행을 수정해야 합니다.

Bearing = atan2(cos(lat1)*sin(lat2)-sin(lat1)*cos(lat2)*cos(lon2-lon1), sin(lon2-lon1)*cos(lat2))
로그인 후 복사

대상:

Bearing = degrees(atan2(sin(lon2-lon1)*cos(lat2), cos(lat1)*sin(lat2)-sin(lat1)*cos(lat2)*cos(lon2-lon1)))
로그인 후 복사

이 조정을 통해 베어링 출력이 예상 범위인 0-360도와 정렬되도록 합니다.

결론:

베어링 계산을 고정한 상태에서, 이제 코드는 제공된 GPS 지점 사이의 거리와 방위를 정확하게 결정합니다. Haversine 공식은 지리적 계산을 위한 강력한 도구임이 입증되어 지구 표면의 거리를 정확하게 측정할 수 있습니다.

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

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