GoogleAppScript

フォームからEXIF取得

//フォームのスクリプトエディタに設定
function getFiles(e){
var sheet = SpreadsheetApp.openById("フォームの回答スプレッドシートID").getSheetByName("フォームの回答シート名");
var lastrow = sheet.getLastRow();//最新回答は最終行に入るので
var geocoder = Maps.newGeocoder();//緯度経度から住所出すのに必要
var itemResponses = e.response.getItemResponses();
var userId = e.response.getRespondentEmail();
var answers = [];
// フォームの回答を配列でanswersに格納
for(var i in itemResponses){
var itemResponse = itemResponses[i];
answers.push(itemResponse.getResponse())
}

 

Logger.log(answers);
//ファイルのアップロード制限1個であれば繰り返さなくてもいいかもしれません
for(var i in answers[ファイルのアップロードの回答が入った配列番号]){
var fileId = answers[ファイルのアップロードの回答が入った配列番号][i]; // ファイルID
var exif = getPhotoExif(fileId).location;//下にあるgetPhotoExif関数でExif情報取得しそのなかから場所の情報取り出し
Logger.log(exif);
Logger.log(exif);
if(exif != null){
var longitude = exif.longitude;//経度
var latitude = exif.latitude;//緯度
var response = geocoder.reverseGeocode(latitude, longitude);//住所取得
var formatted_address = response.results[0].formatted_address;//住所のみ取り出し
Logger.log(formatted_address);
}
}

 

var array = [latitude,longitude,formatted_address];
sheet.getRange(lastrow,最後のフォームの回答の隣の列番号,1,array.length).setValues([array]);
}

 

function getPhotoExif(fileId) {

 

var file = Drive.Files.get(fileId);
var metaData = file.imageMediaMetadata;
Logger.log(metaData);
returnmetaData;
}