У меня есть этот небольшой фрагмент кода здесь. Я ищу, чтобы получить текущее направление ходьбы 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;
}