我正在使用this script对Google电子表格中的地址列进行地理编码。它创建了一个函数getLatLon,它接收来自地址列的值。尽管我只有190行,但我很快就达到了每日2,500的地理编码API限制。我认为这是因为每次加载工作表时脚本都会运行。
我想仅在地址尚未进行地理编码时才运行脚本。为此,我尝试使用公式访问单元格的值以查看它是否为空白。如果是这样,请运行地理编码器。但是它使我的所有细胞,甚至是地理编码的细胞都变得空白。
这是我的代码。我不确定我是否正确使用了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
}
}
};
答案 0 :(得分:0)
您可以将地理编码的行移动到另一个工作表。始终保持脚本的清晰数据。