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

如何修复Google Maps路线URL中规避高速的参数错误?

问题修正方案

你的代码错误在于查询参数的拼接方式不符合URL规范,Google Maps无法识别用/开头的参数,同时dirflg的参数格式也有误。

错误原因

  • URL的查询参数必须以?开头(首次添加参数时),后续参数用&连接,你用/&会把参数当成路径的一部分,导致Google Maps无法解析。
  • dirflg参数中,h代表规避高速公路,t代表步行模式,两者组合不需要加逗号,直接写ht即可;如果只是需要规避高速,单独用h就够了(电动车路线默认是驾车模式,无需额外指定步行)。

修正后的代码段

替换你出错的代码部分为:

if (avoidHighwaysStatut.checked) {
    // 首次添加查询参数用?,dirflg=h表示规避高速公路
    googleMapsLink += "?dirflg=h";
}

如果后续需要添加其他查询参数(比如偏好最短路线),可以用&连接,示例:

if (avoidHighwaysStatut.checked) {
    googleMapsLink += "?dirflg=h";
    // 追加偏好最短路线参数
    googleMapsLink += "&route=shortest";
}

完整修正后的代码

document.getElementById('openMapBtn').addEventListener('click', function() {
  var googleMapsLink = "https://www.google.com/maps/dir/";

  // 添加起点
  googleMapsLink += encodeURIComponent(document.getElementById("from").value);

  // 添加中间充电站
  infosBornes.forEach(function(borne) {
    googleMapsLink += "/" + encodeURIComponent(borne.adresse);
  });

  // 添加终点
  googleMapsLink += "/" + encodeURIComponent(document.getElementById("to").value);

  // 判断是否规避高速
  var avoidHighwaysStatut = document.getElementById('avoidHighways');
  if (avoidHighwaysStatut.checked) {
    googleMapsLink += "?dirflg=h";
  }

  // 在新窗口打开地图
  window.open(googleMapsLink);
});

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.28 10:03:30