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

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

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

4 ответов


возвращает расстояние (в метрах) от координаты приемника до координаты указанного местоположения.

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

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

CLLocation


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

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

, который также возвращает расстояние в метрах. Это объясняет искривление земли.


swift 3 расстояние func (от местоположения: CLLocation) - > CLLocationDistance Описание: Возвращает расстояние (измеренное в метрах) от местоположения приемника до указанного местоположения. Этот метод измеряет расстояние между двумя местоположениями, прослеживая линию между ними, которая следует за кривизной Земли. В результате дуга гладкой кривой и не учитывает конкретные изменения высоты между двумя точками. Параметры
местоположение Другой местоположение. Возвращается Расстояние (в метрах) между двумя точками. SDKs iOS 3.2+, macOS 10.6+, tvOS 9.0+, watchOS 2.0+ Объявлено В Core Location Дополнительная Ссылка На Метод

например

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

swift 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)))