MKMapView показывает расположение пользователя и загружать пользовательские аннотации - PullRequest
0 голосов
/ 18 ноября 2011

Мы используем MKMapView с showsUserLocation = YES, поэтому мы видим синюю точку и кольцо точности. Мы также реализовали mapView:didUpdateUserLocation: для захвата обновлений. С помощью этого метода мы получаем местоположение пользователя и используем его для вызова веб-службы, результаты которой в итоге становятся аннотациями карты.

Проблема

Пока showsUserLocation = YES, метод mapView:didUpdateUserLocation: периодически вызывается. Нам нужно только узнать местоположение пользователей в определенное время, например, viewDidAppear или когда пользователь касается кнопки. Если мы установим showsUserLocation на NO после первого обновления, мы потеряем синюю точку, которую мы хотели бы сохранить.

Идеи

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

Другая идея состоит в том, чтобы использовать CLLocationManager и вручную разместить пин-код на карте, проблема с ним заключается в том, как имитировать синий круг и кольцо точности.

Кто-нибудь знает примеры? Или есть мысли о том, как справиться с этим? Спасибо

Ответы [ 2 ]

0 голосов
/ 14 августа 2013

Подход был использовать первую идею.Поскольку нет дальнейших действий / ответов, и учитывая возраст вопроса, этот ответ будет принят.

0 голосов
/ 18 ноября 2011

Самая простая идея - просто игнорировать все обратные вызовы после первого хорошего, который вы получите. Или ваша первая идея, чтобы проверить и посмотреть, как далеко новое местоположение от предыдущего, является хорошим. Имитация синей точки и пульсирующего кольца точности намного сложнее.

...