Finne brukerstedet før kartopplastinger

stemmer
1

Jeg prøver å finne ut hvor brukeren befinner bruker:

CLLocationCoordinate2D _location;
CLLocation *userLoc = nil;
if(appDelegate.clLocationManager.locationServicesEnabled){
    userLoc = mapView.userLocation.location;
    _location = userLoc.coordinate;
}

Problemet er at jeg ennå ikke har initialisert kartet slik at ovennevnte ikke fungerer. Er det en måte å få brukerens plassering uten å bruke mapkit? Eller bør jeg være å bruke en annen teknikk?

Publisert på 12/03/2010 klokken 20:34
kilden bruker
På andre språk...                            


2 svar

stemmer
1

For å få brukeren befinner du må faktisk "start" plasseringen leder før du prøver å lese informasjon om plassering. Jeg foreslår at du ser på LocateMe prøve fra Apple.

LocateMe Eksempelkode

I et nøtteskall, kan få brukerstedsinformasjon gjøres i to trinn:

- (void)viewDidLoad {
    [[self locationManager] startUpdatingLocation];
}

- (CLLocationManager *)locationManager { 

    if (locationManager != nil) {       
        return locationManager; 
    }

    NSLog(@"%s, Creating new Location Manager instance.", __FUNCTION__);
    locationManager = [[CLLocationManager alloc] init]; 
    locationManager.desiredAccuracy = kCLLocationAccuracyBest; 
    locationManager.distanceFilter = DISTANCE_FILTER_VALUE;
    locationManager.delegate = self; 

    return locationManager; 
}

... og så,

- (void)locationManager:(CLLocationManager *)manager didUpdateToLocation:(CLLocation *)newLocation fromLocation:(CLLocation *)oldLocation { 
    NSLog(@"%s, location manager returned a new location.", __FUNCTION__);

    // Check if location is valid (or good enough for us), 
    // and then process the location
    if ([self locationIsValid:newLocation]) {
            [self processLocation:newLocation];

            // Very important! When your done with it, stop the location manager
            [[self locationManager] sopUpdatingLocation];

            // (Maybe even) clear it
            locationManager.delegate = nil;
            [locationManager release];
            locationManager = nil;
    }
}

Håper dette hjelper!

Svarte 19/04/2010 kl. 10:46
kilden bruker

stemmer
0

Jeg nesten slettet dette spørsmålet, men ser noen ga det en opp stemme. Dette synes å være svaret:

CLLocationCoordinate2D _location;
CLLocation *userLoc = nil;
if(appDelegate.clLocationManager.locationServicesEnabled){
    userLoc = appDelegate.clLocationManager.location;
    _location = userLoc.coordinate;
}

appDelegate er bare en referanse til programmet delegere, hvor min plassjef eksempel bor.

Svarte 12/03/2010 kl. 20:41
kilden bruker

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