从两个坐标计算旋转

时间:2015-03-25 12:40:06

标签: android coordinates openlayers-3 bearing

我有一个有两点的OpenLayers-3地图。我想在从p1到p2的方向上旋转地图(就像导航系统一样,当你转动地图时也是如此)。

在android中有函数p1.bearingTo(p2)以度为单位返回方位。但它只有在改变经度时才能正常工作,因为纬度与预期相反。如何解决?

2 个答案:

答案 0 :(得分:0)

bearing = 180 - p1.bearingTo(p2)

这会切换y asis。

答案 1 :(得分:0)

在JS中,此代码计算2点之间的旋转度:

var degrees = Math.atan2((nextCoordinate[0] - currentCoordinate[0]), (nextCoordinate[1] - currentCoordinate[1])) * 180 / Math.PI;

if (degrees < 0.0)
    degrees += 360.0;

对于Android(Java),您可以使用与此处所述相同的Math atan2函数:http://developer.android.com/reference/java/lang/Math.html#atan2(double,double)