Если я хочу, чтобы показать userLocation на карте, и в то же время записи местоположения пользователя, это хорошая идея, чтобы добавить к наблюдателю userLocation.location и записывать места, или я должен еще использовать CLLocationManager для записи местоположения пользователя и использования mapView.showUserLocation показать текущее местоположение пользователя (синий индикатор)? Я хочу, чтобы показать синий индикатор по умолчанию, поддерживаемый MapKit API.
Кроме того, здесь грубый пример кода:
- (void)viewDidLoad {
...
locationManager = [[CLLocationManager alloc] init];
locationManager.desiredAccuracy = kCLLocationAccuracyBest;
locationManager.distanceFilter = DISTANCE_FILTER_VALUE;
locationManager.delegate = self;
[locationManager startUpdatingLocation];
myMapView.showUserLocation = YES;
[myMapView addObserver:self forKeyPath:@userLocation.location options:0 context:nil];
...
}
- (void)observeValueForKeyPath:(NSString *)keyPath ofObject:(id)object change:(NSDictionary *)change context:(void *)context {
// Record the location information
// ...
}
- (void)locationManager:(CLLocationManager *)manager didUpdateToLocation:(CLLocation *)newLocation fromLocation:(CLLocation *)oldLocation {
NSLog(@%s begins., __FUNCTION__);
// Make sure that the location returned has the desired accuracy
if (newLocation.horizontalAccuracy <= manager.desiredAccuracy)
return;
// Record the location information
// ...
}
Под капотом, я думаю, что MKMapView также использует CLLocationManager, чтобы получить текущее местоположение пользователя? Итак, будет ли это создавать какие-либо проблемы, потому что я полагаю, что оба CLLocationManager и MapView будут пытаться использовать те же услуги, местоположение? Будут ли какие-либо конфликты и отсутствие точной / требуется или текущие данные?













