getDistanceFrom est maintenant dépréciée voici donc une réponse alternative pour ceux qui cherchent à le faire.
CLLocationCoordinate2D pointACoordinate = [pointAAnnotation coordinate];
CLLocation *pointALocation = [[CLLocation alloc] initWithLatitude:pointACoordinate.latitude longitude:pointACoordinate.longitude];
CLLocationCoordinate2D pointBCoordinate = [pointBAnnotation coordinate];
CLLocation *pointBLocation = [[CLLocation alloc] initWithLatitude:pointBCoordinate.latitude longitude:pointBCoordinate.longitude];
float distanceMeters = [pointALocation distanceFromLocation:pointBLocation];
float distanceMiles = (distanceMeters / 1609.344);
[pointALocation release];
[pointBLocation release];
Comme ci - dessus, vous pouvez utiliser au floatlieu de doubleet vous pourriez lancer les résultats à un int si vous ne souhaitez pas la précision de la floatfaçon:
int distanceCastToInt = (int) [pointALocation distanceFromLocation:pointBLocation];
Le intest à portée de main si vous voulez donner une idée approximative de la distance dans l'annotation comme ceci:
pointAAnnotation.title = @"Point A";
pointAAnnotation.subtitle = [NSString stringWithFormat: @"Distance: %im",distanceCastToInt];
Le sous-titre de l'annotation lirait « Distance: 50m » par exemple.