Google 地图路线 API 在指定交通方式时返回 INVALID_REQUEST

Google Maps Directions API returning INVALID_REQUEST when specifying mode as transit

我已经测试了 API 调用,我的模式设置为驾驶并且它有效。

我找了一圈,有人说调用需要departure_time或arrival_time。我也试过了,没用。

调用如下:

https://maps.googleapis.com/maps/api/directions/json?origin=place_id:ChIJLfEUakca2jERraIvPP1CUVE&destination=place_id:ChIJLfEUakca2jERraIvPP1CUVE&waypoints=place_id:ChIJK7xLl1gZ2jERP_GdUY9XNLo|place_id:ChIJ18C-mwoZ2jERlpSawcucgk0|place_id:ChIJB5c91rsZ2jERPX9_QUwrSsc&region=sg&arrival_time=1456676295&mode=transit&key=YOUR_OWN_KEY

为了剖析 URL,这些是我输入的参数:

请注意,我使用 place_id 作为地点。不过这应该不会有任何影响,因为经过地理编码的 waypoints 实际上返回了正确的位置。

奇怪的是返回的状态不是NOT_FOUND,而是INVALID_REQUEST.

知道为什么吗?

根据文件,显然 Google 路线不允许 waypoints 过境。允许开车、步行和骑自行车。

因此,我现在的解决方法是首先通过驾驶模式调用 API 来获取航点命令,然后使用该航点命令调用具有一个起点和一个目的地的 API多次获取所有路线。

但这确实会给每日配额带来压力。