2011-04-29 4 views
1

j'utilise l'emplacement de base pour obtenir la longitude et la latitude de ma position actuelle et je l'ai affiché dans une étiquette, donc pour mon cas c'est toujours 0,000000 pour la longitude et la latitude, est-ce parce que je travaille sur le simulateur?les valeurs de longitude et de latitude sont 0.000000, pourquoi?

//longitude and latitude 
    // locationManager update as location 
    locationManager = [[CLLocationManager alloc] init]; 
    locationManager.delegate = self; 
    locationManager.desiredAccuracy = kCLLocationAccuracyBest; 
    locationManager.distanceFilter = kCLDistanceFilterNone; 
    [locationManager startUpdatingLocation]; 

    CLLocation *location = [locationManager location]; 

    // Configure the new event with information from the location 
    CLLocationCoordinate2D coordinate = [location coordinate]; 

    NSString *latitude = [NSString stringWithFormat:@"%f", coordinate.latitude]; 
    NSString *longitude = [NSString stringWithFormat:@"%f", coordinate.longitude]; 
+6

sont dans un bateau vous au large des côtes du Ghana? –

Répondre

0

N ° CoreLocation sur le simulateur iPhone est fixée à 37.3317 Nord, 122.0307 Ouest (Apple HQ). Essayez de déplacer votre code locationManager loin de votre code avec l'étiquette. Mettez l'emplacement du code de gestionnaire dans le viewDidLoad ou quelque chose, puis mettre ce code

CLLocation *location = [locationManager location]; 

// Configure the new event with information from the location 
CLLocationCoordinate2D coordinate = [location coordinate]; 

NSString *latitude = [NSString stringWithFormat:@"%f", coordinate.latitude]; 
NSString *longitude = [NSString stringWithFormat:@"%f", coordinate.longitude]; 

dans une fonction que vous appelez d'un bouton. CoreLocation a besoin de temps pour se lancer. C'est vrai sur l'appareil, mais c'est peut-être aussi vrai sur le simulateur.

3

L'initialisation du gestionnaire de position ne vous permet pas de récupérer des valeurs.

vous devez écrire ce

[self.locationManager startUpdatingLocation]; 

alors vous devez remplacer une méthode de rappel

- (void) locationManager:(CLLocationManager *)manager 
    didUpdateToLocation:(CLLocation *) newLocation 
    fromLocation: (CLLocation *) oldLocation { 


    [self.locationManager stopUpdatingLocation]; 
    NSString *latitude = [NSString stringWithFormat:@"%f", newLocation.latitude]; 
     NSString *longitude = [NSString stringWithFormat:@"%f", newLocation.longitude]; 
    [self.locationManager release]; 
} 

Hope that helps!

  • Shuanak
+0

Salut, cela ne m'a pas aidé, les mêmes valeurs sont indiquées dans les étiquettes: (( – Malloc

Questions connexes