Android中的Qibla指南针

Par*_*han 6 android compass-geolocation

我已经尝试了很多,但不能为我的应用程序制作Qibla指南针.我无法理解我的所作所为.我需要能够完美运行的Qibla指南针.

Sim*_*mon 9

您知道麦加的位置,并且您知道用户当前位置(如果您有GPS或其他位置提供商).轴承由这个公式给出,纬度和经度应该是弧度.

float lonDelta = (lon2 - lon1);
float y = Math.sin(lonDelta) * Math.cos(lat2);
float x = Math.cos(lat1) * Math.sin(lat2) - Math.sin(lat1) * Math.cos(lat2) * Math.cos(lonDelta);
float brng = Math.atan2(y, x).toDeg();
Run Code Online (Sandbox Code Playgroud)

brng 是度数的方向.

您还可以浏览Location.bearingTo()方法,请参阅此处.

  • 解决了它`float brng =(float)Math.toDegrees(Math.atan2(y,x));` (2认同)