iPhone Development - CLLocationManager vs. MapKit

hlasů
6

Když chci ukázat userLocation na mapě, a zároveň záznam umístění uživatele, je to dobrý nápad pro přidání jednoho pozorovatele userLocation.location a zaznamenávat místa, nebo mám ještě používat CLLocationManager pro zaznamenávání polohy uživatele a využívání mapView.showUserLocation zobrazit aktuální polohu uživatele (modrá kontrolka)? Chci ukázat modrý indikátor výchozí podporovaný MapKit API.

Také tady je hrubý ukázkový kód:

- (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 kapotou, myslím MKMapView také používá CLLocationManager získat aktuální polohu uživatele? Ano, bude to způsobit žádné problémy, protože věřím, že oba CLLocationManager a MapView se pokusí použít stejné lokalizační služby? Budou nějaké konflikty a nedostatek přesných / požadované nebo aktuální údaje?

Položena 07/04/2010 v 07:49
zdroj uživatelem
V jiných jazycích...                            


1 odpovědí

hlasů
1

Viz tento SO položka : CLLocationManager používá stejná data napříč všemi jeho instancí, takže není žádný konflikt.

Odpovězeno 07/04/2010 v 09:07
zdroj uživatelem

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