Метод делегата didUpdateToLocation
вызывается постоянно после того, как вы ccll CLLocationManager startUpdatingLocatoin
.
Таким образом, ваш код внутри этого didUpdateToLocation
вызывается каждый раз, когда местоположение обновляется - даже когда вы запускаете приложение обратно из фона.
И метод вызывается много раз в зависимости от свойства distanceFilter
вашего LocationManager. Вы можете подтвердить это, добавив оператор NSLog
в метод делегата и посмотрите, сколько раз он вызывается.
Документы по этому методу:
Обсуждение Реализация этого метода является необязательной Вам следует
реализовать этот метод, однако.
К тому времени, когда это сообщение будет доставлено вашему делегату, новый
данные о местоположении также доступны непосредственно из CLLocationManager
объект. Параметр newLocation может содержать данные, которые были кэшированы
от предыдущего использования службы определения местоположения. Вы можете использовать
свойство timestamp объекта location для определения того,
данные о местоположении.
Следуйте этому руководству и сохраните метку времени (или любой другой вид идентификатора) внутри метода didUpdateToLocation.
Как только вы установили метку времени, вы можете отображать карты Google, используя эти значения. Замечание: Ваш CLLocationManager имеет свойство location
, которое получает обновления каждый раз, когда вызывается didUpdateToLocation
- таким образом, вы можете положиться на это свойство для получения текущего местоположения в другом месте вашего кода.
HTH