So einen einzigartigen CLLocateManager zu verwenden, können Sie eine Klasse erstellen, die Delegierten für alle Sie Karten sein, so, anstatt das zu tun.
self.locationManager = [[CLLocationManager alloc] init];
_locationManager.delegate = self;
Sie so etwas wie:
self.locationManager = [[CLLocationManager alloc] init];
_locationManager.delegate = mySharedDelegate;
Dabei ist mySharedDelegate die Klasse mit allen CLLocationManager-Delegatmethoden.
können Sie erhalten nur gültig für die userLocation, nach dem ersten Aufruf von
- (void)locationManager:(CLLocationManager *)manager didUpdateToLocation:(CLLocation *)newLocation fromLocation:(CLLocation *)oldLocation
koordinieren Wenn diese Methode aufgerufen wird, ist es, weil das GPS die neue Position und so der blaue Punkt dort bewegt wird gefunden und das userLocation wird die neue Koordinate haben.
Verwenden Sie das folgende Verfahren auf Ihrem CLLocationManager Delegat den aktuellen Standort zu protokollieren, wenn es gefunden wird:
- (void)locationManager:(CLLocationManager *)manager didUpdateToLocation:(CLLocation *)newLocation fromLocation:(CLLocation *)oldLocation
{
NSLog(@"---------- locationManager didUpdateToLocation");
location=newLocation.coordinate;
NSLog(@"Location after calibration, user location (%f, %f)", _mapView.userLocation.coordinate.latitude, _mapView.userLocation.coordinate.longitude);
}
Haben Sie auf die Idee gekommen?
Cheers,
VFN
Hallo Joec, was meinst du mit "das gibt keinen gültigen blauen Punkt an meinem Standort zurück"? Werfen Sie einen Blick auf meine Antwort, dass es hilfreich sein kann. – vfn
Gute Frage! +1, aber ausgewählte Antwort wird nie funktionieren! so -1! –
Die Antworten, die hier akzeptiert wird, ist falsch, es wird nicht funktionieren, für die richtige Lösung lesen Sie die Antworten dieser Frage [http://stackoverflow.com/questions/1449486/iphone-current-user-location-coordinates-showing- as-0-0] (http: // Stapelüberlauf.com/questions/1449486/iphone-current-user-location-coordinates-showing-as-0-0) Hoffe das macht Sinn –