将 Google 方向 API 与多个 waypoints 和模式一起使用

Using the Google Direction API with multiple waypoints and modes

我有一套自行车站,我需要使用这些自行车找到一条从一个点到另一个点的路。 例如:

  1. 用户去附近的车站取自行车
  2. 他骑车去另一个车站
  3. 他把自行车放在这里,然后步行走完路线

实际上,我的 android 申请是这样进行的:

  1. 我找到离我当前位置最近的两个车站和离我目的地最近的两个车站
  2. 我使用 google api 计算了四种不同的路线。 (选择一个或另一个)并选择最好的一个

为了计算一条路线,我向 google 方向提出了三个请求,一个是从我所在的位置步行到一个车站,一个是骑自行车从一个车站到另一个车站,第三个是从一个车站到我的终点站徒步到达目的地。 这是对 google api 的

的 3*4=12 请求

Users of the free API

   2500 directions requests per 24 hour period.
   Up to 8 waypoints allowed in each request. Waypoints are not >available for transit directions.
   2 requests per second. 

12 个请求对我的应用程序来说太多了,但是,google api 允许使用 waypoints,然后我会给出两个站并且只给出一个请求而不是 3 个,但是,我不知道如何在 waypoints 之间更改模式(骑自行车或步行),这可能吗? 或者google的api可以为我找到最好的行程(通过给他不同的站点),这可能吗?

谢谢你:)

您可以在6条路线中进行计算。使用图表最容易解释这一点:

基本上,您计划的所有可能路线共有 8 个组成部分,即到达任一自行车站的两个距离、自行车到自行车的各种组合的四个部分,以及最后两个自行车站到端选项。

实际上,这可以进一步压缩,因为最后两条路线取决于自行车到自行车,但不受进一步排列的影响。因此,这可以压缩为6条路线:

start --> A
start --> B
A --> C --> End
A --> D --> End
B --> C --> End
B --> D --> End

如果您不能使用 waypoints,您可以简单地使用八个,这会将像 A --> C --> End 这样的路由拆分为 A --> C 然后 C --> End,这也将与 B --> C --> End.

一起使用

当然,总时间是一条起始路线和之后的bike/walking条路线之和,以此类推。

实施后,这会将您的查询减少到 8 个(甚至 6 个)。