如何从这两个地方的纬度和经度获得一个地方到另一个地方的方向?

时间:2011-12-06 19:10:24

标签: java math geolocation geometry computational-geometry

如何从两个地方的纬度和经度获得一个地方到另一个地方的方向? 例如,如果来源是秘鲁或墨西哥,目的地是阿拉斯加,那么结果应该是顺时针45度北=逆时针45度以西。

我实际上需要一个函数可以返回结果同时获取源和目标的纬度....

我在Android工作。但在这里我只是寻求逻辑/计算

提前谢谢

1 个答案:

答案 0 :(得分:1)

此公式将为您提供沿着一个大圆圈从起点到目的地的初始标题:

θ = atan2(sin(Δlong)*cos(lat2), cos(lat1)*sin(lat2) − sin(lat1)*cos(lat2)*cos(Δlong))

Δlong是从开始到目的地的经度和lat1的总体变化,lat2是起点/终点的纬度。

请注意,到达目的地的航向将随着您沿着大圆圈行进而改变,因此当您向目的地移动时,需要不断调整此航向。另请注意,您需要将atan2()返回的角度从+/- pi映射到0-360°。

来自:http://www.movable-type.co.uk/scripts/latlong.html