1
我使用this script对Google电子表格中的地址列进行地址解析。它创建一个函数getLatLon,它接受地址列中的值。尽管我只有190行,但我很快达到了每日地理编码API限制2,500。我认为这是因为脚本每次载入时都会运行脚本。限制Google电子表格中的地址解析呼叫
我想让脚本仅在地址尚未经过地理编码的情况下才能运行。为此,我尝试使用公式访问单元格的值以查看它是否为空。如果是这样,请运行地理编码器。但它让我的所有细胞,甚至是经过地理编码的细胞都变成了空白。
这是我的代码。我不确定是否正确使用getValue()(如果没有值,它将返回空字符串),或者如果我的单元格具有公式使该值非空白。
还有什么方法可以测试单元格中的空白值?
function getLatLon(address) {
var sh = SpreadsheetApp.getActiveSpreadsheet();
var cell = sh.getActiveCell();
var value = cell.getValue();
if (address == '') {
Logger.log("Must provide an address");
return;
}
if (value == '') {
var geocoder = Maps.newGeocoder();
var location;
location = geocoder.geocode(address);
Utilities.sleep(2000);
// Only change cells if geocoder seems to have gotten a
// valid response.
if (location.status == 'OK') {
lat = location["results"][0]["geometry"]["location"]["lat"];
lng = location["results"][0]["geometry"]["location"]["lng"];
return lat + "," + lng
}
}
};
这就是我最终做的,但只有复制 - >粘贴值。这是你的意思,明确的数据?有没有一种方法可以通过脚本实现自动化? – robroc