Я хочу использовать MKMapView для отображения пользователя текущее местоположение с помощью значения по умолчанию, вдыхая синий контакт, и я хочу записать пользовательское перемещение одновременно. Есть ли какой-либо способ, которым я мог использовать менеджера по GPS (не уверенный, если это - CLLocationManager), использование MKMapView, когда мы позволили ему показать пользовательское местоположение?
Я знаю, что могу создать свой собственный CLLocationManager. Но это испытывает желание добавлять издержки к моему приложению, и я хотел бы, чтобы карта и мое отслеживание остались в синхронизации.
Я уже исследовал следующие идеи без успеха:
[MKMapView showUserLocation:YES]
и включите KVO userLocation
поле. Это не работает, и я задаюсь вопросом, ли это то, вследствие того, что userLocation
поле только для чтения.[MKMapView showUserLocation:YES]
, создайте a MKMapViewDelegate
и добавьте отслеживание, когда представление аннотации для пользовательского местоположения будут требовать. Это не работает, потому что представление аннотации, по-видимому, требуют только однажды???CLLocationManager
и попытайтесь добавить синий контакт вручную. К сожалению, я не нашел синий контакт в доступных типах контактов, таким образом, я пытался создать пользовательскую аннотацию вручную без успеха.Делает у любого есть любая идея, как я могу достигнуть этого и все еще извлечь выгоду из синего контакта или являюсь моим единственным решением использовать a CLLocationManager
и создайте мой собственный контакт?
CLLocationManager
использует одни и те же данные во всех своих экземплярах. MKMapView
внутренне использует данные CLLocationManager
. Тем не менее, решение делать то, что вы хотите, - позволить MKMapView
делать свои собственные вещи в отношении showUserLocation:
. В то же время создайте экземпляр CLLocationManager
и его делегата.
Сообщения делегатов сообщат вам координаты GPS синего булавки MKMapView
. Все будет синхронно друг с другом.