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

如何在Google Sheet中根据地址生成6位小数的分栏经纬度?

在Google Sheets中实现地址转经纬度并保留6位小数的方法

要搞定你需要的两个需求——地址转经纬度、拆分并保留6位小数,我们可以通过Google Apps Script自定义函数结合内置函数来完成,具体步骤如下:

第一步:创建自定义地理编码函数

Google Sheets本身没有内置的地址转经纬度工具,我们可以用Apps Script写一个简单的自定义函数,调用Google Maps的地理编码服务来实现:

  1. 打开你的Google Sheet,点击顶部菜单栏的「扩展程序」→「Apps 脚本」。
  2. 在弹出的脚本编辑器里,删掉默认的myFunction代码,替换成下面这段:
function GET_LATLNG(address) {
  if (!address) return "";
  try {
    // 调用Google Maps地理编码服务解析地址
    const geocoder = Maps.newGeocoder().geocode(address);
    const firstResult = geocoder.results[0];
    
    if (firstResult) {
      // 提取纬度和经度,返回二维数组格式
      const latitude = firstResult.geometry.location.lat;
      const longitude = firstResult.geometry.location.lng;
      return [[latitude, longitude]];
    } else {
      return "未找到匹配地址";
    }
  } catch (error) {
    return "错误:" + error.message;
  }
}
  1. 点击脚本编辑器顶部的「保存」按钮,给项目起个名字(比如「地址转经纬度工具」),然后关闭编辑器回到Sheet。

第二步:提取并格式化经纬度

假设你的地址数据存在A列(比如A2单元格是Tajmahal, Agra),我们用内置函数提取经纬度并处理小数位数:

获取纬度(B列)

在B2单元格输入公式:

=ROUND(INDEX(GET_LATLNG(A2), 1, 1), 6)
  • GET_LATLNG(A2):调用自定义函数,返回包含纬度和经度的数组
  • INDEX(..., 1, 1):从数组里提取第一行第一列的数值(也就是纬度)
  • ROUND(..., 6):把纬度四舍五入到6位小数

如果需要强制显示6位小数(哪怕末尾是0也保留,比如27.175000),可以改用TEXT函数:

=TEXT(INDEX(GET_LATLNG(A2), 1, 1), "0.000000")

获取经度(C列)

在C2单元格输入类似的公式:

=ROUND(INDEX(GET_LATLNG(A2), 1, 2), 6)

或者用TEXT格式化:

=TEXT(INDEX(GET_LATLNG(A2), 1, 2), "0.000000")

小提示

  • Google Maps地理编码服务有调用次数限制,要是你需要处理大量地址,建议分批操作,别一次性跑太多行,避免触发限制。
  • 如果函数返回「未找到匹配地址」,可以检查下输入的地址是不是准确,有没有拼写错误。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.13 06:22:45