指定航点时,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] 航点限制?