我正试图从谷歌表单中的位置获取纬度和经度
位置列=N
纬度列=O
经度栏=p
函数抛出错误,此部分
var geocoder = Maps.newGeocoder().geocode(address);
如果位置列中的单元格的值不是可以给定坐标ex的形式;空单元格或"空单元格";智利";
发生这种情况时,我需要给lat & lng
一个空值,即
lat=lng=">
我正在尝试使用
try{}
catch(e){}
错误处理功能运行,但没有输出
感谢
原始功能
function geoCode() {
var sheet = SpreadsheetApp.getActiveSheet();
var range = sheet.getDataRange();
var cells = range.getValues();
var latitudes = [];
var longitudes = [];
for (var i = 1; i < cells.length; i++) {
var address = cells[i][13];
var geocoder = Maps.newGeocoder().geocode(address);
var res = geocoder.results[0];
var lat = lng = 0;
if (res) {
lat = res.geometry.location.lat;
lng = res.geometry.location.lng;
}
latitudes.push([lat]);
longitudes.push([lng]);
}
sheet.getRange('O2')
.offset(0, 0, latitudes.length).setValues(latitudes);
sheet.getRange('P2').offset(0, 0, longitudes.length).setValues(longitudes);
}
带有错误处理
function geoCode2() {
var sheet = SpreadsheetApp.getActiveSheet();
var range = sheet.getDataRange();
var cells = range.getValues();
var latitudes = [];
var longitudes = [];
for (var i = 1; i < cells.length; i++) {
var address = cells[i][13];
try {
var geocoder = Maps.newGeocoder().geocode(address);
var res = geocoder.results[0];
var lat = lng = 0;
if (res) {
lat = res.geometry.location.lat;
lng = res.geometry.location.lng;
}
latitudes.push([lat]);
longitudes.push([lng]);
}
catch(e) {
var lat = lng = "";
latitudes.push([lat]);
longitudes.push([lng]);
continue;//If error continue looping
}
}
sheet.getRange('O2')
.offset(0, 0, latitudes.length).setValues(latitudes);
sheet.getRange('P2').offset(0, 0, longitudes.length).setValues(longitudes);
}
我想明白了。我想它只会在空单元格值上出错
function geoCode() {
var sheet = SpreadsheetApp.getActiveSheet();
var range = sheet.getDataRange();
var cells = range.getValues();
var latitudes = [];
var longitudes = [];
for (var i = 1; i < cells.length; i++) {
var address = cells[i][1];
if(address =="") {
lat = ""
lng = ""
latitudes.push([lat]);
longitudes.push([lng]);
} else{
var geocoder = Maps.newGeocoder().geocode(address);
var res = geocoder.results[0];
var lat = lng = 0;
if (res) {
lat = res.geometry.location.lat;
lng = res.geometry.location.lng;
}
latitudes.push([lat]);
longitudes.push([lng]);
}
}
sheet.getRange('C2')
.offset(0, 0, latitudes.length).setValues(latitudes);
sheet.getRange('D2').offset(0, 0, longitudes.length).setValues(longitudes);
}