Google Directions API возвращает нулевые результаты для ТРАНЗИТА, хотя я явно прошу маршрут метро.

Это звонок, который я делаю:

https://maps.googleapis.com/maps/api/directions/json?alternatives=true&key=my_key&origin=52.370060,4.925040&destination=52.37913,4.90027&departure_time=1518168706&mode=transit

I Этот маршрут, который должен иметь как минимум 3 станции метро и несколько автобусов между ними, должен найти результаты.

Вот что я отправляю в качестве offset_time, чтобы получить это значение: (System.currentTimeMillis() / 1000

И иногда это работает, иногда нет. Я пытался использовать те же + 30 (добавляя 30 секунд к текущему времени), но, опять же, иногда я получаю результаты, иногда просто ZERO_RESULTS. Почему?

Я заметил, что если я установил время на 5 минут в прошлом, это работает. но мне нужно, чтобы это началось в этот момент. В этом нет смысла, почему звонок вернул бы мне результаты за прошлое, а не за будущее, для планирования


person rosu alin    schedule 09.02.2018    source источник
comment
Я получаю результаты, когда добавляю 30 секунд, если я правильно понял, вы получаете результаты с offset_time = 1518168706, но нет результатов с offset_time = 1518168736?   -  person betofarina    schedule 09.02.2018
comment
Итак, если я попробую System.currentTimeMillis()/1000 (так что это секунды). Я почти всегда получаю ZERO_RESULTS. НО Если я попытаюсь добавить немного времени, я получу результаты. Но не всегда.   -  person rosu alin    schedule 09.02.2018
comment
Что я сделал на данный момент, так это сделал логику повтора, где, если я получаю ZERO_RESULTS, я повторяю попытку, добавляя 300 секунд (5 минут) к моему времени. Я повторяю до 4 раз, и это дает мне ответ. Иногда с первого звонка, иногда со второго или третьего. Но я считаю это скорее хаком, чем исправлением. Чтобы исправить это, мне нужно понять, ПОЧЕМУ я получаю ZERO_RESULTS для изменений времени, если источник и пункт назначения совпадают. и у меня должно быть метро, ​​которое ходит в этом направлении каждые 3 минуты   -  person rosu alin    schedule 09.02.2018


Ответы (1)


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

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

Другим может быть то, что в тот момент, когда вы запрашивали указания, не было возможных маршрутов для ваших желаемых направлений, поскольку Google собирает данные из других источников, таких как Live Traffic (для вождения) и т. д.

Я обнаружил, что если эта проблема сохраняется (вы продолжаете получать нулевые_результаты) для определенных направлений, на самом деле это может быть ошибкой API, и вы можете сообщить об этом в системе отслеживания проблем https://issuetracker.google..com/, так как я обнаружил зарегистрированные/принятые ошибки (например, https://issuetracker.google.com/issues/63884989), связанных с вашей проблемой.

Если я найду больше информации, я обновлю этот ответ.

person betofarina    schedule 09.02.2018
comment
Спасибо, я приму это как ответ. Да я заметил. Как я уже сказал в комментарии, я повторяю попытку 4 раза, и каждый раз, когда я получаю zero_results, я добавляю 2 минуты к моему выезду_время, и когда это сработает, в большинстве случаев. - person rosu alin; 12.02.2018