【问题标题】:Google directions api singe source multiple destinations谷歌方向api单源多目的地
【发布时间】:2017-04-18 09:51:50
【问题描述】:

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

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

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

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

但是随着记录数量的增加,组合的记录数量呈指数增长(相信我,这不是问题,组合数量有可能达到 100K),从而导致请求数量增加用于指示 api,因此需要时间进行检索。

我明白,由于需要对方向 api 进行大量的休息连接,网络延迟发挥作用,检索结果所需的时间增加。

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

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

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

以下是一个示例 url 和我收到的响应(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"
}

【问题讨论】:

    标签: google-maps google-directions-api


    【解决方案1】:

    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

    希望对你有帮助!

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-05-03
      • 1970-01-01
      • 1970-01-01
      • 2011-04-02
      • 2019-05-11
      • 2012-08-02
      • 1970-01-01
      相关资源
      最近更新 更多