Частота обновления локатора местоположения, iphone
У меня есть менеджер CLLocation, называемый "myLocation".
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];
и функция обновления местоположения
- (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 );
}
Есть ли способ найти частоту обновления диспетчера местоположений, а если его можно увеличить или уменьшить?
Ответы
Ответ 1
Обновление вашего местоположения начинается только при вызове метода [locationManager startUpdatingLocation]
.
Вы можете контролировать частоту обновления с помощью NSTimer
. Вызывайте метод startUpdatingLocation
с регулярными интервалами всякий раз, когда вам требуется обновление местоположения, а затем сразу вызывайте метод stopUpdatingLocation
. В следующий раз вы получите обновление местоположения только в интервале, установленном в NSTimer
.
Ответ 2
Для обнаружения даже малейших движений вам нужно установить
myLocation.distanceFilter = kCLDistanceFilterNone ;
Но, пожалуйста, имейте в виду, позволяя менеджеру местоположений генерировать обновления даже для малейших движений, может закончиться большим количеством использования батареи.