【问题标题】:Calculate rotation from two coordintes从两个坐标计算旋转
【发布时间】:2015-03-25 12:40:06
【问题描述】:

我有一个包含两个点的 OpenLayers-3 地图。我想从 p1 到 p2 的方向旋转地图(比如导航系统,当你转动地图时也会旋转)。

在 android 中有一个函数 p1.bearingTo(p2) 以度数返回方位角。但它仅在更改经度时按预期工作,对于纬度,它与预期相反。如何解决?

【问题讨论】:

    标签: android coordinates openlayers-3 bearing


    【解决方案1】:

    在 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)

    【讨论】:

      【解决方案2】:
      bearing = 180 - p1.bearingTo(p2)
      

      这会自动切换。

      【讨论】:

        猜你喜欢
        • 2015-04-01
        • 1970-01-01
        • 1970-01-01
        • 2010-10-11
        • 1970-01-01
        • 2020-05-27
        • 2014-05-25
        • 2018-08-19
        • 1970-01-01
        相关资源
        最近更新 更多