android如何从当前用户位置找到朝向目的地的角度(0-> 360)

Posted

技术标签:

【中文标题】android如何从当前用户位置找到朝向目的地的角度(0-> 360)【英文标题】:android how to find angle(0->360) towards destination from current user location 【发布时间】:2015-07-17 16:01:53 【问题描述】:

我有用户当前的经度和纬度以及目的地(只是一个静态位置)。如何找到当前用户位置和目的地之间的方向angle(0->360)

我目前正在使用currentLocation.bearingTo(destination) 记录的here,但我找不到正确的角度。

【问题讨论】:

你当前对该函数的输入和输出是什么? 改进的措辞和语法 【参考方案1】:

我终于找到了解决方案,我在这里分享,因为它可以帮助其他人。

private double bearing(double startLat, double startLng, double endLat, double endLng)
        double longitude1 = startLng;
        double longitude2 = endLng;
        double latitude1 = Math.toRadians(startLat);
        double latitude2 = Math.toRadians(endLat);
        double longDiff= Math.toRadians(longitude2-longitude1);
        double y= Math.sin(longDiff)*Math.cos(latitude2);
        double x=Math.cos(latitude1)*Math.sin(latitude2)-Math.sin(latitude1)*Math.cos(latitude2)*Math.cos(longDiff);
        return (Math.toDegrees(Math.atan2(y, x))+360)%360;
    

如果方法没有返回所需的值,那么您必须检查您的经度和纬度值。 注意这个方法的返回值在 0->360 度之间。

【讨论】:

以上是关于android如何从当前用户位置找到朝向目的地的角度(0-> 360)的主要内容,如果未能解决你的问题,请参考以下文章

如何在 openCV 中找到 Rect 对象的角?

Mapbox Android:如何获取从当前位置到您选择的目的地的路线?

Android- Google Maps V2:跟踪从当前位置到另一个目的地的路线

谷歌地图 - 如何找出用户的位置并在 Swift 中显示从该位置到目的地点的路线?

如何在iphone的地图中显示从当前位置到目的地位置的方向

ros如何获得机器人在map中的朝向