![](/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.