getDistanceFrom
ist jetzt veraltet, also hier ist eine alternative Antwort für alle, die dies tun möchten.
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];
Wie oben erwähnt, könnten Sie float
statt double
verwenden und die Ergebnisse in einen int werfen könnte, wenn Sie also nicht die Präzision der float
wie erfordern:
int distanceCastToInt = (int) [pointALocation distanceFromLocation:pointBLocation];
Die int
ist praktisch, wenn Sie eine grobe Vorstellung von der Entfernung in der Anmerkung wie folgt geben wollten:
pointAAnnotation.title = @"Point A";
pointAAnnotation.subtitle = [NSString stringWithFormat: @"Distance: %im",distanceCastToInt];
Der Untertitel von t Die Annotation würde beispielsweise "Entfernung: 50m" lauten.
können Sie Ihre Frage mehr erklären, so können wir die genaue Anforderung verstehen? –
Ich habe die Frage bearbeiten. Lassen Sie mich wissen, wenn Sie weitere Informationen benötigen. – user230949