使用来自 google 工作表的应用程序脚本使用单独的 google 地图图像创建多个文档文件
Create multiple doc files with separate google map images with apps script from google sheets
我正在尝试使用 Google 表格中的功能来创建单独的文档,其中包括来自当前表格行的 table 大纲信息,后跟 Google 的地图图像保存在 Drive 中的文件名 "street"-"county" 下的位置。
除静态地图外一切正常。虽然文件保存为正确的名称,并且每行的 table 信息都是正确的,但每个文档中使用的地图图像都与初始文档相同。任何建议将不胜感激。
function makeDocument(){
var ss = SpreadsheetApp.getActiveSpreadsheet()
var sheet = ss.getActiveSheet()
var info = []
for (i=2; i <= 4; i++) { //sheet.getLastRow()
values = sheet.getRange(i, 1, 1, 11).getValues();
info[i] = {};
info[i]['id'] = values[0][0];
info[i]['sd'] = values[0][1];
info[i]['address'] = values[0][2];
info[i]['city'] = values[0][3];
info[i]['county'] = values[0][4];
info[i]['state'] = values[0][5];
info[i]['zip'] = values[0][6];
info[i]['puse'] = values[0][7];
info[i]['lat'] = values[0][8];
info[i]['lon'] = values[0][9];
info[i]['sl'] = values[0][10];
create_document(info[i]);
info[i] = {};
Logger.log(info[i]);
}
}
function create_document(info){
// Create document as address for filename
var doc = DocumentApp.create(info['address']+"-"+info['county'])
var body = doc.getBody()
// create and insert table
var cells = [
['Yardi Id','PUSE','Address','City','County','State','Service Level'],
[info['id'], info['puse'], info['address'], info['city'], info['county'], info['state'], info['sl']]
];
body.insertTable(0, cells);
body.appendImage(get_map_image(info['lat'],info['lon']))
doc.saveAndClose();
}
function get_map_image(lat, lon){
var image = Maps.newStaticMap()
.setSize(600, 800)
.setCenter(lat, lon)
.addMarker(lat, lon)
.addVisible(lat, lon)
.setZoom(21)
.setMapType(Maps.StaticMap.Type.SATELLITE)
.setFormat(Maps.StaticMap.Format.PNG32);
return(image);
}
代码很丑,但可以用。电子表格中的 GPS 需要采用十进制格式。
我正在尝试使用 Google 表格中的功能来创建单独的文档,其中包括来自当前表格行的 table 大纲信息,后跟 Google 的地图图像保存在 Drive 中的文件名 "street"-"county" 下的位置。
除静态地图外一切正常。虽然文件保存为正确的名称,并且每行的 table 信息都是正确的,但每个文档中使用的地图图像都与初始文档相同。任何建议将不胜感激。
function makeDocument(){
var ss = SpreadsheetApp.getActiveSpreadsheet()
var sheet = ss.getActiveSheet()
var info = []
for (i=2; i <= 4; i++) { //sheet.getLastRow()
values = sheet.getRange(i, 1, 1, 11).getValues();
info[i] = {};
info[i]['id'] = values[0][0];
info[i]['sd'] = values[0][1];
info[i]['address'] = values[0][2];
info[i]['city'] = values[0][3];
info[i]['county'] = values[0][4];
info[i]['state'] = values[0][5];
info[i]['zip'] = values[0][6];
info[i]['puse'] = values[0][7];
info[i]['lat'] = values[0][8];
info[i]['lon'] = values[0][9];
info[i]['sl'] = values[0][10];
create_document(info[i]);
info[i] = {};
Logger.log(info[i]);
}
}
function create_document(info){
// Create document as address for filename
var doc = DocumentApp.create(info['address']+"-"+info['county'])
var body = doc.getBody()
// create and insert table
var cells = [
['Yardi Id','PUSE','Address','City','County','State','Service Level'],
[info['id'], info['puse'], info['address'], info['city'], info['county'], info['state'], info['sl']]
];
body.insertTable(0, cells);
body.appendImage(get_map_image(info['lat'],info['lon']))
doc.saveAndClose();
}
function get_map_image(lat, lon){
var image = Maps.newStaticMap()
.setSize(600, 800)
.setCenter(lat, lon)
.addMarker(lat, lon)
.addVisible(lat, lon)
.setZoom(21)
.setMapType(Maps.StaticMap.Type.SATELLITE)
.setFormat(Maps.StaticMap.Format.PNG32);
return(image);
}
代码很丑,但可以用。电子表格中的 GPS 需要采用十进制格式。