我试图计算两个纬度/经度之间的方位。在
我对函数/公式本身没有疑问
提供:def get_bearing(lat1, long1, lat2, long2):
dLon = (long2 - long1)
y = math.sin(dLon) * math.cos(lat2)
x = math.cos(lat1) * math.sin(lat2) - math.sin(lat1) * math.cos(lat2) * math.cos(dLon)
brng = math.atan2(y, x)
brng = np.rad2deg(brng)
return brng
问题不是预期的结果。在
函数的预期用途是返回(非常长)列表中两个lat/long对之间的方位角,即
^{pr2}$
然后,方位角结果会改变绘图的视图方向,其中方位角可以假定为范围为[-180,180]的值。理想情况下,结果将显示为lat1、lng1和lat2、lng2之间形成的直线在绘图中完全“垂直”(在绘图中切换lat/lon注释),见下文
我希望有人能从函数返回的方位和期望的方位角推断出问题。下面是几个实例:Current Location: 30.07134 -97.23076
Next in path: 30.0709 -97.22907
Calculated Bearing: 88.39967863143139
Expected Bearing: ~-70.67
Current Location: 29.91581 -96.85068
Next in path: 29.91556 -96.85021
Calculated Bearing: 118.9170342272798
Expected Bearing: ~122.67
Current Location: 29.69419 -96.53487
Next in path: 29.69432 -96.53466
Calculated Bearing 141.0271357781952
Expected Bearing: ~56
Current Location: 29.77357 -96.07924
Next in path: 29.77349 -96.07876
Calculated Bearing 165.24612555483893
Expected Bearing: ~104
很高兴提供更多信息,提前感谢您的任何/所有帮助。在