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

求适用于Google Sheets的反向地理编码API脚本(超5000坐标)

在Google Sheets中批量获取GPS坐标对应的格式化地址(适配5000+数据)

直接批量调用地理编码服务容易触发速率限制,所以脚本里加入了分批处理和延迟机制,避免查询失败。以下是可直接使用的方案:

1. 准备表格数据

确保Sheet结构如下:

  • A列:纬度(示例值:39.9042)
  • B列:经度(示例值:116.4074)
  • C列:预留为格式化地址(脚本自动填充)

2. 打开脚本编辑器

在Google Sheets顶部菜单点击 工具 > 脚本编辑器,清空默认代码,粘贴以下脚本:

function getFormattedAddresses() {
  const sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
  const data = sheet.getDataRange().getValues();
  const startRow = 2; // 假设第一行是表头,从第二行开始处理
  const batchSize = 50; // 每批处理50条,规避速率限制
  const delayBetweenBatches = 2000; // 每批间隔2秒,单位毫秒

  for (let i = startRow - 1; i < data.length; i += batchSize) {
    const batch = data.slice(i, i + batchSize);
    batch.forEach((row, index) => {
      const lat = row[0];
      const lng = row[1];
      if (lat && lng && !row[2]) { // 仅处理有坐标且未填充地址的行
        try {
          const geocoder = Maps.newGeocoder().reverseGeocode(lat, lng);
          const results = geocoder.results;
          if (results.length > 0) {
            const formattedAddress = results[0].formatted_address;
            sheet.getRange(i + index + 1, 3).setValue(formattedAddress);
          } else {
            sheet.getRange(i + index + 1, 3).setValue("无匹配地址");
          }
        } catch (e) {
          sheet.getRange(i + index + 1, 3).setValue(`查询错误: ${e.message}`);
        }
      }
    });
    // 每批处理完后等待,避免触发API限制
    if (i + batchSize < data.length) {
      Utilities.sleep(delayBetweenBatches);
    }
  }
  SpreadsheetApp.getUi().alert("地址批量获取完成!");
}

3. 运行脚本

  • 点击脚本编辑器顶部的运行按钮(▶️),首次运行会提示授权,按指引完成权限验证(需允许脚本访问表格和地理编码服务)。
  • 等待脚本执行,完成后会弹出提示框。

关键注意事项

  • API配额限制:免费版地理编码服务每天仅支持2500次请求,若数据超量,需升级到付费Google Cloud Geocoding API并修改脚本接入密钥。
  • 速率调整:如果使用付费API,可适当调高batchSize、缩短delayBetweenBatches提升处理速度。
  • 容错处理:脚本会自动跳过已填充地址的行,对查询失败的行标注错误信息,方便后续排查。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.06 04:25:19