You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Mapbox Android导航SDK路线请求报错171:No suitable edges near location

问题根因
  • 坐标顺序错误:Mapbox Navigation SDK 要求传入的坐标点格式为(经度, 纬度),若构造ptsList时误传为(纬度, 经度),会导致坐标点落在无道路区域,触发本地校验报错。Postman中手动输入的坐标顺序正确,因此可正常返回结果。
  • 本地离线路网前置校验拦截:SDK默认优先使用本地离线路网数据做坐标吸附校验,如果坐标点所在区域没有对应的离线路网数据,本地校验会直接返回失败,不会发起在线请求。Postman直接调用在线接口,不受本地离线数据影响。
  • 吸附半径配置过小:SDK默认的坐标吸附到道路的半径远小于在线Direction API的默认阈值,坐标点离道路稍远就会触发本地校验失败,而服务端可以正常吸附返回结果。
  • 路径拼接错误:当前baseUrl配置已经包含/directions/v5/mapbox/前缀,同时又单独配置了user("mapbox")和profile(RouteUrl.PROFILE_DRIVING),会导致SDK拼接出的请求路径重复,本地解析前置逻辑出错。
解决方案
  • 校验坐标顺序:确认ptsList中所有点都是通过Point.fromLngLat(经度, 纬度)构造,禁止颠倒经纬度顺序。
  • 关闭离线路由校验:如果不需要使用离线导航功能,初始化MapboxNavigation时添加配置enableOfflineRouting(false),强制所有路线请求走在线接口,绕过本地路网校验。
  • 配置合理的吸附半径:在RouteOptions构造逻辑中添加radiusesList配置,比如给所有坐标点设置50米的吸附阈值:
builder.radiusesList(Collections.nCopies(ptsList.size(), 50.0));
  • 修正baseUrl配置:删除builder.baseUrl("https://api.mapbox.com/directions/v5/mapbox/")这一行,使用SDK默认的官方服务地址即可,避免路径拼接重复。
  • 比对请求参数:开启SDK日志,抓取实际发起的路线请求完整URL,和Postman使用的请求URL做参数比对,排除其他参数配置差异。

内容的提问来源于stack exchange,提问作者kchoi

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.08 14:45:02