【问题标题】:Google Directions API returns zero results for TRANSIT, although I am clearly asking for a metro routeGoogle Directions API 返回 TRANSIT 的零结果,尽管我明确要求地铁路线
【发布时间】:2018-02-09 10:03:28
【问题描述】:

这是我打的电话:

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 条地铁和它们之间的一些公共汽车,应该会找到我的结果。

这是我发送的作为获得该值的离开时间: (System.currentTimeMillis() / 1000

有时有效,有时无效。我尝试使用相同的 + 30(在当前时间上增加 30 秒),但是,有时我得到结果,有时只是 ZERO_RESULTS。为什么?

我注意到,如果我将时间设置为过去 5 分钟,它会起作用。但我现在需要它开始。这没有任何意义,为什么调用会返回我过去的结果,而不是未来的计划结果

【问题讨论】:

  • 当我添加 30 秒时,我得到了结果,如果我理解正确,你得到的结果是离开时间=1518168706 但没有离开时间=1518168736 的结果?
  • 所以如果我尝试 System.currentTimeMillis() / 1000 (所以它是秒)。我几乎总是得到零结果。但是如果我尝试增加一些时间,我会得到结果。但并非总是如此。
  • 我现在做的是做一个重试逻辑,如果得到零结果,我会在我的时间上增加 300 秒(5 分钟)来重试。我最多重试 4 次,这让我得到了回应。有时来自第一个电话,有时来自第二个或第三个电话。但我认为这更像是一种破解而不是修复。为了解决这个问题,如果起点和终点相同,我需要了解为什么我会因时间变化而得到 ZERO_RESULTS。我应该每 3 分钟就有一趟地铁往那个方向行驶

标签: android directions google-directions-api


【解决方案1】:

恐怕你的问题有点宽泛,因为对于大多数凡人来说,了解谷歌内部的运作方式是一个谜,但在少数情况下你可以得到 zero_results。

第一个是您使用过去的时间。所以请始终确保您使用的纪元时间尚未过去。

另一个可能是,在您请求路线的那一刻,您想要的目的地没有可能的路线,因为谷歌从其他来源收集数据,如实时交通(驾驶)等。

我发现如果这个问题持续存在(你不断得到 zero_results)对于特定方向实际上可能是 API 的错误,你可以在问题跟踪器https://issuetracker.google.com/ 中报告它,因为我发现报告/接受与您的问题相关的错误(如 https://issuetracker.google.com/issues/63884989)。

如果我找到更多信息,我会更新这个答案。

【讨论】:

  • 谢谢,我会接受这个作为答案。是的,我注意到了。就像我在评论中说的那样,我现在重试 4 次,每次都得到零结果
猜你喜欢
  • 2016-08-07
  • 2016-12-22
  • 2018-02-13
  • 1970-01-01
  • 2018-11-30
  • 2016-05-04
  • 2014-11-29
  • 1970-01-01
相关资源
最近更新 更多