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

如何通过Google Maps JavaScript API获取实时起止点行程时长

获取Google Maps API实时行程时长的正确方法

嘿,我懂你现在的烦恼——用directionsService调用后拿到的总是那种完全不考虑实时堵车的理想时长,根本没法用在实际场景里对吧?别着急,其实Google Maps API早就给我们准备了获取实时路况行程时长的方案,只要调整几个关键参数就能搞定。

下面是具体的实现步骤和注意点:

核心:启用实时路况参数

要拿到实时数据,你需要在directionsService的请求里加上两个关键参数:

  • departure_time:这个是必须的,把它设置为当前时间(比如JavaScript里的new Date()),告诉API你要计算的是当前出发情况下的行程时长,而不是默认的“路况完美”状态。如果需要查询未来某个时间点的预估时长,也可以传入对应的时间戳。
  • traffic_model(可选但推荐):这个参数用来指定API计算时长的模型,有三个选项:
    • best_guess:默认值,结合实时路况和历史数据给出最合理的估计
    • pessimistic:保守估计,适合需要留足缓冲时间的场景
    • optimistic:乐观估计,假设路况比平时顺畅

示例代码(JavaScript)

给你一个实际可运行的例子,对比一下理想时长和实时时长的获取:

const directionsService = new google.maps.DirectionsService();

directionsService.route({
  origin: 'Los Angeles, CA',
  destination: 'San Diego, CA',
  travelMode: google.maps.TravelMode.DRIVING,
  // 关键:设置出发时间为当前时刻
  departure_time: new Date(),
  // 可选:选择路况模型
  traffic_model: 'best_guess'
}, (response, status) => {
  if (status === 'OK') {
    // 理想时长(无实时路况)
    const idealDuration = response.routes[0].legs[0].duration;
    // 实时路况下的时长
    const realTimeDuration = response.routes[0].legs[0].duration_in_traffic;
    
    console.log('理想时长:', idealDuration.text);
    console.log('实时行程时长:', realTimeDuration.text);
  } else {
    console.error('请求失败:', status);
  }
});

注意哦,实时时长是存在duration_in_traffic字段里的,别再去拿原来的duration字段啦!

重要注意事项

  • 确保你的API密钥已经启用了Directions API,并且开通了计费(实时路况功能属于付费服务,免费额度有限,超出后会按用量收费)。
  • 只有DRIVING和TWO_WHEELER这两种出行模式支持实时路况数据,步行、公共交通这些模式是没有duration_in_traffic字段的。
  • 如果departure_time设置的是未来时间,API会基于历史路况数据预测那个时间点的时长;如果是过去的时间,会返回对应时间点的历史路况估计。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.14 07:58:25