【Rails/JS】무료 API 「OpenWeatherMap」으로 일기 예보를 표시한다
목표
절차
OpenWeatherMap을 사용할 준비
units=metric
를 추기하는 것으로, 섭씨(°C)로 변경할 수 있습니다. 기타 자세한 내용은 이 페이지를 확인하십시오. Ajax에서 API에서 정보 얻기
var API_KEY
var city
를 정의하고 var url
app/assets/javascripts/weather.js
$(function() {
var API_KEY = '*******************************'
var city = 'Tokyo';
var url = 'http://api.openweathermap.org/data/2.5/forecast?q=' + city + ',jp&units=metric&APPID=' + API_KEY;
$.ajax({
url: url,
dataType: "json",
type: 'GET',
})
.done(function(data) {
})
.fail(function(data) {
});
});
HTML 조립
function(data)
로 되어 있기 때문에, 취득한 정보는 인수 data에 들어가 있습니다. data.city.name
로 하면, 지명을 취득할 수 있습니다. 표시되는 HTML에 id="cityname"
의 div 태그를 준비해, js로 html 메소드로 내용을 재기록하는 것으로 지명을 표시할 수 있습니다. 배열 list에 3시간 마다의 날씨의 정보가 차례로 들어 있기 때문에, 반복 for를 사용해
data.list[i]
로 하는 것으로 차례로 데이터를 취득하고 있습니다. 게다가 data.list[i].weather[0].main
라고 하면 날씨를 취득할 수 있는 등 Advanced REST Client를 참고하면서 원하는 정보를 취득해 봅시다. app/assets/javascripts/weather.js
$(function() {
var API_KEY = '******************************'
var city = 'Tokyo';
var url = 'http://api.openweathermap.org/data/2.5/forecast?q=' + city + ',jp&units=metric&APPID=' + API_KEY;
$.ajax({
url: url,
dataType: "json",
type: 'GET',
})
.done(function(data) {
var insertHTML = "";
var cityName = '<h2>' + data.city.name + '</h2>';
$('#city-name').html(cityName);
for (var i = 0; i <= 8; i = i + 2) {
insertHTML += buildHTML(data, i);
}
$('#weather').html(insertHTML);
})
.fail(function(data) {
console.log("失敗しました");
});
});
http://openweathermap.org/img/w/04n.png
와 같은 형식으로 아이콘이 준비되어 있으므로 이를 이용하여 아이콘을 표시하고 있습니다. id="weather"
의 div 태그에 표시하면 완성됩니다. app/assets/javascripts/weather.js
function buildHTML(data, i) {
var Week = new Array("(日)","(月)","(火)","(水)","(木)","(金)","(土)");
var date = new Date (data.list[i].dt_txt);
date.setHours(date.getHours() + 9);
var month = date.getMonth()+1;
var day = month + "月" + date.getDate() + "日" + Week[date.getDay()] + date.getHours() + ":00";
var icon = data.list[i].weather[0].icon;
var html =
'<div class="weather-report">' +
'<img src="http://openweathermap.org/img/w/' + icon + '.png">' +
'<div class="weather-date">' + day + '</div>' +
'<div class="weather-main">'+ data.list[i].weather[0].main + '</div>' +
'<div class="weather-temp">' + Math.round(data.list[i].main.temp) + '℃</div>' +
'</div>';
return html
}
참고 : 무료 일기 예보 API의 OpenWeatherMap을 사용해보십시오.
내용에 미비 등이 있으면, 수고스럽지만 코멘트에서 부탁합니다.
Reference
이 문제에 관하여(【Rails/JS】무료 API 「OpenWeatherMap」으로 일기 예보를 표시한다), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/mikan3rd/items/a5bc87a2242e67cf17a4텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)