Создайте несколько файлов документов с отдельными изображениями карты Google с помощью скрипта приложений из листов Google - PullRequest
0 голосов
/ 30 ноября 2018

Я пытаюсь использовать функции в Google Sheets для создания отдельных документов, которые включают в себя таблицу с информацией о текущей строке таблиц, за которой следует изображение местоположения на картах Google, которые сохраняются под именем «улица» - »графство "в Драйв.

Все работает, кроме статических карт.В то время как файлы сохраняются как правильное имя, а информация таблицы корректна для каждой строки, изображение карты, используемое в каждом документе, совпадает с исходным документом.Любые предложения будут с благодарностью.

  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);
  }

1 Ответ

0 голосов
/ 08 декабря 2018

Код некрасив, но работает.GPS в электронной таблице должен быть в десятичном формате.

...