Я работаю над простым приложением, к которому предъявляются следующие требования: задача будет запущена в заданном месте, и после того, как пользователь уйдет на определенное расстояние, задача должна быть автоматически завершена.
В настоящее время я использую startUpdatingLocation из CLLocationManager, чтобы получить начальное местоположение GPS с точностью до 100 метров.Это работает нормально.
Затем я использую CLLocationManager startMonitoringSignificantLocationChanges, чтобы определить, достаточно ли далеко забрел пользователь.Я использую этот метод, так как он лучше работает от батареи, может работать в фоновом режиме и т. Д.
Теперь у меня возникает проблема с точностью местоположения, возвращаемого при использовании 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.Дайте мне знать, если вам нужно больше информации или фрагментов кода.
Заранее спасибо!