Por lo tanto, el uso de un CLLocateManager único, puede crear una clase para ser el delegado por todo lo que los mapas, por lo que, en lugar de hacerlo:.
self.locationManager = [[CLLocationManager alloc] init];
_locationManager.delegate = self;
hacer algo como:
self.locationManager = [[CLLocationManager alloc] init];
_locationManager.delegate = mySharedDelegate;
Donde mySharedDelegate es su clase con todos los métodos de delegado CLLocationManager.
Sólo se puede obtener una coordenada válido para la userLocation, después de la primera convocatoria de
- (void)locationManager:(CLLocationManager *)manager didUpdateToLocation:(CLLocation *)newLocation fromLocation:(CLLocation *)oldLocation
Cuando este método se llama es porque el GPS ha encontrado la nueva ubicación y por lo que el punto azul será trasladado hasta allí y userLocation tendrá la nueva coordenada.
utilizar el método siguiente de su delegado CLLocationManager para registrar la ubicación actual cuando se encuentra:
- (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);
}
¿Posee la idea?
Saludos,
VFn
Hola joec, ¿Qué quieres decir con "esto no devuelve un punto azul válido en mi ubicación"? Mire mi respuesta que puede ser útil. – vfn
¡Buena pregunta! +1, ¡pero la respuesta seleccionada nunca funcionará! entonces -1 –
Las respuestas que se aceptan aquí son incorrectas, No funcionará, para la solución correcta, lea las respuestas a esta pregunta [http://stackoverflow.com/questions/1449486/iphone-current-user-location-coordinates-showing- as-0-0] (http: // stackoverflow.com/questions/1449486/iphone-current-user-location-coordinates-showing-as-0-0) Espero que esto tenga sentido –