Η εύρεση θέση πριν το χάρτη φορτία

ψήφοι
1

Είμαι προσπαθεί να βρει τη θέση του χρήστη με τη χρήση:

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

Το πρόβλημα είναι ότι δεν έχουν ακόμη προετοιμαστεί το χάρτη έτσι ώστε το παραπάνω δεν λειτουργεί. Είναι ένας τρόπος για να πάρει τη θέση του χρήστη χωρίς τη χρήση mapkit εκεί; Ή θα έπρεπε να είναι, χρησιμοποιώντας μια διαφορετική τεχνική;

Δημοσιεύθηκε 12/03/2010 στις 21:34
πηγή χρήστη
Σε άλλες γλώσσες...                            


2 απαντήσεις

ψήφοι
1

Για να πάρετε την τοποθεσία του χρήστη, θα πρέπει πραγματικά να «ξεκινήσει» με τον υπεύθυνο του θέση πριν προσπαθήσετε να διαβάσετε τις πληροφορίες τοποθεσίας. Προτείνω να εξετάσουμε LocateMe δείγμα από την Apple.

LocateMe Δείγμα κώδικα

Με λίγα λόγια, πληροφορίες για τον εντοπισμό πάρει χρήστη μπορεί να γίνει σε δύο στάδια:

- (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; 
}

... και μετά,

- (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;
    }
}

Η ελπίδα αυτό βοηθά!

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

ψήφοι
0

Διέγραψα σχεδόν σε αυτήν την ερώτηση, αλλά δείτε κάποιον που έδωσε μέχρι ψηφοφορία. Αυτή φαίνεται να είναι η απάντηση:

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

appDelegate είναι απλώς μια αναφορά στον εκπρόσωπο εφαρμογή, όπου τοποθεσίας παράδειγμα μάνατζέρ μου ζει.

Απαντήθηκε 12/03/2010 στις 21:41
πηγή χρήστη

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