startMonitoringSignificantLocationChanges Отсутствие точности

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

В настоящее время я использую startUpdatingLocation CLLocationManager, чтобы получить начальное местоположение GPS с точностью до 100 метров. Это прекрасно работает.

Затем я использую startMonitoringSignificantLocationChanges для CLLocationManager, чтобы определить, достаточно ли далеко перемещался пользователь. Я использую этот метод, поскольку он лучше работает от батареи, может работать в фоновом режиме и т. Д.

Теперь проблема, с которой я столкнулась, – это точность местоположения, возвращаемого при использовании startMonitoringSignificantLocationChanges. Если я просто позволю своему телефону сидеть на своем столе и подождать 10-20 минут, это автоматически закончит задачу из-за точности (или отсутствия) позиции, возвращенной из startMonitoringSignificantLocationChanges. Например:

2011-11-27 20:21:44.653 MyApp[2692:707] Location manager wants 100.000000 meter accuracy 2011-11-27 20:21:44.655 MyApp[2692:707] Location manager got 99.260482 meter accuracy 2011-11-27 20:27:52.975 MyApp[2692:707] visit location: lat 43.619912 long -70.237781 2011-11-27 20:27:52.977 MyApp[2692:707] current location: lat 43.619808 long -70.237561 2011-11-27 20:27:52.981 MyApp[2692:707] moved 21.155182 meters from visit origin 2011-11-27 20:37:53.205 MyApp[2692:707] visit location: lat 43.619912 long -70.237781 2011-11-27 20:37:53.207 MyApp[2692:707] current location: lat 43.628081 long -70.231727 2011-11-27 20:37:53.211 MyApp[2692:707] moved 1030.822457 meters from visit origin 

Все это произошло без моего перемещения устройства на дюйм. Моя догадка в том, что startMonitoringSignificantLocationChanges недостаточно точна, чтобы выполнить это требование. Это так? Или я, возможно, что-то не замечаю?

Любая обратная связь будет оценена. Я не публиковал какой-либо код, но все это довольно простой материал CLLocationManager. Сообщите мне, нужна ли дополнительная информация или фрагменты кода.

Заранее спасибо!

One Solution collect form web for “startMonitoringSignificantLocationChanges Отсутствие точности”

В документах CLLocationManager :

Этот интерфейс [ например, startMonitoringSignificantLocationChanges ] поставляет новые события только тогда, когда он обнаруживает изменения на связанных ячейках сотовой связи устройства, что приводит к менее частым обновлениям и значительному снижению энергопотребления.

Таким образом, маловероятно, чтобы startMonitoringSignificantLocationChanges можно было использовать для проверки местоположения на уровне точности, который вы ищете, – редко startMonitoringSignificantLocationChanges что startMonitoringSignificantLocationChanges башня может вас хорошо локализовать. Возможно, вы захотите попробовать использовать startMonitoringForRegion:desiredAccuracy: вместо этого; он также работает в фоновом режиме и будет выполнять большую часть грязной работы по тестированию региона для вас.

Interesting Posts

проблема с наложением наклейки камеры

Как скрыть клавиатуру, когда UITextView не отображается?

Как загрузить языковой язык по умолчанию, если локализованная версия не существует для текущего языка?

shouldAutorotate не вызывается на контроллер просмотра

Поиск файлов с определенной целью расширения c

UIRefreshControl и фоновое изображение UITableView

Внедрение NSCopying

UIImage PNG окраска

Ошибка. Вы не можете удалить экран заставки Unity из своей игры.

Как создать пользовательскую клавиатуру

Событие значения Firebase не запускается все время в автономном режиме

Создание клиента rtsp для прямого трансляции видео и видео в объективе C

Получение всех заметок от пользователя входа iCloud.

Может ли устройство iOS использовать потоковое видео в прямом эфире для отправки аудио / видео на сервер?

Исправление разбора NSDictionary в NSDictionary

PhoneC: Разработка iOS проста с помощью XCode, Swift3, UITableView, cocatouch, давайте создадим приложения для iPhone, iPad и Macbook.