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

Google Maps项目输入不可驾车抵达地点时崩溃的问题求助

解决Google Maps项目无法驾车抵达时崩溃的问题

嘿,这个坑我之前做类似项目的时候也踩过!核心问题就是没处理路线请求失败的情况,导致代码硬去访问不存在的路由数据直接崩了。咱们来快速把它搞定:

核心思路很简单——在处理DirectionsService的返回结果前,先检查请求状态,只有状态正常时才去解析路线数据,否则直接给用户提示即可。

具体修复步骤

  1. 找到你调用directionsService.route()的代码块,重点关注它的回调函数
  2. 在回调里先判断status是否等于google.maps.DirectionsStatus.OK:
    • 如果状态为OK,继续执行你原本的逻辑(渲染marker、提取地址信息、驾车时长和距离)
    • 如果状态不是OK,说明没有可用的驾车路线,直接显示“此处无法驾车抵达”的提示,绝对不要再去访问response.routes(这就是崩溃的根源,此时response.routes大概率是undefined)

示例代码

// 假设你已经初始化了DirectionsService实例
const directionsService = new google.maps.DirectionsService();

// 发起驾车路线请求
directionsService.route({
  origin: userCurrentLocation, // 你的用户位置变量
  destination: userInputAddress, // 用户输入的目标地址
  travelMode: google.maps.TravelMode.DRIVING // 明确指定驾车模式
}, (response, status) => {
  // 先检查请求状态,这一步是关键!
  if (status === google.maps.DirectionsStatus.OK) {
    // 正常处理逻辑:提取路线数据
    const firstLeg = response.routes[0].legs[0];
    const drivingDistance = firstLeg.distance.text;
    const drivingDuration = firstLeg.duration.text;
    
    // 这里放你原本渲染marker、地址信息的代码
    console.log(`驾车距离:${drivingDistance},预计时长:${drivingDuration}`);
  } else {
    // 处理无法驾车抵达的情况
    // 可以用alert弹窗,或者更新页面上的提示元素
    alert("此处无法驾车抵达");
    // 比如也可以这样:document.getElementById('route-error').textContent = "此处无法驾车抵达";
  }
});

额外小提示

Google Maps的DirectionsService会返回多种状态码,其中最常见的导致无法驾车的是:

  • ZERO_RESULTS:地址有效,但没有可用的驾车路线(比如目标是步行专用岛、限制机动车进入的区域)
  • NOT_FOUND:输入的地址无法被地图识别

如果你想做更细分的提示可以针对性处理,但如果只需要统一提示“无法驾车抵达”,直接处理所有非OK的状态就足够了。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.25 07:25:25