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

如何在Google Apps Script中处理谷歌地图地理编码API的JSON响应并获取经纬度

解决Google Maps地理编码API在Apps Script中获取经纬度的问题

首先修正你代码里的两个关键错误:

  1. 拼接URL时,你把字符串"address"直接拼进去了,应该用传入的参数address,并且需要用encodeURIComponent()对地址进行URL编码,避免特殊字符导致请求失败。
  2. YOUR_API_KEY需要替换成你自己的Google Maps API密钥。

然后处理JSON响应的步骤如下:

修正后的完整代码:

function geocode(address) {
  var options = {
      muteHttpExceptions: true,
      contentType: "application/json",
  };

  // 修正URL:使用变量address并编码,替换为你的API密钥
  var encodedAddress = encodeURIComponent(address);
  var serviceUrl = "https://maps.googleapis.com/maps/api/geocode/json?address=" + encodedAddress + "&key=你的API密钥";

  var response = UrlFetchApp.fetch(serviceUrl, options);
  if (response.getResponseCode() == 200) {
    // 解析JSON响应
    var jsonResponse = JSON.parse(response.getContentText());
    
    // 检查API返回的状态是否为OK
    if (jsonResponse.status === "OK") {
      // 获取第一个结果的经纬度
      var location = jsonResponse.results[0].geometry.location;
      var latitude = location.lat;
      var longitude = location.lng;
      
      // 可以返回经纬度,或者做其他处理
      return {lat: latitude, lng: longitude};
    } else {
      // 处理API返回的错误状态,比如ZERO_RESULTS、INVALID_REQUEST等
      Logger.log("地理编码失败,状态:" + jsonResponse.status);
      return null;
    }
  } else {
    Logger.log("请求失败,响应码:" + response.getResponseCode());
    return null;
  }
}

关键步骤说明:

  • JSON.parse(response.getContentText()):把API返回的文本格式响应转换成JavaScript对象,方便访问里面的字段。
  • 先判断jsonResponse.status是否为"OK":这是地理编码API的标准状态码,只有状态为OK时,results数组里才会有有效数据。
  • 从results[0].geometry.location中提取lat(纬度)和lng(经度):API会返回多个匹配结果(如果有的话),通常取第一个结果即可。

使用示例:

调用函数时传入具体地址,比如:

var coords = geocode("北京市朝阳区建国门外大街");
if (coords) {
  Logger.log("纬度:" + coords.lat + ",经度:" + coords.lng);
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.17 09:57:12