2015-03-25 95 views
0

我有一个带有两个点的OpenLayers-3地图。我想从p1到p2的方向旋转地图(如导航系统,当您转动地图时也旋转)。从两个坐标计算旋转

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

回答

0
bearing = 180 - p1.bearingTo(p2) 

这会切换y asis。

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),你可以使用相同的数学ATAN2函数如下所述:http://developer.android.com/reference/java/lang/Math.html#atan2(double,双)