计算与当前安卓GPS步行方向相反的路径



我这里有这个小代码片段。我正在寻找的是获取用户的当前GPS步行方向(方位(,然后获得相反的步行方向。

我似乎在这里缺少一些关键信息,因为当我向东北和向西行走时,代码似乎大部分有效,但在向南行走时失败。

知道如何修复我的代码片段吗?

private static Location lastValidLocation;
private float getOppositeGPSMovementDirection(Location lastLocation){
float bearing;
if (!lastLocation.hasBearing){
//Use bearing of the last Location with a valid bearing.
bearing = lastValidLocation.getBearing();
}else{
lastValidLocation = lastLocation;
bearing = lastLocation.getBearing(); 
}
//Calculate backwards direction
int direction = (int) (bearing - 180);
direction = direction<0?direction*-1:direction;
return direction;
}

你的数学有问题。 如果你在 10 度,你的反面是 190。 你的数学会给它 170。 正确的数学是:

direction = (bearing + 180) % 360;

基本上,您假设可以将负角度乘以 -1 以获得正确的角度是错误的。

相关内容

  • 没有找到相关文章

最新更新