Tengo un problema con mi aplicación. Estoy tratando de encontrar la ubicación del usuario con la mejor precisión para determinar su código postal. Actualmente tengo un botón que, cuando se presiona, inicia un método llamado locateMe
.¿Cómo se espera hasta que la ubicación se encuentre por completo? (Ubicación principal)
-(IBAction)locateMe; {
self.locationManager = [[CLLocationManager alloc] init];
locationManager.delegate = self;
locationManager.desiredAccuracy = kCLLocationAccuracyBest;
[locationManager startUpdatingLocation];
Luego he implementado didUpdateToLocation:
-(void)locationManager:(CLLocationManager *)manager
didUpdateToLocation:(CLLocation *)newLocation
fromLocation:(CLLocation *)oldLocation; {
NSLog(@"Found location! %f,%f",newLocation.coordinate.latitude,newLocation.coordinate.longitude);
}
que había hecho previamente mucho más complicado cosas en didUpdateToLocation
pero como ya he probado algunas cosas que se dieron cuenta de que el primer lugar que encontró no era precisa en lo más mínimo . Por lo tanto, puse la llamada NSLog
allí y me dio una salida similar a la de abajo ...
Found location! 39.594093,-98.614834
Found location! 39.601372,-98.592171
Found location! 39.601372,-98.592171
Found location! 39.611444,-98.538196
Found location! 39.611444,-98.538196
Como se puede ver, en primer lugar me da un valor que no es correcto, que estaba causando problemas dentro de mi aplicación porque no estaba dando la ubicación correcta.
Así que, esta es mi pregunta. ¿Hay alguna manera de que pueda esperar a que el administrador de ubicación termine de encontrar la ubicación más precisa?
¡Gracias de antemano!
EDIT: estoy queriendo algo como esto:
if (newLocation.horizontalAccuracy <= locationManager.desiredAccuracy) {
}
Pero nunca es llamada!
Ahora que lo mencionas, creo que debería comenzar a recibir la ubicación tan pronto como se abra la vista de configuración (aquí es donde estoy agarrando mi ubicación). –
De acuerdo. Si comienza a detectar la ubicación demasiado pronto, se agotará la batería del dispositivo. Así que recomiendo detectar la ubicación solo cuando sea realmente necesario. –
Gracias por su ayuda. ¿Cómo puedo descartar la primera ubicación que da? ¿Usaría un contador? –