Мы используем MKMapView
с showsUserLocation = YES
, поэтому мы видим синюю точку и кольцо точности. Мы также реализовали mapView:didUpdateUserLocation:
для захвата обновлений. С помощью этого метода мы получаем местоположение пользователя и используем его для вызова веб-службы, результаты которой в итоге становятся аннотациями карты.
Проблема
Пока showsUserLocation = YES
, метод mapView:didUpdateUserLocation:
периодически вызывается. Нам нужно только узнать местоположение пользователей в определенное время, например, viewDidAppear или когда пользователь касается кнопки. Если мы установим showsUserLocation
на NO
после первого обновления, мы потеряем синюю точку, которую мы хотели бы сохранить.
Идеи
Одна из идей состоит в том, чтобы проверить значение MKUserLocation
, полученное mapView:didUpdateUserLocation:
, по сравнению с предыдущим значением, чтобы увидеть, было ли изменение, если затем выполнить проверку, чтобы увидеть, сколько изменений, прежде чем принять решение о загрузке свежих данные.
Другая идея состоит в том, чтобы использовать CLLocationManager
и вручную разместить пин-код на карте, проблема с ним заключается в том, как имитировать синий круг и кольцо точности.
Кто-нибудь знает примеры? Или есть мысли о том, как справиться с этим?
Спасибо