Перевести широту и долготу в метры или километры - PullRequest
2 голосов
/ 24 июля 2011

У меня есть две аннотации MapKit, отображающие широту и долготу.

Можно ли как-нибудь через существующие функции API-интерфейса Objective-C iOS рассчитать расстояние между ними?

Ответы [ 4 ]

17 голосов
/ 24 июля 2011

Каркас MapKit содержит много функций, и вы найдете CLLocationDistance MKMetersBetweenMapPoints(MKMapPoint a, MKMapPoint b);, который возвращает расстояние в метрах между двумя точками на карте. Может быть, вы могли бы использовать это, чтобы решить вашу проблему.

Сначала создайте две соответствующие точки и получите расстояние:

MKMapPoint p1 = MKMapPointForCoordinate(coord1);
MKMapPoint p2 = MKMapPointForCoordinate(coord2);
CLLocationDistance dist = MKMetersBetweenMapPoints(p1, p2);
3 голосов
/ 09 декабря 2011

CLLocation distanceFromLocation делает работу.Это дает большое расстояние в метрах между двумя CLLocation с.Я только попробовал и проверил это.

Удачи!

3 голосов
/ 24 июля 2011

То, что вам нужно, это форум haversine: http://www.movable -type.co.uk / scripts / latlong.html

haversine

От: http://en.wikipedia.org/wiki/Haversine_formula

Вы можете найти реализацию Objective-C здесь: http://www.jaimerios.com/?p=39

0 голосов
/ 24 июля 2011

Это называется "расстояние большого круга".

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

...