Wenn ich will userLocation auf der Karte zeigen und zugleich Rekord Standort des Benutzers, ist es eine gute Idee, einen Beobachter zu userLocation.location und notieren Sie die Standorte hinzuzufügen, oder soll ich noch CLLocationManager verwende zum Aufzeichnen von Benutzern Lage und Nutzung mapView.showUserLocation zeigt den aktuellen Standort des Benutzers (blaue Anzeige)? Ich mag die Standard-blaue LED-Anzeige durch die MapKit API unterstützt zeigen.
Auch hier ist ein grober Beispielcode:
- (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
// ...
}
Unter der Haube, ich denke, MKMapView verwendet CLLocationManager auch Benutzer die aktuelle Lage zu bekommen? So wird, erstellen Sie diese Probleme, weil ich beide CLLocationManager und MapView glauben versuchen gleichen Standort-Dienste zu benutzen? Wird es Konflikte und der Mangel an genau sein / erforderlich oder aktuelle Daten?













