2016-11-18 3 views
1

Я использую платный провайдер с 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(); 
+0

Некоторые мысли и идеи найдены в [наилучший способ рассчитать скорость в android, будь то «ручной расчет с использованием координат GPS» или «location.getSpeed»?] (Https://stackoverflow.com/questions/21644990/which -is-best-way-to-calculate-speed-in-android-if-manual-calculate-usin), и если это индивидуальные ошибочные значения, вы можете вычислить медианную из последних двух скоростей для фильтрации внезапных всплесков. Конечно, это также означало бы небольшую задержку. Или, если эти местоположения имеют плохое значение 'getAccuracy()', вы можете просто игнорировать скорость для любых «плохих» местоположений. –

ответ

0

Может быть, вы используете сеть провайдера, который обеспечивает меньшую точность, следовательно, изменить его поставщика GPS, чтобы получить точные значения.

+0

Уже упоминаю, что я использую платный провайдер местоположения с высокоточным режимом. –

+0

Сплавленный должен справиться с этим. К сожалению, я пока не нашел решения. Обратите внимание, что GPS не всегда является решением. Иногда Wi-Fi является более точным (например, в торговом центре, или когда у устройства есть flaky GPS-приемник, LG G2 имеет это). Опять же, FUSED родился, чтобы справиться с этим. Он имеет свою эвристику для * FUSE * в двух местах. Надеюсь, они исправят это в следующих версиях Служб Google Play. – Meymann