【问题标题】:How to calculate angle beetween current direction and GPS point如何计算当前方向和GPS点之间的角度
【发布时间】:2022-01-22 02:33:00
【问题描述】:

我有 2 个点(Android Location 对象):当前位置和目标位置。我也有我设备的方向(以度为单位)。

我想计算目标位置和方向之间的角度。怎么做才合适?

我从 FusedLocationProvider 接收位置(如果有问题)。 现在我只是使用

float requiredAngle = Math.abs(location.getBearing() - 180 - target.bearingTo(location));

float angleBetween = Math.abs(requiredAngle - location.getBearing()); 它返回的角度不正确。

我认为我应该计算真北和磁北之间的差异并添加设备方向。然后使用currentPosition.bearingTo(target),并从方位中减去设备方向。

【问题讨论】:

  • 这是 2d 还是 3d 字段?什么是 X,Y 和 Z 那么我们就可以为这个问题提供一个公式
  • 这是 3D 字段。我有 GPS 坐标:地球上某个点的纬度和经度。

标签: java android geometry android-gps


【解决方案1】:

在这种情况下,你可以看看这篇文章:https://onlinemschool.com/math/library/vector/angl/

  1. 计算向量的点积
  2. 计算矢量大小
  3. 计算这两个向量之间的角度

向量A和向量B的夹角公式: 余弦(阿尔法)= dotProductAB /(幅度A * 幅度B)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-10-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-02-28
    相关资源
    最近更新 更多