Расстояние между двумя координатами с CoreLocation
Мне нужно рассчитать расстояние (в метрах и милях) между двумя заданными координатами
Как я могу это сделать?
4 ответов
возвращает расстояние (в метрах) от координаты приемника до координаты указанного местоположения.
// Deprecated in iOS 3.2 method
- (CLLocationDistance)getDistanceFrom:(const CLLocation *)location
// Correct method
- (CLLocationDistance)distanceFromLocation:(const CLLocation *)location
метод в предыдущем ответе была устарел в 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)))