Изменение местоположения, даже если телефон находится на столе
При получении местоположения от менеджера местоположения Android, я сталкиваюсь с проблемой. Даже когда я сижу в месте и не двигаюсь, широта и долгота, которые я получаю в прослушивателе onLocationChange(), всегда меняются. Я установил время обновления 500 мс и расстояние обновления 5 метров. Есть идеи, как это исправить?
1 ответ
Смещение GPS составляет около 8 метров для обычных телефонов и около 15-20 метров для старых. Вы можете установить минимальное расстояние для более чем 15 метров, и это должно помочь.
В случае, если вы используете провайдера NETWORK, он берет свои местоположения от WiFi-роутеров и вышек Cellolar. в этом случае, если телефон меняет сотовую вышку или поднимает новый WiFi, местоположение может измениться более чем на 20 метров (20-70 метров для WiFi и 500-1500 метров для сотовых вышек).
Другая вещь, которую вы можете сделать, это принять во внимание параметр точности местоположений, которые вы получаете, это должно дать вам приблизительную оценку ошибки провайдера (EG GPS против сети против WiFi), и вы можете попытаться понять, движется ли телефон или нет путем расчета:
if (position_A.distanceTo(position_B) - position_B.getAcuracy() >0){
do something. //location change.
}
Обновите информацию, чтобы уточнить, в то время как синяя точка - это местоположение, которое дает вам ваше устройство, фактическое местоположение может быть в любом месте синего радиуса.