Я использую платный провайдер с PRIORITY_HIGH_ACCURACY режим для опроса местоположения, но иногда он дает неправильную скорость определения, например, 77 м/с. Почему это не так, так как я могу достичь правильной скорости определения местоположения?Скорость определения местоположения Неправильное использование плавленого провайдера
Расположение Запрос:
mLocationRequest = new LocationRequest();
mLocationRequest.setPriority(LocationRequest.PRIORITY_HIGH_ACCURACY);
mLocationRequest.setInterval(6000);
mLocationRequest.setSmallestDisplacement(80);
Получить скорость в Location Update
Double lat = location.getLatitude();
Double lon = location.getLongitude();
float sd = (float) location.getAltitude();
// float ac_speed = sd;
//----- For Testing Purpose---------------//
float ac_speed = location.getSpeed();
Некоторые мысли и идеи найдены в [наилучший способ рассчитать скорость в android, будь то «ручной расчет с использованием координат GPS» или «location.getSpeed»?] (Https://stackoverflow.com/questions/21644990/which -is-best-way-to-calculate-speed-in-android-if-manual-calculate-usin), и если это индивидуальные ошибочные значения, вы можете вычислить медианную из последних двух скоростей для фильтрации внезапных всплесков. Конечно, это также означало бы небольшую задержку. Или, если эти местоположения имеют плохое значение 'getAccuracy()', вы можете просто игнорировать скорость для любых «плохих» местоположений. –