2011-09-12 16 views
11

Tengo un administrador de CLLocation llamado "myLocation".Frecuencia de actualización de Location Manager, iphone

myLocation = [[CLLocationManager alloc] init]; 
    myLocation.desiredAccuracy = kCLLocationAccuracyBestForNavigation ; 
    myLocation.distanceFilter = 10 ; 
    myLocation.delegate=self; 



    locationEnabledBool = [CLLocationManager locationServicesEnabled]; 



    if (locationEnabledBool ==NO || ([CLLocationManager authorizationStatus] == kCLAuthorizationStatusDenied)) { 

    // LocationText.text = @"Location Service Disabled "; 
     UIAlertView *locationAlert = [[UIAlertView alloc] initWithTitle:@"Location Service Disabled" 
                 message:@"To re-enable, please go to Settings and turn on Location Service for this app." 
                 delegate:nil 
               cancelButtonTitle:@"OK" 
               otherButtonTitles:nil]; 
     [locationAlert show]; 
     [locationAlert release]; 

    } 

     [myLocation startUpdatingLocation]; 

y la ubicación es función de actualización

- (void)locationManager:(CLLocationManager *)manager 
    didUpdateToLocation:(CLLocation *)newLocation 
      fromLocation:(CLLocation *)oldLocation 
{ 

NSLog(@"old location is %f, %f ", oldLocation.coordinate.latitude, oldLocation.coordinate.longitude); 
NSLog(@"new location is %f,%f",newLocation.coordinate.latitude, newLocation.coordinate.longitude); 
} 

¿Hay una manera de encontrar la frecuencia de actualización de gerente de locación, y si puede ser aumentado o disminuido?

+1

No existe tal opción en el administrador de ubicación .... Se llamará al delegado cada vez que se detecte un cambio en la ubicación. Pero puede variar la precisión ... Es decir, si debe cambiarse cada 10 metros o 100 m o 1 Km ... etc ... – booleanBoy

+0

Pero la actualización de la ubicación también se lleva a cabo si el dispositivo está parado. – alekhine

+0

¿Quiere decir que puede obtener las coordenadas de la ubicación incluso cuando el dispositivo está parado ...? – booleanBoy

Respuesta

21

Su actualización de ubicación solo se inicia cuando llama al método [locationManager startUpdatingLocation].

Puede controlar la frecuencia de la actualización utilizando un NSTimer. Llame al método startUpdatingLocation a intervalos regulares cada vez que necesite una actualización de ubicación y luego llame inmediatamente al método stopUpdatingLocation. La próxima vez obtendrá una actualización de ubicación solo en el intervalo establecido en NSTimer.

+0

Gracias por su paciencia para ayudarme. tu respuesta ciertamente ayudó. la próxima vez haré una pregunta más clara. – alekhine

+0

De nada :) – booleanBoy

+0

@ amol-subhedar necesito un favor de ustedes ... ¿podrían ayudarme? :) – booleanBoy

2

Para detectar el más mínimo de los movimientos, es necesario establecer

myLocation.distanceFilter = kCLDistanceFilterNone ; 

Pero, por favor, tenga en cuenta, dejando gerente de locación para generar actualizaciones para el más mínimo de los movimientos puede terminar en la gran cantidad de uso de la batería .

+1

kCLDistanceFilterNone es el valor predeterminado ... – Jake

Cuestiones relacionadas