Расстояние между двумя координатами с CoreLocation

Мне нужно рассчитать расстояние (в метрах и милях) между двумя заданными координатами

Как я могу это сделать?

Ответы на вопрос(4)

Решение Вопроса

е указанного местоположения.

// Deprecated in iOS 3.2 method
- (CLLocationDistance)getDistanceFrom:(const CLLocation *)location

// Correct method
- (CLLocationDistance)distanceFromLocation:(const CLLocation *)location

CLLocation

 Spanky30 окт. 2009 г., 20:50
По прямой?
 chakrit10 апр. 2012 г., 09:26
Даунтинг, так как методтеперь не рекомендуется.
 Terry Wilcox31 окт. 2009 г., 01:47
Получение любого другого расстояния было бы проблематичным без определения пути. Если вы определите путь, вы 'Вы спрашиваете длину пути, а не расстояние между двумя точками.
 quantumpotato23 янв. 2011 г., 06:06
 Cameron Lowell Palmer07 янв. 2013 г., 09:55
@Spanky Этот метод измеряет расстояние между двумя точками, проводя линию между ними, которая следует за кривизной Земли. Результирующая дуга является гладкой кривой и не учитывает конкретные изменения высоты между двумя точками.

Свифт 3

func distance(from location: CLLocation) -> CLLocationDistance Description 

Возвращает расстояние (измеряется в метрах)

например

locations: [CLLocation]

let location: CLLocation = locations.last!

let distance = location.distance(from: CLLocation(latitude: CLLocationDegrees(oldLocationLat), longitude: CLLocationDegrees(oldLocationLng)))

 CLLocationDistance Описание Возвращает расстояние (в метрах) от получателя.s местоположение в указанном месте. Этот метод измеряет расстояние между двумя точками, отслеживая линию между ними, которая следует за кривизной Земли. Результирующая дуга является гладкой кривой и не учитывает конкретные изменения высоты между двумя точками. параметры

местоположение Другое местоположение. Возвращает Расстояние (в метрах) между двумя точками. SDK для iOS 3.2+, macOS 10.6+, tvOS 9.0+, watchOS 2.0+, объявленные в базовом расположении

например

let distance = location.distance(from: CLLocation(latitude: 
CLLocationDegrees(oldLocationLat), longitude: 
CLLocationDegrees(oldLocationLng)))

Метод в предыдущем ответе былустарел в iOS 3.2, Новый метод очень похож

- (CLLocationDistance)distanceFromLocation:(const CLLocation *)location

который также возвращает расстояние в метрах. Это'с учетом кривизны земли.

Ваш ответ на вопрос