iPhone Ανάπτυξη - CLLocationManager εναντίον MapKit

ψήφοι
6

Αν θέλω να δείξω userLocation στο χάρτη, και ταυτόχρονα ρεκόρ τοποθεσία του χρήστη, είναι μια καλή ιδέα να προσθέσετε έναν παρατηρητή σε userLocation.location και να καταγράψει τις θέσεις, ή θα πρέπει να εξακολουθούν να χρησιμοποιήσω CLLocationManager για την καταγραφή θέση του χρήστη και τη χρήση mapView.showUserLocation για να δείξει την τρέχουσα θέση του χρήστη (μπλε δείκτης); Θέλω να δείξω την προεπιλεγμένη μπλε ένδειξη που υποστηρίζονται από το MapKit API.

Επίσης, εδώ είναι μια πρόχειρη δείγμα κώδικα:

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

Κάτω από το καπό, νομίζω ότι MKMapView χρησιμοποιεί επίσης CLLocationManager για να πάρει την τρέχουσα θέση του χρήστη; Έτσι, αυτό θα δημιουργήσει προβλήματα, επειδή πιστεύω τόσο CLLocationManager και MapView θα προσπαθήσει να χρησιμοποιήσει ίδιες υπηρεσίες τοποθεσίας; Θα υπάρξουν συγκρούσεις και την έλλειψη ακριβών / απαιτείται ή τα σημερινά δεδομένα;

Δημοσιεύθηκε 07/04/2010 στις 07:49
πηγή χρήστη
Σε άλλες γλώσσες...                            


1 απαντήσεις

ψήφοι
1

Δείτε αυτό το SO καταχώρηση : CLLocationManager χρησιμοποιεί τα ίδια δεδομένα σε όλες τις περιπτώσεις, έτσι δεν υπάρχει καμία σύγκρουση.

Απαντήθηκε 07/04/2010 στις 09:07
πηγή χρήστη

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