Dacă vreau să arate userLocation pe hartă, și în același timp înregistrare locația utilizatorului, este o idee bună să adăugați un observator la userLocation.location și să înregistreze locațiile, sau ar trebui să utilizeze în continuare CLLocationManager pentru înregistrarea locația utilizatorului și utilizarea mapView.showUserLocation pentru a afișa locația curentă a utilizatorului (indicatorul albastru)? Vreau să arăt indicatorul albastru implicit acceptat de API-ul MapKit.
De asemenea, aici este un exemplu de cod dur:
- (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
// ...
}
Sub capota, cred că MKMapView folosește de asemenea CLLocationManager pentru a obține locația actuală a utilizatorului? Deci, va crea probleme acest lucru, deoarece consider că ambele CLLocationManager și MapView vor încerca să folosească serviciile de aceeași locație? Vor exista conflicte și lipsa de informații exacte / necesare sau curente de date?













