首頁 >後端開發 >Python教學 >如何利用半正矢公式準確計算GPS距離與方位?

如何利用半正矢公式準確計算GPS距離與方位?

Mary-Kate Olsen
Mary-Kate Olsen原創
2024-12-02 08:42:11944瀏覽

How Can I Accurately Calculate GPS Distance and Bearing Using the Haversine Formula?

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中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn