最新時刻で警報が出ているかどうかの確認ができる.
これに現時間で判定させる仕組みを入れるとできあがり.
<html> <head> <title>警報書き出し</title> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1, minimum-scale=1, maximum-scale=1, user-scalable=no"> <!-- metaタグで スマホの挙動を制限している --> </head> <body> <h2>警報データ検索(ダミーデータ)</h2> <script type="text/javascript"> var hantei = new Array(); var alertURL; //var hantei; ///日付からURL作成 myDate = new Date(); Year = myDate.getFullYear(); Month = myDate.getMonth(); Day = myDate.getDate(); ///昨日の日付 yDate = new Date(Year, Month, Day); yDate.setDate (yDate.getDate() - 1); YYear = yDate.getFullYear(); YMonth = yDate.getMonth(); YDay = yDate.getDate(); var myURL = "http://api.aitc.jp/jmardb/search?areacode=230000&datetime=" + YYear + "-" + YMonth + "-" + YDay +"&datetime="+ Year + "-" + Month + "-" +Day; console.log(myURL); httpObj = new XMLHttpRequest();//XML読みに行ってね httpObj.open("get", myURL, true);//発令のダミーデータがここに httpObj.onload = function(){ var myData = JSON.parse(this.responseText);//読み込んだデータをテキスト化してmyDataに格納 console.log(myData); var txt = "";//表示用にダブルクォーテーションで文字列化するための準備 for(i=myData.data.length-1; i > -1; i--){//warning[2]はエリア console.log(myData.data[i].title); if(myData.data[i].title == "気象特別警報・警報・注意報" || myData.data[i].title == "気象警報・注意報"){ alertURL = myData.data[i].link + ".json"; myAlert(); return; } } } httpObj.send(null); function myAlert(){ httpObj = new XMLHttpRequest();//XML読みに行ってね //httpObj.open("get", "http://api.aitc.jp/jmardb/reports/84a9b370-b399-35b1-aee5-9dbb8a03597a.json", true);//テスト用のアドレス httpObj.open("get", alertURL, true);//発令のダミーデータがここに httpObj.onload = function(){ var myData = JSON.parse(this.responseText);//読み込んだデータをテキスト化してmyDataに格納 var txt = "";//表示用にダブルクォーテーションで文字列化するための準備 for(var i=0; i < 6; i++){//warning[2]はエリア for(var a=0; a<myData.report.body.warning[2].item[i].kind.length; a++){//itemの長さは実際に55ありiを1つずつ加算しその要素を調べる if(myData.report.body.warning[2].item[i].kind[a].code == 5 || myData.report.body.warning[2].item[i].kind[a].code == 35 || myData.report.body.warning[2].item[i].kind[a].code == 33){//警報の要素はaを1つずつ加算し中を見る.5が暴風警報,33は大雨特別警報.35が暴風特別警報 txt += myData.report.body.warning[2].item[i].area.name + "で" + myData.report.body.warning[2].item[i].kind[a].name + myData.report.body.warning[2].item[i].kind[a].status + "<br />"; //area.nameは地域名,kind[a].nameは警報の名前 kind[a].statusは発令か継続か(あまりないけど解除とか) var addTex = "" + myData.report.body.warning[2].item[i].kind[a].status; hantei.push(addTex); }else{ txt = "警報は出ていません"; } } alertCheck(); } document.getElementById("result").innerHTML = txt; } httpObj.send(null); } function alertCheck(){ var neko = 0; ////----検索 for(i=0; i < hantei.length; i++){ if(hantei[i] == "発表" ||hantei[i] == "継続" ){ neko = neko + 1; } } } </script> <div id="result"></div> </body> </html>