Dezvoltare iPhone - CLLocationManager vs. MapKit

voturi
6

Dacă vreau să arate userLocation pe hartă, și în același timp înregistrare locația utilizatorului, este o idee bună să adăugați un observator la userLocation.location și să înregistreze locațiile, sau ar trebui să utilizeze în continuare CLLocationManager pentru înregistrarea locația utilizatorului și utilizarea mapView.showUserLocation pentru a afișa locația curentă a utilizatorului (indicatorul albastru)? Vreau să arăt indicatorul albastru implicit acceptat de API-ul MapKit.

De asemenea, aici este un exemplu de cod dur:

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

Sub capota, cred că MKMapView folosește de asemenea CLLocationManager pentru a obține locația actuală a utilizatorului? Deci, va crea probleme acest lucru, deoarece consider că ambele CLLocationManager și MapView vor încerca să folosească serviciile de aceeași locație? Vor exista conflicte și lipsa de informații exacte / necesare sau curente de date?

Întrebat 07/04/2010 la 07:49
sursa de către utilizator
În alte limbi...                            


1 răspunsuri

voturi
1

A se vedea această intrare SO : CLLocationManager utilizează aceleași date în toate cazurile sale, astfel încât nu există nici un conflict.

Publicat 07/04/2010 la 09:07
sursa de către utilizator

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