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

如何处理Mapbox Matching API返回的不可处理实体错误

问题原因
  • Mapbox Matching API本身对驾车模式下的匹配路线总长度有限制,默认最大支持100公里的轨迹匹配,当两个坐标点距离超过该阈值时,API会直接返回TooLarge错误,部分场景下甚至会直接返回400/413类的HTTP状态码错误,不会走到正常的业务返回体逻辑。
  • 你现有的代码只处理了请求成功后返回体的code字段校验,没有捕获异步请求本身抛出的异常:当请求触发HTTP层面的错误时,await后的语句会直接抛出Promise rejection,你的代码没有捕获该类异常,因此无法检测到问题。
修复方案

首先给异步请求增加try-catch块捕获全局异常,其次补全所有相关错误码的处理逻辑,修改后的代码如下:

try {
  const { body } = await MapboxMatchingClient.getMatch(matchOptions).send()
  if (body.code !== 'Ok') {
    console.error('Matching failed!')
    console.error('error code: ' + body.code)
    if (body.message) {
      console.error(body.message)
    }
    // 专门处理距离过远的错误
    if (body.code === 'TooLarge') {
      console.error('错误原因:两个坐标点距离过远,超过Mapbox Matching API最大支持的匹配长度')
      // 此处可添加自定义业务逻辑,比如提示用户缩小点位选择范围
    }
  } else {
    // 正常业务逻辑
  }
} catch (err) {
  // 捕获请求层面的错误,包括网络错误、HTTP 4xx/5xx错误等
  console.error('请求发生异常:', err)
  // 解析状态码判断是否为距离超限导致的请求错误
  if (err.statusCode === 413 || err.statusCode === 400) {
    console.error('错误原因:坐标点距离过远,请求被API拒绝')
  }
}

补充优化建议:可以在调用API之前先计算两个坐标点的直线距离,提前过滤超过100公里的请求,减少无效API调用的同时也能提前给用户反馈。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.07 11:39:04