我试图找到从加利福尼亚州孤松到加利福尼亚州优胜美地村的最短路线。
一个简单的谷歌地图查找揭示了两条路线:
- 收费路线:US-395N、CA-120W ~316 km
- 无收费路线:CA-99N ~596 km
DirectionService/DistanceMatrixService 有一个 AvoidTolls 参数:
avoidTolls (optional) — If true, the directions between points will be calculated using non-toll routes, wherever possible.
avoidTolls (optional) when set to true indicates that the calculated route(s) should avoid toll roads, if possible.
我希望服务在应用时返回路由#1 avoidTolls: false
,而是返回路由#2。
我的期望或我的实现http://jsfiddle.net/nQzD8/2有缺陷吗?
更新:
正如Molle 博士所指出的,忽略 1 号路线不是因为包含收费路线,而是因为它可能在当前时间关闭(“这条路可能会季节性关闭。”在方向步骤中)。
user2961817发现,通过避开高速公路(设置)可以获得 316 公里的结果avoidHighways: true
。
除了成为 Maps for Business 客户并使用带departure_time
参数的 DistanceMatrix API 之外,是否还有其他选项可以检索一年中另一个时间的 DistanceMatrix 结果?
解决方案:
Route #1 被忽略,因为它可能在请求时关闭,而不是因为包含收费路线。为了检索较短的路线,有以下选项:
距离矩阵服务:
- 成为商业客户并设置离开时间参数。
- 发出第二个请求
avoidHighways: true
并采用较短的路线(在这种特殊情况下恰好可以工作,但在大多数其他情况下不会)
方向服务:
- 使用
provideRouteAlternatives:true
,遍历备选方案并选择最短的一个