2015-05-04 5 views
0

Я мониторинг местоположения пользователей с этими конфигурациями:Как вручную запустить обновление CLLocationManager?

locationManager.delegate = self 
    locationManager.desiredAccuracy = kCLLocationAccuracyThreeKilometers 
    locationManager.requestAlwaysAuthorization() 
    locationManager.startMonitoringSignificantLocationChanges() 

У меня есть переключатель, который позволяет пользователю либо ввести адрес вручную или разрешить для отслеживания GPS. При переключении с ручного на GPS-местоположение я хотел бы нажать CLLocationManager, чтобы обновить местоположение пользователя и вызвать событие didUpdateLocations. В противном случае он просто ждет и ждет обновления, когда это будет похоже. Является ли ручное инициирование обновления одним возможным временем?

ответ

0

вручную спровоцировав обновления один раз возможного

Да, но не с startMonitoringSignificantLocationChanges. Вам нужно будет позвонить startUpdatingLocation. Обратите внимание, что даже тогда вам может потребоваться несколько вызовов для вашего делегата и несколько секунд, прежде чем вы получите одно полезное обновление.

Что мне делать? (example code here), чтобы наблюдать как horizontalAccuracy и timestamp, и останавливается, когда я либо получить достаточно точное местоположение или слишком много времени проходит.

0

Запустите его, если вы хотите начать сканирование обновлений, но не тогда, когда вы хотите немедленное местоположение.

Если вы хотите немедленное местоположение, запросите его с помощью manager.location. Если ответ nil, то в настоящее время нет места, и вам нужно подождать. Если местоположение возвращено, вы можете проверить timestamp, чтобы определить, можете ли вы его использовать.

0

из документации:

startUpdatingLocation

Calling этот метод несколько раз подряд автоматически не приводят к появлению новых событий генерируется. Однако вызов stopUpdatingLocation между ними приводит к отправке нового начального события при следующем вызове этого метода.

, чтобы вы могли остановить и немедленно перезапустить обновления местоположения, чтобы вызвать его вручную!

Смежные вопросы