2019年09月26日 10:06
//ジオコーディングする
function geoCoding() {
var sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName('ジオコーディング');
var address_column = 1; //住所がある列
var latitude_column = 2; //緯度がある列
var longitude_column = 3; //経度がある列
var formated_address_column = 4; //フォーマットされた住所がある列
var lastrow = sheet.getLastRow();
var lastcol = sheet.getLastColumn();
var values = sheet.getRange(1, 1, lastrow, lastcol).getValues();
var geocoder = Maps.newGeocoder();
geocoder.setLanguage('ja'); //日本の住所に設定
for (var i=1; i < lastrow; i++) {
var address = values[i][address_column-1]; //住所
var latitude = values[i][latitude_column-1]; //緯度
var longitude = values[i][longitude_column-1]; //経度
//フォーマットされた住所
var formated_address = values[i][formated_address_column-1];
if (address === ''){
continue;
}else if(latitude !== '' && longitude !== '' && formated_address !== ''){
continue;
}
var response = geocoder.geocode(address);
var result = response.results[0];
values.splice(i, 1,
[address,
result.geometry.location.lat,
result.geometry.location.lng,
result.formatted_address]);
}
sheet.getRange(1, 1, lastrow, lastcol).setValues(values);
}
//リバースジオコーディングする
function revereseGeoCoding() {
var sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName('リバースジオコーディング');
var latitude_column = 1; //緯度がある列
var longitude_column = 2; //経度がある列
var formated_address_column = 3; //フォーマットされた住所がある列
var lastrow = sheet.getLastRow();
var lastcol = sheet.getLastColumn();
var values = sheet.getRange(1, 1, lastrow, lastcol).getValues();
var geocoder = Maps.newGeocoder();
geocoder.setLanguage('ja'); //日本の住所に設定
for (var i=1; i < lastrow; i++) {
var latitude = values[i][latitude_column-1]; //緯度
var longitude = values[i][longitude_column-1]; //経度
//フォーマットされた住所
var formated_address = values[i][formated_address_column-1];
if (latitude === '' || longitude === ''){
continue;
}else if(formated_address !== ''){
continue;
}
var response = geocoder.reverseGeocode(latitude, longitude);
var result = response.results[0];
values.splice(i, 1, [latitude, longitude, result.formatted_address]);
}
sheet.getRange(1, 1, lastrow, lastcol).setValues(values);
}