首頁 > 後端開發 > Python教學 > 如何使用Python的半正矢公式計算兩個GPS點之間的距離和方位?

如何使用Python的半正矢公式計算兩個GPS點之間的距離和方位?

DDD
發布: 2024-11-30 09:59:10
原創
602 人瀏覽過

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

如何在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 匹配公里。

注意:

  • 半正矢公式假設地球是完美的球體,但這並不完全正確。然而,它為大多數實際用途提供了相當準確的近似值。
  • 對於更高階的計算,可以使用更精確的地球模型,例如 WGS84 橢球體。

以上是如何使用Python的半正矢公式計算兩個GPS點之間的距離和方位?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板