2014-07-10 4 views
0

Je veux la latitude et la longitude actuelle de mon appareil. Je peux imprimer la latitude et la longitude lorsque mon programme localise l'appareil pour la première fois mais je ne peux pas le rafraîchir.IOS comment obtenir en direct la latitude et la longitude

-(void) locationManager:(CLLocationManager *)manager didUpdateLocations:(NSArray *)locations 
{ 
    int lastindex = [locations count]-1; 

    CLLocation * currentLocation = [locations objectAtIndex:lastindex]; 

    float latitude =currentLocation.coordinate.latitude; 

    float longitude =currentLocation.coordinate.longitude; 

    NSLog(@"LAT:%f LONG:%f",latitude,longitude); 

    [self latitudeLabel].text = [[NSString alloc]initWithFormat:@"latitude : %@",[[NSNumber numberWithFloat:latitude] stringValue]]; 

    [self longitudeLabel].text = [[NSString alloc]initWithFormat:@"longitude : %@",[[NSNumber numberWithFloat:longitude] stringValue]]; 

} 

C'est ce que j'ai essayé mais la latitude/longitude n'est jamais mise à jour. Je l'ai essayé avec la fonction didUpdateHeading mais cela n'a pas fonctionné non plus.

Comment puis-je faire cela. Tout le monde peut m'aider à résoudre ce problème. Merci

+0

Irrelevant à votre question, mais vous pouvez utiliser '[locations lastObject]' pour obtenir le dernier emplacement au lieu de calculer l'index à chaque fois. , Vous ne avez pas besoin de 'alloc' votre cordes- vous pouvez juste faire' [NSString stringWithFormat: @ » ...' pour sauver un peu de codage aller de l'avant aussi, pourquoi convertir votre 'float' un' NSNumber'. puis à un 'NSString', quand vous pouvez utiliser le'% f' comme vous le faites dans votre 'NSLog'? – Stonz2

+0

Je l'ai fait un traitement avec mon flotteur mais je ne plus besoin que vous avez raison vous remercie – user3800957

Répondre

1

Cette méthode est déclenchée par startUpdatingLocation que je suppose que vous utilisez car elle a été appelée au moins une fois. La méthode est appelée chaque fois que les données de localisation changent. Votre emplacement change-t-il suffisamment pour le déclencher? En outre, vérifiez la propriété distanceFilter sur votre CLLocationManager et assurez-vous qu'il est suffisamment bas.

+0

oui j'appelle > startUpdatingLocation. le distanceFilter est réglé sur> kCLDistanceFilterNone et desiredAccuracy à> kCLLocationAccuracyBest. Quand je rentre du contrôleur de navigation et appeler mon avis encore une fois la latitude et la longitude est différent. Je veux que mes étiquettes sont mis à jour, car au moment où l'utilisateur avoir à recharger la vue pour obtenir la position actuelle. – user3800957

0

Assurez-vous d'ajouter ce qui suit à votre tête:

@interface YourLocationObject : SomeObject <CLLocationManagerDelegate> 

.. et lorsque vous créez votre objet CLLocationManager, vous vous définissez comme le délégué:

CLLocationManager *locationManager = [[CLLocationManager alloc] init]; 
locationManager.delegate = self; 
//... other customization here ...// 
[locationManager startUpdatingLocations]; 
Questions connexes