如何在Python 中使用半正弦公式計算兩個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 匹配公里。
注意:
以上是如何使用Python的半正矢公式計算兩個GPS點之間的距離和方位?的詳細內容。更多資訊請關注PHP中文網其他相關文章!