我正在尝试计算两个纬度和经度之间的角度,但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(是,X) 而不是 (x, y)。在 C 语言中,Atan2 使用参数 (X,是) 将会给出您期望的答案。只需切换参数即可。
这个答案晚了整整六年,但希望有人觉得这很有用,哈哈。
答案2
Excel 中的函数没有任何问题
atan2(X,Y)
:您指定的点“(0.05967668696, -0.00681261948)”位于第四象限,即它的角度实际上是“-6.51°”。但是如果您想计算两个地理点之间的角度的“绝对”值,您应该使用坐标之间的绝对差:
β=ATAN2(ABS(0.05967668696), ABS(-0.00681261948))
请记住,如果此计算是在球体(地球)上进行的,则由于存在圆形三角形,因此这只是近似值。对于小角度,这是可以的。