我有一个有两点的OpenLayers-3地图。我想在从p1到p2的方向上旋转地图(就像导航系统一样,当你转动地图时也是如此)。
在android中有函数p1.bearingTo(p2)以度为单位返回方位。但它只有在改变经度时才能正常工作,因为纬度与预期相反。如何解决?
答案 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)