내비게이션 세계에서는 두 GPS 지점 간의 거리와 방위를 결정하는 것이 중요합니다. 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 공식을 사용하여 첫 번째 지점에서 두 번째 지점까지의 방위(방위각)를 찾습니다.
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는 중간 값이고 방위는 북쪽 시계 방향에서 라디안 단위로 측정된 방위각을 나타냅니다.
다음은 거리와 방향각을 계산하기 위한 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 중국어 웹사이트의 기타 관련 기사를 참조하세요!