2013-05-27 2 views
0

В моем приложении я возвращаю скорость устройства с использованием метода getSpeed ​​() класса Location. Это дает скорость в метрах/сек. Чтобы преобразовать это значение в km/hr, я умножаю его на 3.6. Но я получаю неправильную скорость. ех. 580 при движении со скоростью 40 км/час. Это мой код:Поиск скорости с помощью GPS

public void onLocationChanged(Location location) 
{ 
    float mps = location.getSpeed(); 
    float kmh = (float) (mps*3.6); 
    speed = Float.toString(kmh); 
    Toast.makeText(context,"speed :"+speed,TOAST.LENGTH_LONG).show(); 
} 
+0

Там что-то случилось с GPS или Местонахождение объекта передается - Очевидно, вы не путешествуете на 161 метров в секунду. – Cornholio

+0

Я проверил все. все кажется хорошо – user2310041

ответ

1

Я использую следующий код, чтобы получить текущую скорость, и это сработало для меня.

public static final int HOUR_MULTIPLIER = 3600; 
public static final Double UNIT_MULTIPLIERS[] = { 0.001, 0.000621371192 }; 
public static final int INDEX_MILES = 1; 

localspeed = loc.getSpeed() * 1.0; 
localspeed = ((localspeed * HOUR_MULTIPLIER) * UNIT_MULTIPLIERS[INDEX_MILES]); 

вы можете найти учебник из link1 и link2

Смежные вопросы