2011-03-08 4 views
0

`Salut J'ai un problème lors de l'utilisation de la méthode distanceFromLocation, où elle retourne toujours zéro.CLLocation distanceFromLocation renvoie toujours 0

voici mon extrait de code:

NSArray *arrATMItem = [arrATMs objectAtIndex:indexPath.row]; 
cell.textLabel.text = [arrATMItem objectAtIndex:0]; 

float lat = [[arrATMItem objectAtIndex:1] floatValue]; 
float lon = [[arrATMItem objectAtIndex:2] floatValue]; 
CLLocation *branchLoc = [[CLLocation alloc] initWithLatitude:lat longitude:lon]; 

CLLocationDistance dist = [currentLocation distanceFromLocation:branchLoc]; 
NSLog(@"distance = %d",dist); 
cell.detailTextLabel.text = [[NSString alloc] initWithFormat:@"%d m", dist]; 

J'ai aussi vérifié le branchLoc et currentLoc instance a la bonne valeur est ici une valeur exemple de branchLog Lat: -6,17503957 longue: 106,79891717 et la valeur pour currentLoc est lat : -6.17603957 long: 106.79891717

Les valeurs branchLoc sont extraites d'un fichier plist et le currentLoc est obtenu à partir de la classe CLLocation sur la méthode CLLocation locationUpdate définie dans mon fichier délégué.

J'ai essayé d'utiliser% f, et il renvoie également quelque chose comme 0.00000 une idée où je fais mal?

Merci

+0

J'ajoute ce commentaire pour les autres parce que c'est ce qui m'est arrivé. J'utilisais les emplacements de test que j'avais inventés. Cependant, ils étaient invalides (j'ai mélangé le lat et long). Vous pouvez utiliser la fonction 'CLLocationCoordinate2DIsValid (currentLocation.coordinate)' pour déterminer si les coordonnées sont valides ou non. – Roberto

Répondre

0

Essayez d'utiliser double (ou CLLocationDegrees) pour latitude et longitude.

Questions connexes