Pergunta

Se eu quiser mostrar o UserLocation no mapa e, ao mesmo tempo, gravar a localização do usuário, é uma boa idéia adicionar um observador ao UserLocation.Location e gravar os locais, ou ainda devo usar o CllocationManager para gravar a localização do usuário e usar MapView.ShowUserLocation para mostrar o local atual do usuário (Indicador Azul)? Quero mostrar o indicador azul padrão suportado pela API MAPKIT.

Além disso, aqui está um código de amostra aproximado:

- (void)viewDidLoad {
    ...

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

    myMapView.showUserLocation = YES;
    [myMapView addObserver:self forKeyPath:@"userLocation.location" options:0 context:nil];

    ...
}

- (void)observeValueForKeyPath:(NSString *)keyPath ofObject:(id)object change:(NSDictionary *)change context:(void *)context {
    // Record the location information
    // ...
}

- (void)locationManager:(CLLocationManager *)manager didUpdateToLocation:(CLLocation *)newLocation fromLocation:(CLLocation *)oldLocation { 
    NSLog(@"%s begins.", __FUNCTION__);

    // Make sure that the location returned has the desired accuracy
    if (newLocation.horizontalAccuracy <= manager.desiredAccuracy)
        return;

    // Record the location information
    // ...
}

Sob o capô, acho que o MKMapView também usa o CllocationManager para obter o local atual do usuário? Então, isso criará problemas porque acredito que o CllocationManager e o MapView tentarão usar os mesmos serviços de localização? Haverá algum conflito e falta de dados precisos/necessários ou atuais?

Foi útil?

Solução

Veja isso Então, entrada: CllocationManager usa os mesmos dados em todas as suas instâncias, para que não haja conflito.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top