GPS 計算的半正矢公式:距離和方位
問題:
計算🎜>問題:
計算🎜>問題:
距離兩個GPS 點之間的方位通常涉及利用半正弦距離公式。然而,在獲得正確的方位角時可能會出現問題,特別是在產生負值的情況下。
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度之間。以上是如何利用半正矢公式準確計算GPS距離與方位?的詳細內容。更多資訊請關注PHP中文網其他相關文章!