iPhone Development - CLLocationManager vs. MapKit

głosy
6

Jeśli chcę pokazać userLocation na mapie, a następnie w tym samym czasie rekordu lokalizacji użytkownika, jest to dobry pomysł, aby dodać obserwatora do userLocation.location i zapisać lokalizacje, czy mam nadal korzystać CLLocationManager do nagrywania lokalizację użytkownika i wykorzystanie mapView.showUserLocation pokazać aktualną lokalizację użytkownika (niebieski wskaźnik)? Chcę pokazać domyślny niebieski wskaźnik obsługiwanej przez API MapKit.

Również tutaj jest szorstka przykładowy kod:

- (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
    // ...
}

Pod maską, myślę MKMapView wykorzystuje również CLLocationManager aby uzyskać bieżącej lokalizacji użytkownika? Tak, to stworzy żadnych problemów, ponieważ wierzę, zarówno CLLocationManager i MapView spróbuje użyć same usługi lokalizacji? Czy będą jakieś konflikty i brak dokładnych / lub prąd wymagane dane?

Utwórz 07/04/2010 o 07:49
źródło użytkownik
W innych językach...                            


1 odpowiedzi

głosy
1

Zobacz ten SO wpis : CLLocationManager wykorzystuje te same dane we wszystkich jego wystąpień, więc nie ma konfliktu.

Odpowiedział 07/04/2010 o 09:07
źródło użytkownik

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more