如何通过MapBox Directions API查询距离最优路线?
如何在MapBox Directions API中获取距离最优路线?
嘿,我来帮你搞定这个问题!你当前用的是mapbox/driving-traffic路线配置,这个配置默认是基于实时交通优先优化时长的,所以要拿到距离最优的路线,确实需要调整请求参数,具体操作如下:
1. 切换更合适的路线配置
driving-traffic是专为实时交通时长优化设计的,如果你优先考虑距离,建议改用mapbox/driving配置——它基于历史交通数据计算路线,更容易得到距离更短的选项(当然你也可以继续用driving-traffic,但结果会更偏向时长优先)。
2. 组合参数引导返回距离最优路线
MapBox Directions API没有直接的“distance-optimized”开关,但你可以通过以下参数组合来让API返回更偏向距离的路线:
- 保留
alternatives=true:让API返回多条备选路线,方便你从中筛选距离最短的那条 - 添加
annotations=distance:明确要求API返回每条路线的距离数据,便于对比筛选 - 可选:添加
exclude=motorway(按需使用):排除高速公路,通常会得到更短距离的市区路线(但耗时可能更长)
修改后的请求示例
把你的请求链接调整成这样:
https://api.mapbox.com/directions/v5/mapbox/driving/23.13367%2C60.384991%3B24.823957%2C60.634221.json?geometries=polyline&alternatives=true&steps=true&overview=full&annotations=distance&access_token=[mykey]
筛选距离最优路线的方法
API返回的routes数组里,每个路线对象都包含distance字段(单位:米),你只需要遍历数组,找到distance值最小的那条,就是距离最优的路线啦。
补充说明
如果一定要用driving-traffic配置,也可以保留它,加上annotations=distance和alternatives=true,再从返回结果里筛选距离最短的路线——只是这个配置优先考虑实时交通时长,可能返回的备选路线中距离最优的选项会比较少。
内容的提问来源于stack exchange,提问作者JRM
相关产品推荐
相关产品推荐

