Как рассчитать расстояние и время между двумя CLLocation на протяжении всей поездки с помощью карт CloudMade?

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


person Eyal    schedule 26.09.2011    source источник


Ответы (2)


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

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

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

person Yorxxx    schedule 26.09.2011
comment
Мне нужно расстояние и время пути движения, предложенный вами метод дает абсолютное расстояние. - person Eyal; 26.09.2011

Быстрая версия будет:

var startLocation:CLLocation!
var lastLocation: CLLocation!

let distance = startLocation.distanceFromLocation(lastLocation)
person Manish Verma    schedule 01.11.2015