> 백엔드 개발 > 파이썬 튜토리얼 > Python의 Haversine 공식을 사용하여 두 GPS 지점 사이의 거리와 방위각을 계산하는 방법은 무엇입니까?

Python의 Haversine 공식을 사용하여 두 GPS 지점 사이의 거리와 방위각을 계산하는 방법은 무엇입니까?

DDD
풀어 주다: 2024-11-30 09:59:10
원래의
592명이 탐색했습니다.

How to Calculate the Distance and Bearing Between Two GPS Points Using Python's Haversine Formula?

Python에서 Haversine 공식을 사용하여 두 GPS 지점 사이의 방위와 거리를 계산하는 방법

Haversine 공식은 GPS 지점을 계산하는 데 사용되는 수학 방정식입니다. 구 위의 두 점 사이의 대원 거리. GPS의 맥락에서 이 공식은 두 GPS 좌표 사이의 거리와 방위를 모두 결정하는 데 사용될 수 있습니다.

1단계: 함수 정의

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

def haversine(lon1, lat1, lon2, lat2):
    """
    Calculate the great circle distance in kilometers between two points 
    on the earth (specified in decimal degrees)
    """
    # 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. Use 3956 for miles. Determines return value units.
    return c * r
로그인 후 복사

2단계: 계산

start_lon, start_lat = -1.7297222222222221, 53.32055555555556
bearing, distance = 96.02166666666666, 2
end_lon, end_lat = -1.6997222222222223, 53.31861111111111

distance_calculated = haversine(start_lon, start_lat, end_lon, end_lat)

print("Distance:", distance_calculated)
로그인 후 복사

출력:

Distance: 2.0000054199729084
로그인 후 복사

이 예에서 계산된 거리는 예상 값 2와 일치합니다. 킬로미터.

참고:

  • Haversine 공식은 지구가 완전한 구형이라고 가정하지만 이는 전적으로 사실이 아닙니다. 그러나 이는 대부분의 실용적인 목적에 대해 합리적으로 정확한 근사치를 제공합니다.
  • 더 고급 계산의 경우 WGS84 타원체와 같은 보다 정확한 지구 모델을 사용할 수 있습니다.

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

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