Google 方向 api 单源多个目的地

Chr*_*rao 4 google-maps google-directions-api

我有一个包含位置列表的数据库,我必须获取数据库中所有位置组合的路线步骤、行驶距离和行驶时间。

我将每个位置的纬度和经度存储在数据库中。

我正在使用 google 路线服务 api 来获取信息。

只要记录数量很少,我就可以使用线程在一分钟内从代码中获取结果。

然而,随着记录数量的增加,组合的记录数量呈指数级增长(相信我,这不是问题,组合数量有可能达到 100K),从而导致请求数量增加路线 api 以及检索所需的时间。

据我所知,由于需要与方向 api 建立大量其余连接,因此网络延迟会增加,并且检索结果所需的时间也会增加。

我用 google 搜索发现,某些地图 api(例如方向服务 api 中的航点)允许您使用管道运算符 ( | ) 指定超过 1 个值。

我尝试执行相同的操作,并为每个休息请求检索一个源多个目的地的信息,但是我收到从路线服务返回的 NOT_FOUND 状态。

有人可以帮我弄清楚如何使用 Directions api 获取来自同一起点但多个目的地的路线以及距离和时间吗?

以下是示例网址和我收到的响应(API_KEY 被故意删除,无法共享): https://maps.googleapis.com/maps/api/directions/json ?key=API_KEY&origin=49.794150,-84.564514&destination= 49.244978,-88.146057|49.173205,-84.756775

{
   "geocoded_waypoints" : [
      {},
      {
         "geocoder_status" : "ZERO_RESULTS"
      }
   ],
   "routes" : [],
   "status" : "NOT_FOUND"
}
Run Code Online (Sandbox Code Playgroud)

xom*_*ena 7

Directions API 不支持多个出发地或目的地。您可以指定 1 个出发地、1 个目的地以及最多 23 个航点。

https://developers.google.com/maps/documentation/directions/intro#Waypoints

带有路径点的请求如下所示:

https://maps.googleapis.com/maps/api/directions/json?origin=49.794150%2C-84.564514&destination=49.173205%2C-84.756775&waypoints=49.244978%2C-88.146057&key=YOUR_API_KEY

如果您想测试您的路线并查看视觉表示,您可以使用路线计算器:

https://directionsdebug.firebaseapp.com/?origin=49.794150%2C-84.564514&destination=49.173205%2C-84.756775&waypoints=49.244978%2C-88.146057

希望能帮助到你!