iPhone Development - CLLocationManager vs. MapKit

szavazat
6

Ha azt akarom megmutatni userLocation a térképen, és egyúttal rögzíti a felhasználó tartózkodási helyét, ez egy jó ötlet, hogy adjunk egy megfigyelő userLocation.location és rögzíti azokat a helyeket, vagy kell még használni CLLocationManager rögzítésére szolgáló felhasználói elhelyezkedése és használata, mapView.showUserLocation megmutatni a felhasználó aktuális tartózkodási helyét (kék jelzés)? Meg akarom mutatni az alapértelmezett kék indikátor által támogatott MapKit API.

Továbbá, itt egy durva minta 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
    // ...
}

A motorháztető alatt, azt hiszem MKMapView is használ CLLocationManager hogy a felhasználó aktuális tartózkodási helyét? Szóval, ez okoz problémát, mert úgy vélem mind CLLocationManager és MapView megpróbálja használni ugyanazon a helyen szolgáltatásokat? Lesznek konfliktusok és nem állnak rendelkezésre pontos / kötelező vagy az aktuális adatokat?

A kérdést 07/04/2010 07:49
a forrás felhasználó
Más nyelveken...                            


1 válasz

szavazat
1

Lásd ezt SO bejegyzés : CLLocationManager használja ugyanazt az adatot alkalmaz minden esetben, így nincs konfliktus.

Válaszolt 07/04/2010 09:07
a forrás felhasználó

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