[英]How to calculate angle beetween current direction and GPS point
我有 2 點(Android Location 對象):當前位置和目標位置。 我也有我的設備的方向(以度為單位)。
我想計算目標位置和方向之間的角度。 如何正確地做到這一點?
我從 FusedLocationProvider 接收位置(如果重要的話)。 現在我只是使用
float requiredAngle = Math.abs(location.getBearing() - 180 - target.bearingTo(location));
float angleBetween = Math.abs(requiredAngle - location.getBearing());
它返回不正確的角度。
我認為我應該計算真北和磁北之間的差異並添加設備方向。 然后使用 currentPosition.bearingTo(target),並從方位中減去設備方向。
謝謝,我使用https://github.com/iutinvg/compass/blob/master/app/src/main/java/com/sevencrayons/compass/Compass.java的代碼來完成這項任務。 代碼返回方位角,然后我使用 BearingTo() 並為我的任務比較它們的值。
在這種情況下,您可以查看這篇文章: https://onlinemschool.com/math/library/vector/angl/
矢量 A 和矢量 B 之間的夾角公式:余弦(α)= dotProductAB /(幅度A * 幅度B)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.