2016-03-25 51 views
0

我试图从手机位置获得实时轴承。位置getBearing返回负值

从GPS我们可以得到直接的关系为location.getBearing()。但是,如果我们使用蜂窝网络,我们不能让轴承,所以我尝试计算使用

 heading = mLocation.bearingTo(location); 

mLocation是旧的位置,距离老保存的位置和当前位置轴承,location是新的位置。然而它的一些价值是负面的。

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

清楚地表明值应该从0到360,这里发生了什么。

回答

0

,如果你正朝着东动,你的轴承是90度,如果你正朝着南方移动它是+180或 - 180,如果你正在向西移动它为-90度。

+0

OK,所以我所做的就是加入180偏移转换为标准0-360,这个偏移量也增加了从GPS获取承载太多。请告诉我,如果它确定,现在有些值超过400,所以这意味着我也承受超过200。这里发生了什么事? –

+0

你可以在这里分享你的代码吗?所以我可以帮你。或尝试使用以下线 INT方位角=(int)的Math.round(Math.toDegrees(取向[0])); –

0

你能分享你的代码吗?所以我可以帮你。 或尝试使用以下行

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