Как вы, наверное, знаете, это код для инициализации и запуска менеджера местоположений:
locationManager = [[CLLocationManager alloc] init];
locationManager.delegate = self;
locationManager.distanceFilter = kCLDistanceFilterNone;
locationManager.desiredAccuracy = kCLLocationAccuracyNearestTenMeters;
[locationManager startUpdatingLocation];
И реализовать didUpdateToLocation следующим образом:
- (void) locationManager:(CLLocationManager*)manager didUpdateToLocation:(CLLocation*)newLocation fromLocation:(CLLocation*) oldLocation
{
// This will be called every time the device has any new location information.
}
Система будет вызывать didUpdateToLocation
каждый раз, когда происходит обновление местоположения. Если система не обнаружит изменение местоположения, didUpdateToLocation
не будет вызвано. Единственное, что вы можете сделать, это установить distanceFilter
и desiredAccuracy
, как я делал в примере, чтобы дать вам высочайшую точность.
Обновление
Для большей точности используйте kCLLocationAccuracyBest вместо kCLLocationAccuracyNearestTenMeters.