Created
May 7, 2013 06:09
-
-
Save masuidrive/5530560 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// 取得するJSONのURL | |
var url = "http://api.openweathermap.org/data/2.5/weather?lat=35.65858&lon=139.745433"; | |
// データを保存するシート | |
var data_sheet_name = 'data'; | |
// アップデートするチャートの名前 | |
var chart_sheet_name = 'charts'; | |
var chart_name = 'Temps'; | |
// JSONのデータを配列に変換 | |
var data_to_line = function(data) { | |
return [new Date(), data.main.temp, data.main.humidity]; | |
} | |
function fetchJSON() { | |
var response = UrlFetchApp.fetch(url); | |
if (response.getResponseCode() == 200) { | |
var data = Utilities.jsonParse(response.getContentText()); | |
var doc = SpreadsheetApp.getActiveSpreadsheet(); | |
var data_sheet = doc.getSheetByName(data_sheet_name); | |
appendDataToBottom(data_sheet, data); | |
var charts_sheet = doc.getSheetByName(chart_sheet_name); | |
updateChart(charts_sheet, chart_name, data_sheet, 4); | |
} | |
} | |
function appendDataToBottom(sheet, data) { | |
var start_row = sheet.getLastRow() + 1; | |
var line = data_to_line(data); | |
sheet.getRange(start_row, 1, 1,line.length).setValues([line]); | |
} | |
function updateChart(charts_sheet, chart_title, data_sheet, cols) { | |
var charts = charts_sheet.getCharts(); | |
for (var i in charts) { | |
var chart = charts[i]; | |
if(chart.getOptions().get("title") == chart_title) { | |
var builder = chart.modify(); | |
var ranges = chart.getRanges(); | |
for (var j in ranges) { | |
builder.removeRange(ranges[j]); | |
} | |
var newRange = data_sheet.getRange(1, 1, data_sheet.getLastRow()+1, cols); | |
builder.addRange(newRange); | |
charts_sheet.updateChart(builder.build()); | |
} | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment