Я обнаружил, что лучший способ получить (и отфильтровать) точность и местоположение исправления - это использовать решение, найденное в: http://developer.android.com/guide/topics/location/obtaining-user-location.html#BestEstimate, и это ЛУЧШИЙ результат, который я получил до сих пор.
Предположим, у вас уже есть хорошее местоположение, и вы используете его (например, animateTo ..), а затем давайте предположим, что вы сохранили это местоположение в переменной Location и назвали его currentBestLocation
.
Что вам нужно сделать, это поставитьметод isBetterLocation()
(из "Поддержания текущей наилучшей оценки", который я только что разместил на сайте Google вверх) в своей активности, а затем, когда в вашем onLocationChanged()
вы должны отправить currentBestLocation
и местоположение, которое вы только что получили от onLocationChanged()
до isBetterLocation()
(например, с onLocationChanged()
вы пишете isBetterLocation(location, currentBestLocation)
.
в isBetterLocation()
, он отправит вам обратно true
, если новое местоположение будет лучше, чем последнее местоположение, которое у вас есть сейчас(последнее местоположение - currentBestLocation
)
Если оно возвращает true, это означает, что точность хорошая .. Вы должны использовать это местоположение (не забудьте обновить -> currentBestLocation = location
)
Вот и все.