/ / GPS Speed ​​неправильний - java, android, gps, розташування

Швидкість GPS неправильна - java, android, gps, location

У мене є багато відмінностей (~ 20%) між реальною швидкістю і швидкістю GPS. Але спочатку дозвольте мені показати мій код:

private LocationManager locationMgr;
private String locationProvider;

...

// Location Manager for GPS
this.locationMgr = (LocationManager) getActivity().getSystemService(Context.LOCATION_SERVICE);
Criteria criteria = new Criteria();
this.locationProvider = locationMgr.getBestProvider(criteria, false);
this.locationMgr.requestLocationUpdates(this.locationProvider, 0, 1.0f, this);

У слухачеві розташування:

@Override
public void onLocationChanged(Location location) {
// Get speed from location
this.speed = location.getSpeed();

// Set speed TextView
this.gpsVelo.setText(Helper.doubleToStringParser(this.speed, Constants.KMPH, null));
}

У результаті я отримую швидкість, відмінну відшвидкість, яку показує моя машина. Я знаю, що спідометр + 3-5% в автомобілі, але я отримав 20% і більше. Тому я тестував з іншим GPS-App, і він показує мені правильне значення. Що я зробив неправильно?

Відповіді:

2 для відповіді № 1

GPS не забезпечує точні швидкості при дуже низьких значеннях швидкості.
При цьому низькі швидкості, різні алгоритми (використанняусереднення тощо) може повідомляти про швидкості відмінності. Понад 10 - 20 км / год вона повинна бути дуже акуратною до 1%. Протестуйте його в автомобілі або поїзді, ви повинні отримати таке ж інтегральне значення км / год для всіх пристроїв GPS, коли поїзд проходить не менше 50 км / год.


1 для відповіді № 2

location.getSpeed ​​() повертає швидкість в м / с. Якщо вам це потрібно в км / год вам знадобиться double speed = location.getSpeed()*3.6;.