
atan2(X,Y)
我正在嘗試計算兩個緯度和經度之間的角度,但在 Excel 上使用時得到錯誤的結果。
β = atan2(X,Y) = atan2(0.05967668696, -0.00681261948)
它應該是1.68弧度(96.51°),但在Excel上它顯示-0.113666736(-6.512624235°)
β = atan2(X,Y),
其中,X和Y是兩個量,可以計算為:
- X =
cos θb * sin ∆L
Y=
cos θa * sin θb – sin θa * cos θb * cos ∆L
緯度/經度(1): (Lat1,Lon1)= 39.099912, -94.581213
緯度/經度(2): (Lat2,Lon2)= 38.627089, -90.200203
‘L’ be the longitude, ‘∆L=lon2-lon1’ be the difference of longitude, ‘θ’ be latitude, ‘β‘ be Bearing
答案1
問題是excel使用函數Atan2(y,X) 而不是 (x, y)。在 C 中,Atan2 使用參數 (X,y)這會給你你期望的答案。只需切換參數即可。
答案已經晚了六年,但希望有人發現這個有用,哈哈。
答案2
Excel中的函數沒有任何問題
atan2(X,Y)
:您指定的點「(0.05967668696,-0.00681261948)」位於第四象限,即它的角度實際上是「-6.51°」。但是如果你想計算兩個地理點之間角度的「絕對」值,你應該使用座標之間的絕對差:
β=ATAN2(ABS(0.05967668696), ABS(-0.00681261948))
請記住,如果此計算是在球體(地球)上進行的,則由於圓形三角形,它是近似值。對於小角度來說是可以的。