Как рассчитать расстояние и время между двумя CLLocation на протяжении всей поездки с картами CloudMade? - PullRequest
0 голосов
/ 26 сентября 2011

В моем приложении для iPhone я позволяю пользователю выбирать пункт назначения на карте, а затем, когда он начинает движение к пункту назначения, я хочу дать ему такую ​​информацию, как: сколько времени он достигнет пункта назначения и каково его текущее расстояние от пункта назначения , Я использую CloudMade maps SDK для iPhone, и я знаю, что есть метод API для получения пути между двумя точками, который возвращает также время и расстояние между ними. Можно ли вызывать этот метод каждый раз, когда я получаю новое местоположение из CLLocationManager, чтобы получить обновленное время и расстояние? Я предполагаю, что этот метод запрашивает серверы CloudMade, так что я не знаю, является ли его многократный вызов лучшим способом сделать это ..

Ответы [ 2 ]

0 голосов
/ 01 ноября 2015

Swift версия будет:

var startLocation:CLLocation!
var lastLocation: CLLocation!

let distance = startLocation.distanceFromLocation(lastLocation)
0 голосов
/ 26 сентября 2011

Для расстояния

/*
 *  distanceFromLocation:
 *
 *  Discussion:
 *    Returns the lateral distance between two locations.
 */
- (CLLocationDistance)distanceFromLocation:(const CLLocation *)location __OSX_AVAILABLE_STARTING(__MAC_10_6,__IPHONE_3_2);

Чтобы получить необходимое время, вы можете рассчитать его самостоятельно. CLLocation имеет параметр скорости. Используйте расстояние и скорость для расчета времени.

...