![](/img/trans.png)
[英]Why is Google Maps Not Populating All Zip codes From Google Sheets Using Google Data Studio?
[英]Error Parsing Google Maps Data from XML using Apps Script in Google Sheets
我正在尝试从使用 Google 地图 API 创建的 XML 中提取“格式化地址”。我无法通过代码的 XML 部分。 我收到错误“异常:错误请求:http://0(第 176 行)”。 有什么我想念的吗? 我该如何修改这个? 任何指导表示赞赏。 第 176 行是“var extractXml = UrlFetchApp.fetch(addUrl);” 这个想法是查找一个“草率”的地址并在 Google 表格的另一个单元格中返回一个 Google 标准化版本。 当我粘贴 URL 时,该片段是在浏览器中看到的 XML。“格式化地址”部分是我要返回的内容。
function addressFormat() {
var ss = SpreadsheetApp.getActive();
var sss = ss.getSheetByName("format");
var addr = sss.getRange(1,1,).getValue();
var apiKey = "API Key Here";
var addUrl = "https://maps.googleapis.com/maps/api/geocode/xml?address=" & addr & "&key=" & apiKey;
var extractXml = UrlFetchApp.fetch(addUrl);
var contentsXml = extractXml.getContentText;
var xmlAdd = XmlService.parse(contentsXml);
var response = xmlAdd.getRootElement();
var records = response.getChild('GeocodeResponse');
var recordList = records.getChild('result');
var formattedAddd = recordList('formatted_address')
return formattedAddd.getValue;
}
我认为var addUrl = "https://maps.googleapis.com/maps/api/geocode/xml?address=" & addr & "&key=" & apiKey;
应该是var addUrl = "https://maps.googleapis.com/maps/api/geocode/xml?address=" + encodeURIComponent(addr) + "&key=" + apiKey;
或var addUrl = `https://maps.googleapis.com/maps/api/geocode/xml?address=${encodeURIComponent(addr)}&key=${apiKey}`;
.
请将()
添加到var contentsXml = extractXml.getContentText;
.
从您的脚本中,我认为您可能想要检索formatted_address
的值。 在这种情况下,需要修改脚本以从 XML 数据中检索值。
当这些点都体现在你的脚本中时,下面的修改怎么样?
function addressFormat() {
var apiKey = "API Key Here"; // Please set your API key.
var ss = SpreadsheetApp.getActive();
var sss = ss.getSheetByName("format");
var addr = sss.getRange(1, 1).getValue();
var addUrl = "https://maps.googleapis.com/maps/api/geocode/xml?address=" + encodeURIComponent(addr) + "&key=" + apiKey; // or var addUrl = `https://maps.googleapis.com/maps/api/geocode/xml?address=${encodeURIComponent(addr)}&key=${apiKey}`;
var extractXml = UrlFetchApp.fetch(addUrl);
var contentsXml = extractXml.getContentText();
var xmlAdd = XmlService.parse(contentsXml);
var root = xmlAdd.getRootElement();
var ns = root.getNamespace();
var formatted_address = root.getChild("result", ns).getChild("formatted_address", ns).getValue();
return formatted_address;
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.