В моем приложении для iPhone я позволяю пользователю выбрать пункт назначения на карте, а затем, когда он начинает движение к пункту назначения, я хочу предоставить ему такую информацию, как: сколько времени осталось до его прибытия и каково его текущее расстояние от пункта назначения. Я использую CloudMade maps SDK для iPhone и знаю, что есть метод API для получения пути между двумя точками, который также возвращает время и расстояние между ними. Можно ли вызывать этот метод каждый раз, когда я получаю новое местоположение от CLLocationManager, чтобы получить обновленное время и расстояние? Я предполагаю, что этот метод запрашивает серверы CloudMade, поэтому я не знаю, является ли лучший способ сделать это много раз.
Как рассчитать расстояние и время между двумя CLLocation на протяжении всей поездки с помощью карт CloudMade?
Ответы (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
Мне нужно расстояние и время пути движения, предложенный вами метод дает абсолютное расстояние.
- person Eyal; 26.09.2011
Быстрая версия будет:
var startLocation:CLLocation!
var lastLocation: CLLocation!
let distance = startLocation.distanceFromLocation(lastLocation)
person
Manish Verma
schedule
01.11.2015