/ / GPS Скоростта е грешна - Java, Android, GPS, местоположение

GPS скоростта не е наред - java, android, gps, местоположение

Имам много разлики (~ 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% и повече. Какво съм направил погрешно?

Отговори:

2 за отговор № 1

GPS не осигурява точни скорости при много ниски скорости.
При тези ниски скорости, различни алгоритми (използванеосредняване и т.н.) може да отчитат скорости на разликата. Над 10 - 20 км / ч трябва да бъде много точен до 1%. Тествайте го в автомобил или влак, трябва да получите същата интегрална стойност на km / h за всички GPS устройства, когато влакът е с най-малко 50 км / ч.


1 за отговор № 2

location.getSpeed ​​() връща скоростта в m / s. Ако имате нужда от това в km / h ще ви трябва double speed = location.getSpeed()*3.6;.