在導航領域,決定兩個GPS 點之間的距離和方位至關重要。半正弦公式提供了一種使用球面幾何計算這些值的精確方法。
要計算兩個 GPS 點之間的距離,我們需要轉換它們的緯度和經度從十進制度到弧度。然後我們應用公式:
dlon = lon2 - lon1 dlat = lat2 - lat1 a = sin(dlat/2) ** 2 + cos(lat1) * cos(lat2) * sin(dlon/2) ** 2 c = 2 * asin(sqrt(a)) distance = c * r
其中 dlon 和 dlat 代表經度和緯度的差異,a 是中間值,r 是地球半徑(公里為 6371 公里,或為 3956 英里)英里)。
除了確定距離之外,我們還可以使用半正弦公式找到從第一個點到第二個點的方位角(方位角):
y = sin(dlon) * cos(lat2) x = cos(lat1) * sin(lat2) - sin(lat1) * cos(lat2) * cos(dlon) bearing = atan2(y, x)
其中dlon 是經度差,lat1 和lat2 是兩點的緯度, x 和 y是中間值,方位角表示從北順時針方向測量的以弧度為單位的方位角。
這是用於計算距離和方位的半正矢公式的 Python 實作:
from math import radians, cos, sin, asin, sqrt def haversine(lon1, lat1, lon2, lat2): lon1, lat1, lon2, lat2 = map(radians, [lon1, lat1, lon2, lat2]) 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 return c * r
以上是Python中半正矢公式如何計算GPS點之間的距離和方位?的詳細內容。更多資訊請關注PHP中文網其他相關文章!