В моем приложении для iPhone у меня есть следующая логика:
Запустить CLLocationManger (пользователь может предоставить параметры точности и фильтры расстояния в locationmanager, поскольку в моем случае лучшая точность не требуется100-300 метров подойдут, и я бы хотел сэкономить на этом батарею.
После того, как LocationManager получит исправление GPS (и только если оно получено),Я создаю и отображаю карту.И CLLocationManager, и MKmapView являются частью одного и того же ViewController.Чтобы показать текущее местоположение, я установил mapView.showsUserLocation: YES, чтобы отобразить синюю точку.LocationManager, который я запустил, все еще продолжает работать, получая обновления GPS.
В документации Apple об этом говорится в MKMapView showsUserLocation:
Установка этого свойства в YES приводит к отображению картыиспользовать базовую структуру местоположения, чтобы найти текущее местоположение.Пока это свойство имеет значение YES, представление карты продолжает отслеживать местоположение пользователя и периодически его обновлять.
Нет слов о том, какую точность или фильтр расстояний он использует для текущего местоположения MKMapView.Мне кажется, что на данный момент у меня есть и locationManager, который я запустил сам, и собственный mapVanager mapView, который обновляет местоположения!
Помните, я хотел сэкономить заряд батареи, установив фильтр точности и расстояния?Будут ли эти параметры соблюдаться в locationManager mapView?
Кроме того, эти два менеджера местоположения будут синхронизированы один с другим?Я обновляю карту, чтобы отцентрировать ее с новыми GPS-координатами, которые получает мое первоначальное местоположениеManager.Но я также хочу, чтобы синяя точка была видна в центре карты.Будет ли оно также обновляться каждый раз, так как у showView пользователя mapView установлено значение TRUE?
Буду признателен всем, кто знает об этом.