Google方向api singe source多个目的地

时间:2017-04-18 09:51:50

标签: google-maps google-direction

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

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

我正在使用google Directions service api获取信息。

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

然而,随着记录数量的增加,组合记录的数量呈指数增长(相信我,这不是问题,组合的数量有可能达到100K),从而导致请求数量的增加对方向api做出了贡献,因此也就是撤退的时间。

我理解,因为需要对方向api进行大量的休息连接,所以网络延迟会起作用,并且检索结果所花费的时间也会增加。

我用Google搜索并发现一些地图api(例如路线服务api中的路标点)允许您使用管道运算符(|)指定多个值。

我尝试做同样的事情并为每个休息请求检索一个源多个目的地的信息,但是我从路线服务返回了一个NOT_FOUND状态。

有人可以帮我弄清楚如何使用路线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"
}

1 个答案:

答案 0 :(得分:0)

Directions API不支持多个来源或目的地。您可以指定一个原点,一个目的地和最多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

希望它有所帮助!