Свойство mkmapview.userslocation устанавливается в 0,0 после разрешения приложению использовать текущее местоположение - PullRequest
1 голос
/ 15 декабря 2009

В первый раз, когда пользователь пытается использовать текущее местоположение, свойство map.userslocation имеет координаты 0,0. В следующий раз, когда я загружаю вид, содержащий карту, местоположение пользователя всегда будет найдено.

Я устанавливаю для свойства map.showsUserLocation значение YES для viewDidLoad, и когда карта загружается на экран, появляется синяя точка, но когда я пытаюсь получить координаты с map.userlocation.coorinate, они равны 0,0.

Ход программы идет - (void) viewDidLoad: 1) установите showUserLocation в YES 2) Установите таймер для вызова метода через 6 секунд, который захватывает местоположение пользователя из свойства map.userLocation

- (void) getUsersLocation 1) распечатать местоположение пользователя

Этот процесс прекрасно работает после первой загрузки представления, но при первом запуске представления и предоставлении разрешения на использование своего местоположения координаты возвращаются 0,0

Кто-нибудь знает, почему это происходит и как я могу обойти это?

Спасибо!

Ответы [ 2 ]

2 голосов
/ 15 декабря 2009

вместо того, чтобы произвольно ждать шесть секунд, вы должны реализовать CLLocationManagerDelegate и заметить, когда

locationManager:didUpdateToLocation:fromLocation:

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

1 голос
/ 17 декабря 2009

Дэвид прав, но я заметил, что иногда я вызываю этот метод с местоположением 0,0. Вы должны игнорировать любые такие вызовы, если только вы не считаете, что ваше приложение может использоваться в море у западного побережья Африки.

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