我有一个包含位置列表的数据库,我必须获取数据库中所有位置组合的路线步数、行驶距离和行驶时间。
我在数据库中存储了每个位置的纬度和经度。
我正在使用 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
带有路标的请求如下所示:
如果您想测试您的路线并查看视觉表示,您可以使用路线计算器:
希望对您有所帮助!
关于google-maps - Google directions api 单源多目的地,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43468929/