指定航点时,Direction API 仅返回一条路线

Posted

技术标签:

【中文标题】指定航点时,Direction API 仅返回一条路线【英文标题】:Direction API return only one route when specify waypoints 【发布时间】:2018-05-24 17:41:05 【问题描述】:

我正在使用 Direction API 来显示源和目的地之间的路线。我形成了这样的网址

https://maps.googleapis.com/maps/api/directions/json?origin=11.030342,77.038737&destination=11.0254792,76.968749&mode=driving&alternatives=true

它给出了这样的“多条路线

`"routes" : 
[
  
  
  
]`

但是当我在 URL 中添加航点时

https://maps.googleapis.com/maps/api/directions/json?origin=11.030342,77.038737&destination=11.0254792,76.968749&mode=driving&alternatives=true&waypoints=11.037647,77.037447

它给出了这样的“single route

`
 "routes" : 
 [ 
 "legs" : [    ,     ]
 ]
 `

我指定了靠近起点的航路点,仍然只能获得单条路线。

我的 URL 或它的方向 API 性质有什么错误吗??

有人遇到过这个问题吗?

【问题讨论】:

【参考方案1】:

据此article

通常,路线数组中仅返回 一个 条目用于路线查找,但路线服务可能在您传递 Alternatives=true 时返回多条路线。

因此,如果您添加alternatives=true,则无法保证会获得一些替代路线

【讨论】:

如果我在没有航点的情况下指定“alternatives=true”,它会给出多条路线。当我添加 waypoints 时,它只给出一条路线.. 我指定了靠近起点位置的航点。 @thamim 是的,你是对的,但看起来Direction API 不是这样工作的。如果您尝试在 maps.google.com 上构建三点之间的路线,您将只获得一条路线。所以我的建议是,它只是没有在文档中指定。 添加航路点时,会将路线分成两部分:路线 A->B 和路线 B->C。所以在这种情况下,第一部分可能有 3 个备选方案,第二部分有 3 个备选方案,这将产生 9 种不同的组合。我认为 Directions API 只是避免了这种组合的乘法,并且只为带有航点的路线提供一个结果。 directionsdebug.firebaseapp.com/… 感谢 xomena 提供您的网页链接。我已经习惯了现在得到回复。【参考方案2】:

自发布此问题时起,文档可能已更改。但现在(2021 年)他们很清楚:

waypoints:

... 航路点通过指定的路径来改变路线 位置...

alternatives:

... 这仅适用于没有中间件的请求 航点。

所以,是的,如果您使用 waypoints,您将只获得一条路线,而不管 alternatives 属性的值如何。

Current docs here

【讨论】:

以上是关于指定航点时,Direction API 仅返回一条路线的主要内容,如果未能解决你的问题,请参考以下文章

Google Maps API [Directions API] 航点限制?

如何计算距离和旅行时间航点 API 方向

航点插件Jquery [重复]

使用数百个航点生成最有效的路线

RABBIT API 随机ACG图片接口(可指定动画、人物等信息)

仅基于 2 个航点显示 Google PlacesSearch 结果