iPhone - карта центра, пока она не получит полную точность - PullRequest
0 голосов
/ 14 апреля 2011

Я делаю приложение, и при его открытии я начинаю получать местоположение пользователя и центрировать карту по местоположению пользователя:

    locationManager = [[CLLocationManager alloc] init];
locationManager.delegate = self;
locationManager.desiredAccuracy = kCLLocationAccuracyBest;

    [locationManager startUpdatingLocation];

Затем у меня есть

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

    location = newLocation.coordinate;

    if (isOpening) {

        //Center location and set zoom on user when opening the app
        MKCoordinateRegion region;
        region.center = location;

        //Set Zoom level using Span
        MKCoordinateSpan span;
        span.latitudeDelta = .005;
        span.longitudeDelta = .005;
        region.span = span;

        isOpening = NO;

        [mapView setRegion:region animated:TRUE]; 
    }


}

Использование isOpeningфлаг, карта перестает центрироваться, пока не достигнет полной точности, но если я не установлю флаг, карта будет центрироваться снова и снова.Есть ли способ получить местоположение и центрировать карту с полной точностью, а затем прекратить центрировать ее?

1 Ответ

0 голосов
/ 14 апреля 2011

Вот как я это делаю:

- (void)mapView:(MKMapView *)mapView didUpdateUserLocation:(MKUserLocation *)userLocation {
    NSTimeInterval locationAge = -[userLocation.location.timestamp timeIntervalSinceNow];
    if (locationAge > 5.0) return;
    if (userLocation.location.horizontalAccuracy < 0) return;

    CLLocation *location = userLocation.location;
    static BOOL found = NO;
    if (location && !found) {
        MKCoordinateRegion region = MKCoordinateRegionMakeWithDistance(location.coordinate,1000,1000);
        [ridesMap setRegion:region animated:YES];
        found = YES;
    }//end if

}//end
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...