我有两个点(Android位置对象):当前位置和目标位置。另外,我有一个设备方向(以度数表示)。
我想计算目标位置和方向之间的角度。如何正确做?我从FusedLocationProvider接收位置(如果这很重要)。 现在我只是使用
float requiredAngle = Math.abs(location.getBearing() - 180 - target.bearingTo(location)); float angleBetween = Math.abs(requiredAngle - location.getBearing());
它返回不正确的角度。
我认为我应该计算真北和磁北之间的差异,并添加设备方向。然后使用currentPosition.bearingTo(target),并从方位中减去设备方向。