Si quiero mostrar userLocation en el mapa, y al mismo tiempo récord la ubicación del usuario, ¿es una buena idea añadir un observador a userLocation.location y registrar los lugares, o debería seguir utilizando CLLocationManager para el registro de la ubicación del usuario y el uso mapView.showUserLocation para mostrar la ubicación actual del usuario (indicador azul)? Quiero mostrar el indicador azul por defecto con el apoyo de la API MapKit.
Además, aquí hay un código de ejemplo en bruto:
- (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
// ...
}
Bajo el capó, creo que también utiliza MKMapView CLLocationManager para obtener la ubicación actual del usuario? Por lo tanto, será este crea ningún problema porque creo tanto CLLocationManager y MapView intentarán utilizar los mismos servicios de ubicación? Habrá conflictos y falta de precisión requerido / o datos actual?













