2011-09-30 6 views
1

Je veux obtenir l'emplacement actuel, je vois avec ce code mais comment puis-je attribuer à cette latitude et la longitude à l'étiquette lorsque vous cliquez sur un bouton?obtenir la latitude et la longitude

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

    NSLog(@"latitudeAAAAA %f",newLocation.coordinate.latitude); 
    NSLog(@"longitudeAAAA %f",newLocation.coordinate.longitude); 
    [corelocation stopUpdatingLocation]; 
} 

Répondre

1

Vous devez définir votre propre classe en tant que délégué de la votre CLLocationManager puis appelez startUpdatingLocation (docs) pour faire appel à la méthode que vous mentionnez. Le rappel viendra à un moment donné après que vous lui avez demandé de commencer la mise à jour de l'emplacement, et continuera à venir jusqu'à ce que vous lui demandiez d'arrêter. Vous devrez déterminer pour votre cas d'utilisation si cela doit commencer par lui-même, mais seulement enregistrer l'emplacement (ou ce que vous voulez faire avec) quand l'utilisateur clique sur un bouton, ou si les mises à jour devraient commencer lorsque l'utilisateur clique (je ne suis pas sûr de ce que vous voulez dire de votre question).

https://developer.apple.com/library/ios/documentation/CoreLocation/Reference/CLLocationManager_Class/CLLocationManager/CLLocationManager.html#//apple_ref/doc/uid/TP40007125-CH3-SW2

2
label.text = [NSString stringWithFormat:@"%lf,%lf", newLocation.coordinate.latitude, newLocation.coordinate.longitude]; 
0

Dans le générateur d'interface, définissez l'événement touchUpInside appeler - (IBAction)buttonClicked:(id)sender (ou action définie par programmation) puis définissez vos boutons délèguent à l'auto. Sur la configuration de votre viewDidLoadlocationManager:

- (void)viewDidLoad { 
    [super viewDidLoad]; 
    self.locationManager = [[[CLLocationManager alloc] init] autorelease]; 
    [locationManager setDelegate:self]; 
    [locationManager setDesiredAccuracy:kCLLocationAccuracyBest]; 
    [locationManager setDistanceFilter:kCLDistanceFilterNone]; 
    [locationManager startUpdatingLocation]; 
} 

action Bouton:

- (IBAction)buttonClicked:(id)sender { 
    myLabel.text = [NSString stringWithFormat:@"%+.6f,%+.6f", locationManager.location.coordinate.latitude, locationManager.location.coordinate.longitude]; 
    UIAlertView *alert = [[[UIAlertView alloc] initWithTitle:@"Button clicked" message:myLabel.text delegate:self cancelButtonTitle:@"OK" otherButtonTitles:nil] autorelease]; 
    [alert show]; 

} 

Lieu méthodes de délégué Manager:

- (void)locationManager:(CLLocationManager *)manager didUpdateToLocation:(CLLocation *)newLocation fromLocation:(CLLocation *)oldLocation { 
    NSDate* eventDate = newLocation.timestamp; 
    NSTimeInterval howRecent = [eventDate timeIntervalSinceNow]; 
    if (abs(howRecent) < 5.0) { 
     NSLog(@"New Latitude %+.6f, Longitude %+.6f", newLocation.coordinate.latitude, newLocation.coordinate.longitude); 
    } 
} 
Questions connexes