У меня есть MKMapView, в котором я удаляю аннотацию каждый раз при загрузке представления или когда вызывается showLocation
метод пользовательского класса.
Мне нужна точность, чтобы быть лучшим
-(void)viewDidLoad {
locationManager = [[CLLocationManager alloc] init];
locationManager.delegate = self;
locationManager.distanceFilter = kCLDistanceFilterNone;
locationManager.desiredAccuracy = kCLLocationAccuracyBestForNavigation;
[locationManager startUpdatingLocation];
}
-(IBAction) showLocation:(id) sender{
[locationManager startUpdatingLocation];
}
- (void) locationManager:(CLLocationManager *) manager
didUpdateToLocation:(CLLocation *) newLocation
fromLocation:(CLLocation *) oldLocation {
// start geocoding with newLocation coordinate which will automatically set annotation.
SVGeocoder *geocodeRequest = [[SVGeocoder alloc]
initWithCoordinate:CLLocationCoordinate2DMake(newLocation.coordinate.latitude, newLocation.coordinate.longitude)];
[geocodeRequest setDelegate:self];
[geocodeRequest startAsynchronous];
[geocodeRequest release];
[locationManager stopUpdatingLocation];
}
У меня вопрос, когда будет вызван метод didUpdateToLocation
? Только после обнаружения нового местоположения, когда я выполняю [locationManager startUpdatingLocation]
?
Я сталкиваюсь с какой-то странной проблемой, когда пользователь путешествует и находится на стоянке.
Скажем, пользователь путешествует из точки A-> B-> C-> D с интервалами в 1 минуту между точками. Когда я вызываю мой метод в точке C, иногда он возвращает координаты точки A, иногда точки B, а иногда C. Это просто случайно.
Это еще более странно, когда я нахожусь на стационарном. Я получаю разные координаты при вызове метода showLocation
, даже если я подключен к своему домашнему WiFi.
Я думал о реализации didUpdateToLocation, чтобы получить наилучший результат за 5 секунд. Если в течение 5 секунд он находит определенное местоположение с точностью, которую я определил, то используйте координату. Если нет, используйте лучшее, что было найдено за 5 секунд. Но так как я новичок, я не уверен, как написать что-то подобное. Я прочитал NSTimer и похоже, что он может работать.
Любые советы, ребята?
Заранее большое спасибо!