Java 位置getBearing返回负值

Java 位置getBearing返回负值,java,android,google-maps,android-studio,location,Java,Android,Google Maps,Android Studio,Location,我正在尝试从电话位置获取实时方位 通过GPS,我们可以获得位置的直接方位。getBearing()。然而,如果我们使用蜂窝网络,我们无法获得方位角,所以我尝试使用旧的保存位置和当前位置计算方位角 heading = mLocation.bearingTo(location); mLocation是旧位置,location是新位置。然而,它的一些值是负值 http://developer.android.com/reference/android/location/Location

我正在尝试从电话位置获取实时方位

通过GPS,我们可以获得
位置的直接方位。getBearing()
。然而,如果我们使用蜂窝网络,我们无法获得方位角,所以我尝试使用旧的保存位置和当前位置计算方位角

       heading = mLocation.bearingTo(location);
mLocation
是旧位置,
location
是新位置。然而,它的一些值是负值

http://developer.android.com/reference/android/location/Location.html

清楚地告诉我们数值应该在0到360之间,这里发生了什么。

如果你向东移动,你的方位是90度,如果你向南移动,它是+180或-180,如果你向西移动,它是-90度。

尝试使用下面的线条

int azimut = (int) Math.round(Math.toDegrees(orientation[0]));

好的,我加了180的偏移量转换成标准的0-360,这个偏移量也是从GPS获得的方位加上去的。请告诉我它是否正常,现在一些值在400以上,这意味着我的方位也在200以上。这是怎么回事?你能在这里分享你的代码吗?所以我可以帮助你。或者尝试使用以下行int-azimut=(int)Math.round(Math.toDegrees(orientation[0]);