google-maps - Google directions api 单源多目的地

标签 google-maps google-directions-api

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

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

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

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

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

我明白,由于需要对路线 API 建立大量休息连接,因此网络延迟会增加,检索结果所需的时间也会增加。

我用谷歌搜索并发现一些 map API(例如路线服务 API 中的航路点)允许您使用竖线运算符 (|) 指定超过 1 个值。

我尝试做同样的事情,并为每个休息请求检索一个来源多个目的地的信息,但是我从路线服务返回了 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"
}

最佳答案

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

希望对您有所帮助!

关于google-maps - Google directions api 单源多目的地,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43468929/

相关文章:

javascript - 如何在 Google Apps 脚本中访问解析嵌套 JSON 中的对象

ios - 如何将相机动画转换为折线(谷歌地图)

javascript - 如何在自定义 ImageMapType 实现中针对某些缩放级别拉伸(stretch)图 block ?

javascript - 在 Google map v3 中切换天气层

python - 在 django 代码中实现谷歌地图

java - 为什么我在谷歌地图 "Failed to load DynamiteLoader: java.lang.ClassNotFoundException: Didn' 上找不到类时出现此错误?

google-maps - 新版 Google map 网站的 polylineOptions 参数是什么?

javascript - Google Maps InfoWindow 和 JQueryUI 工具提示问题

android - 在android中绘制当前位置到另一个位置之间的路线?