Могу ли я использовать Google Direction API только для расстояния и длительности? - PullRequest
0 голосов
/ 25 ноября 2011

В своем приложении для iPhone я использую MapKit, чтобы показать пользователю, где он находится, я также хочу показать ему общее время и продолжительность к месту назначения. Могу ли я использовать Google direction API для этого? Я планирую каждые несколько секунд запрашивать направление (до 2500 запросов, я знаю ..) и отображать только значения «направление» и «продолжительность» из ответа пользователю.

1 Ответ

2 голосов
/ 26 ноября 2011

Да, вы можете.

Ответ JSON включает расстояние и продолжительность, например,

"duration": {
    "value": 74384,
    "text": "20 hours 40 mins"
},
"distance": {
    "value": 2137146,
    "text": "1,328 mi"
},

Я бы предложил вызывать API каждую минуту или около того.Вы можете использовать линейную интерполяцию для определения промежуточных значений (вам нужно будет оценить скорость, чтобы уменьшить расстояние на нужную величину).

Чтобы реализовать это ....

  1. Сэкономьте время, когда возвращается результат.

    self.responseTime = [NSDate date];

  2. Рассчитайте скорость, которую использовал Google.

    Speed = Distance / Time

    Таким образом, в примере необработанными единицами являются метры и секунды, поэтому

    Speed = 2137146 / 74384 = 28.7... ms^1

  3. Используйте NSTimer для получения повторяющегося обратного вызова каждый раз такдовольно часто.При обратном вызове вам необходимо:

    1. Уменьшить время на время, прошедшее с момента ответа.

    2. Уменьшить расстояние на рассчитанную скорость * Истеклавремя с момента ответа.

    3. Обновление меток.

...