GPS 계산을 위한 Haversine 공식: 거리 및 방위
문제:
거리 계산 두 GPS 지점 사이의 방위에는 Haversine 거리 공식을 활용하는 경우가 많습니다. 그러나 올바른 방위를 구할 때 특히 음수 값이 생성되는 경우 문제가 발생할 수 있습니다.
해결책:
거리를 계산하려면 Haversine 공식을 사용할 수 있습니다.
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
베어링을 결정하려면 베어링 변수를 다음과 같이 조정합니다. 다음은 다음과 같습니다.
Bearing = atan2(sin(lon2-lon1)*cos(lat2), cos(lat1)*sin(lat2) - sin(lat1)*cos(lat2)*cos(lon2-lon1)) Bearing = degrees(Bearing)
이 수정으로 베어링이 0도에서 360도 사이에 놓이게 됩니다.
위 내용은 Haversine 공식을 사용하여 GPS 거리와 방위를 어떻게 정확하게 계산할 수 있습니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!