Quindi, per usare un CLLocateManager unico, è possibile creare una classe di essere il delegato per tutti voi le mappe, così, invece di fare:.
self.locationManager = [[CLLocationManager alloc] init];
_locationManager.delegate = self;
fare qualcosa di simile:
self.locationManager = [[CLLocationManager alloc] init];
_locationManager.delegate = mySharedDelegate;
Dove mySharedDelegate è la classe con tutti i metodi delegati di CLLocationManager.
Si può ottenere solo una valida coordinata per l'userLocation, dopo la prima chiamata di
- (void)locationManager:(CLLocationManager *)manager didUpdateToLocation:(CLLocation *)newLocation fromLocation:(CLLocation *)oldLocation
Quando questo metodo viene chiamato è perché il GPS ha trovato nella nuova posizione e quindi il punto blu verrà spostato in là e la posizione utente avrà la nuova coordinata.
utilizzare il seguente metodo sul vostro delegato CLLocationManager per registrare la posizione corrente quando si trova:
- (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);
}
Avete avuto l'idea?
Cheers,
VFN
Ciao joec, cosa intendi con "questo non restituisce un punto blu valido nella mia posizione"? Dai un'occhiata alla mia risposta che può essere utile. – vfn
Buona domanda! +1, ma la risposta selezionata non funzionerà mai! quindi -1! –
Le risposte accettate qui sono errate, non funzionerà, per la soluzione giusta leggere le risposte di questa domanda [http://stackoverflow.com/questions/1449486/iphone-current-user-location-coordinates-showing- as-0-0] (http: // StackOverflow.it/questions/1449486/iphone-current-user-location-coordinates-shows-as-0-0) Spero che questo abbia senso –