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

获取两地址间距离与耗时的Google Sheets脚本报错求助

报错原因排查与修复方案

核心错误原因

报错Exception: Invalid argument: origin指向mapObj.setOrigin(start_address)一行,说明传入的起点地址参数无效,常见场景包括:

  • 单元格为空,导致start_address是null或空字符串
  • 地址格式无法被Google Maps解析(拼写错误、模糊描述等)
  • 函数调用时参数顺序或数量错误

分步修复方案

1. 校验函数调用的参数传递

确保Google Sheets中函数调用参数正确,示例:

=GOOGLEMAPS(A1, B1, "minutes")
  • A1单元格需为有效起点地址(如北京朝阳区建国路88号、1600 Amphitheatre Parkway, Mountain View)
  • B1为终点地址
  • 第三个参数必须是"miles"/"minutes"/"kilometers"三者之一,注意使用英文半角引号

2. 给脚本添加参数校验与错误处理

原脚本缺乏空值校验和异常捕获,修改后可避免崩溃并返回明确提示:

function GOOGLEMAPS(start_address, end_address, return_type) {
  // 校验参数非空
  if (!start_address || !end_address || !return_type) {
    return "error:参数不能为空";
  }

  // 校验返回类型合法性
  const validTypes = ["miles", "minutes", "kilometers"];
  if (!validTypes.includes(return_type)) {
    return "error:错误的单位类型,仅支持miles/minutes/kilometers";
  }

  try {
    var mapObj = Maps.newDirectionFinder();
    mapObj.setOrigin(start_address);
    mapObj.setDestination(end_address);
    var directions = mapObj.getDirections();

    // 校验是否获取到有效路线数据
    if (!directions.routes || directions.routes.length === 0 || !directions.routes[0].legs || directions.routes[0].legs.length === 0) {
      return "error:无法获取路线,请检查地址是否有效";
    }

    var getTheLeg = directions["routes"][0]["legs"][0];

    switch(return_type){
      case "miles":
        return getTheLeg["distance"]["value"] * 0.000621371;
      case "minutes":
        var duration = getTheLeg["duration"]["value"];
        return duration / 60;
      case "kilometers":
        return getTheLeg["distance"]["value"] / 1000;
      default:
        return "error:错误的单位类型";
    }
  } catch (e) {
    return "error:" + e.message;
  }
}

3. 优化地址格式提升解析成功率

  • 提供完整地址:国家/地区 + 城市 + 街道 + 门牌号,避免模糊描述
  • 中文地址确保无错别字,比如北京市海淀区中关村大街1号而非北京海淀中关村
  • 可添加邮政编码进一步提升解析准确率

4. 检查Google Apps Script权限

首次运行脚本时需授权Google Maps服务访问权限:

  • 打开脚本编辑器,点击「运行」,按提示完成授权流程
  • 确认账号未被限制Google Maps服务使用

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.19 19:50:08