Convertir latitud y longitud en metros o kilómetros.

Tengo dos annotations de MapKit, que muestran la latitud y la longitud.

¿Hay alguna manera para mí, a través de las funciones API de Objective-C iOS existentes para calcular la distancia entre los dos?

El marco de MapKit contiene muchas funciones, y encontrará CLLocationDistance MKMetersBetweenMapPoints(MKMapPoint a, MKMapPoint b); que regresa la distancia, en metros, entre dos puntos en el map. Tal vez puedas usarlo para resolver tu problema.

Primero crea los dos puntos correspondientes y obtén la distancia:

 MKMapPoint p1 = MKMapPointForCoordinate(coord1); MKMapPoint p2 = MKMapPointForCoordinate(coord2); CLLocationDistance dist = MKMetersBetweenMapPoints(p1, p2); 

Lo que necesita es el forumla haversine: http://www.movable-type.co.uk/scripts/latlong.html

haversine

De: http://en.wikipedia.org/wiki/Haversine_formula

Puede encontrar una implementación de Objective-C aquí: http://www.jaimerios.com/?p=39

CLLocation distanceFromLocation hace el trabajo. Da la gran distancia de círculo en metros entre dos CLLocation s. Acabo de probarlo y probarlo.

¡Buena suerte!

Esto se llama "gran distancia del círculo".

http://en.wikipedia.org/wiki/Great-circle_distance