画像を読み込むタグの基本は
<img src=”○○.jpg”>
です.
この””で囲まれた範囲はファイル名(パス名とファイル名)です.
これを条件(たとえば気温)によって変えればよいわけです.
画像を読み込むタグの基本は
<img src=”○○.jpg”>
です.
この””で囲まれた範囲はファイル名(パス名とファイル名)です.
これを条件(たとえば気温)によって変えればよいわけです.
日付扱っている方,日付オブジェクトの中身を確認してください
下の例だとmyDateをコンソールで表示
時間が9時間前ならutcです.
JSTを使いたい場合,これでうまく行きそうです.
日付をとる場合、午前だと前日が表示される場合があり,その原因はUTCです.
myDate = new Date(); console.log(myDate, "UTC"); myDate.setHours(myDate.getUTCHours() + 9);//時差の9時間を足す.サマータイムはとかの突っ込みはご容赦 Year = myDate.getFullYear(); Month = myDate.getMonth() + 1; Day = myDate.getDate(); console.log(myDate, "JST");
日付指定,UTCとJSTが混在してが面倒な場合,最新20が表示されるURLが
(機種によってはUTCが取得される?)
“http://api.aitc.jp/jmardb/search?areacode=230000&order=new”
これの中身を上から順に検索していけばよい
ただしレスポンス悪いので,ロード中は「取得中」とか表示させればいいのでは?
最新時刻で警報が出ているかどうかの確認ができる.
これに現時間で判定させる仕組みを入れるとできあがり.
<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>
カレンダー表示については以下のサイトが参考になるかと思われます.
http://homepage.wakabagari.com/lesson8/lesson8.9.php
休校日,土曜日,臨時日のデータです
2014年1月1日を起点とした日付で,11月1日以降です
var rinji = new Array(157,204,205,208,209,210,256,303,332,385,386,387,390,391); var myClose = new Array(356,360,361,362,363,364,365,366,367,368,369,376,406,444); var mySat = new Array(357,358,359,384,392,393,394,397,398,399,400,401,403,404,405,407,408,411,412,413,414,415,418,419,420,421,422,425,426,427,428,429,432,433,434,435,436,439,440,441,442,443,446,447,448,449,450,453,454);
出来る方はやってみてください.
これで特定日のデータは取れるようになりました.
実行すると警報が出ている地域の一覧が出ます
<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">
httpObj = new XMLHttpRequest();//XML読みに行ってね
httpObj.open("get", "http://api.aitc.jp/jmardb/reports/84a9b370-b399-35b1-aee5-9dbb8a03597a.json", true);//テスト用のアドレス
//httpObj.open("get", "http://api.aitc.jp/jmardb/reports/32df3636-4dab-308b-a1ad-62a609b514c7.json", 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は発令か継続か(あまりないけど解除か)
}
}
}
document.getElementById("result").innerHTML = txt;
}
httpObj.send(null);
</script>
<div id="result"></div>
</body>
</html>