如何批量将CSV中的Google Maps链接转换为精确地址?
批量将Google Maps地点链接转换为精确地址的方法
针对你500+条Google Maps链接转精确地址的需求,以下是几种简便可行的方案:
方案1:Google Maps Geocoding API(最可靠的批量方案)
这是官方推荐的方法,免费额度完全覆盖500条需求(每月免费25000次请求),步骤如下:
提取链接关键参数:你的示例链接里,
!1s后面的字符串(比如0x487604d507ab69fb:0xbbfbc270f421a878)是Google地点的唯一编码,可直接用于反向地理编码。申请API密钥:前往Google Cloud控制台,启用「Geocoding API」并生成API密钥。
编写简单脚本批量处理(以Python为例):
- 用
pandas读取CSV文件,提取所有链接; - 解析每个链接,提取
!1s后的编码,拆分并转换为十进制经纬度; - 调用Geocoding API的反向地理编码接口,获取格式化地址;
- 将结果写回CSV。
示例代码片段:
import pandas as pd import requests API_KEY = "你的API密钥" df = pd.read_csv("你的CSV文件路径") def get_address_from_link(link): # 提取!1s后的地点编码 code = link.split("!1s")[1].split("!")[0] # 拆分纬度、经度的十六进制字符串 lat_hex, lng_hex = code.split(":") # 转换为十进制经纬度 lat = int(lat_hex, 16) / 10**9 lng = int(lng_hex, 16) / 10**9 # 调用反向地理编码API url = f"https://maps.googleapis.com/maps/api/geocode/json?latlng={lat},{lng}&key={API_KEY}" response = requests.get(url).json() if response["results"]: return response["results"][0]["formatted_address"] return None df["精确地址"] = df["Google Maps链接"].apply(get_address_from_link) df.to_csv("带地址的结果.csv", index=False)- 用
方案2:Google Sheets无代码处理(适合非开发者)
如果不想写代码,可借助Google Sheets结合Apps Script完成:
- 将CSV导入Google Sheets,确保链接列有明确标题(比如「Maps链接」);
- 打开「扩展程序」→「Apps脚本」,粘贴以下脚本:
function GET_ADDRESS(link) { if (!link) return ""; // 提取地点编码 const code = link.split("!1s")[1].split("!")[0]; const [latHex, lngHex] = code.split(":"); // 转换为十进制经纬度 const lat = parseInt(latHex, 16) / 1e9; const lng = parseInt(lngHex, 16) / 1e9; // 调用Google Maps地理编码服务 const response = Maps.newGeocoder().reverseGeocode(lat, lng); if (response.results.length > 0) { return response.results[0].formatted_address; } return "无匹配地址"; } - 回到表格,在空白列输入公式
=GET_ADDRESS(A2)(A2为链接所在单元格),下拉填充即可批量获取地址。
方案3:手动解析参数(应急补充)
部分Google Maps链接的页面源码会包含地址,但批量处理效率极低,仅适合少量数据,不建议用于500条规模的需求。
内容的提问来源于stack exchange,提问作者Rishi Thariani
相关产品推荐
相关产品推荐

