У меня проблема, когда мне иногда требуется 15 секунд или около того, чтобы найти свое местоположение. Наоборот, Google Maps находит мое местоположение в течение нескольких секунд почти каждый раз. Мне интересно, могу ли я в любом случае ускорить Core Location и CLLocationManager, чтобы он быстрее находил местоположение пользователя. Вот моя установка
self.locationManager = [[CLLocationManager alloc] init];
self.locationManager.activityType = CLActivityTypeFitness;
self.locationManager.delegate = self;
self.locationManager.desiredAccuracy = kCLLocationAccuracyNearestTenMeters;
self.locationManager.distanceFilter = kCLDistanceFilterNone;
[self.locationManager startUpdatingLocation];
[NSTimer scheduledTimerWithTimeInterval:1.5 target:self selector:@selector(checkAccuracy:) userInfo:nil repeats:YES];
Для CLLocationManagerDelegate у меня есть:
- (void)locationManager:(CLLocationManager *)manager didUpdateLocations:(NSArray *)locations {
CLLocation* location = [locations lastObject];
NSDate* eventDate = location.timestamp;
NSTimeInterval howRecent = [eventDate timeIntervalSinceNow];
if (abs(howRecent) < 15.0) {
// If the event is recent, do something with it.
NSLog(@"latitude %+.6f, longitude %+.6f\n",
location.coordinate.latitude,
location.coordinate.longitude);
[[NSNotificationCenter defaultCenter] postNotificationName:kLocationChanged object:nil];
}
}
Уведомление в конце меняет центр просмотра карты. Есть идеи по этому поводу? я что-то упускаю?