Я пытаюсь получить положение GPS как можно более точным в разных диапазонах интервалов, у меня есть несколько внешних GPS, 10 Гц, 5 Гц и 1 Гц.
LocationManager locationManager = (LocationManager)
car.this.getSystemService(car.this.LOCATION_SERVICE);
LocationListener locationListener = new LocationListener() {
public void onLocationChanged(Location location) {
// Called when a new location is found
}
public void onStatusChanged(String provider, int status, Bundle extras) {}
public void onProviderEnabled(String provider) {}
public void onProviderDisabled(String provider) {}
};
locationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER, 0, 0,
locationListener);
Таким образом, я получаю такое обновление журнала при движении с постоянной скоростью.
10hz GPS
81ms new position
79ms new position
88ms new position
96ms new position
196ms new positon
60ms new positon
256ms new position
70ms new position
5 hz GPS
187ms new...
189ms ..
275ms ..
140ms ..
180ms ..
220ms ..
Поэтому я думаю, что onStatusChanged изначально быстрее номинальной частоты, но затем насыщается и вызывает большие скачки.
Если я использую таймер, он работает хорошо, и я получаю позицию каждые 100 мс (200 или 1000), но таймер срабатывает примерно на 100 мс каждые 10 секунд.
Изменить: для уточнения я хочу получить позицию каждые точные (или около) 100 мс, 200 мс или 1000 мс
**ОБНОВЛЕНИЕ 13 апреля 2012 г.
После того, как я переделал мой код для работы с location.getTime(), вот результаты, все тесты проводились снаружи, на средней/высокой скорости и записывались в течение 10 минут для каждого устройства.
HTC Sensation Z710e 4.0.3 Internal GPS 1HZ
Average Accuracy: 12.1m
Average intertval: 1186ms
Min: 98ms
Max: 2621ms
HTC Desire HD 4.0.4 Internal GPS 1HZ
Average Accuracy: 10.6m
Average intertval: 1211ms
Min: 144ms
Max: 2588ms
ASUS Transformer TF101 4.0.4 Internal GPS 1HZ
Average Accuracy: 18.15m
Average intertval: 1000MS
Min: 1000ms
Max: 1000ms
SAMSUNG NOTE II GT-N7100 4.1.2 Internal GPS 1HZ (Glonass)
Average Accuracy: 6.8m
Average intertval: 1000MS
Min: 1000ms
Max: 1001ms
SAMSUNG, HTC OR ASUS with external GPS 5HZ
Average Accuracy: 2.2m
Average intertval: 200MS
Min: 200ms
Max: 200ms
SAMSUNG, HTC OR ASUS with external GPS 10HZ (Glonass)
Average Accuracy: 1.6m
Average intertval: 100MS
Min: 100ms
Max: 100ms