我正在尝试从Google工作表中的位置获取经度和纬度
位置栏= N
纬度栏= O
经度列= P
函数抛出错误,这部分var geocoder = Maps.newGeocoder().geocode(address);
如果location列中单元格的值不是可给定坐标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);
}
关于google-apps-script - 使用Google脚本从地址数据中获取地理位置数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64138291/