東京アメッシュの降水量を表示するJavaScriptのサンプルコード

夏も終わりに近づいてきましたね。

近頃は天気が変わりやすいため、東京アメッシュなどで
数時間に一回、関東周辺の降水量を確認しています。

- 東京アメッシュ
-- http://tokyo-ame.jwa.or.jp/

このサイトを見ていると、そのうち何となく何時間後に
自分の住んでいる地域が雨になりそうかが、分かるようになります。

こういう天気系の情報は常に需要があるので、
かなり良いなぁと思います。

で、この東京アメッシュは東京都下水道局が運営しています。
僕は都民なので、積極活用させていただきます。

モダシンさんが東京アメッシュをいじくっていたので、
ソースコードを眺めてみました。

- Rain?
-- http://aivy.jp/rain/

なるほど、

東京アメッシュは、以下のように画像を3枚重ねていたのですか。
画像を表示し、表示の絶対位置を動かすことで、
全ての画像を重ね合わせていたのです。すごいなぁ。

降水量を表現する透過GIF画像
都道府県等を区切る透過PNG画像
関東地方の絵JPG画像

降水量を表現するGIF画像は1日経つと削除されていくようですね。

URLはこんな感じ。
年月日を8桁にして、正規表現部分に当てはめてあげれば見られます。

- 低解像度版
-- http://tokyo-ame.jwa.or.jp/mesh/000/[0-9]{4}[0-9]{2}[0-9]{2}0000.gif

- 高解像度版
-- http://tokyo-ame.jwa.or.jp/mesh/100/[0-9]{4}[0-9]{2}[0-9]{2}0000.gif

例、2011年1月1日1の12時ちょうどの場合。
http://tokyo-ame.jwa.or.jp/mesh/000/201101011200.gif


都道府県区切り画像と、関東の絵は、それぞれ以下のURLで取得可能。

- 低解像度版
-- http://tokyo-ame.jwa.or.jp/map/msk000.png
-- http://tokyo-ame.jwa.or.jp/map/map000.jpg

- 高解像度版
-- http://tokyo-ame.jwa.or.jp/map/msk100.png
-- http://tokyo-ame.jwa.or.jp/map/map100.jpg



ほとんどモダシンさんのソースコードですけど、
要するに以下のようにすると、東京アメッシュな感じになります。

このサンプルを実行すると、ご覧の環境の時計に合わせて、
現在から10分以内の降水量を表示します。
時計がずれ過ぎてると、何も表示されないかも。

<style type="text/css">
<!--
 .image-position{position:absolute;left:300px;}
-->
</style>
<script language="javascript" type="text/javascript">
<!--
 function getNow() {
   var date   = new Date();
   var tmp_y  = date.getYear();
   var year   = (tmp_y < 2000) ? (tmp_y + 1900) : tmp_y;
   var mon    = date.getMonth() + 1;
   var day    = date.getDate();
   var hour   = date.getHours();
   var min    = date.getMinutes();
   if (mon < 10) {mon = "0" + mon;}
   if (day  < 10) {day = "0" + day;}
   if (hour < 10) {hour = "0" + hour;}
   min = parseInt(min / 10) + "0";
   var now = year + mon + day + hour + min;
   return now;
 }
//-->
</script>
<div>
<img src="http://tokyo-ame.jwa.or.jp/map/map100.jpg" class="image-position" style="z-index:1;" width="300">
<img src="http://tokyo-ame.jwa.or.jp/map/msk100.png" class="image-position" style="z-index:2;" width="300">
<script language="javascript" type="text/javascript">
var now = getNow();
document.write("<br><img src=\"http://tokyo-ame.jwa.or.jp/mesh/000/" + now + ".gif\" class=\"image-position\" style=\"z-index:3;\" width=\"300\" >");
document.write("<br><br><br><br><br><br><br>" + now + "の画像<br>");
</script>
</div>


動作例は以下のとおり。

無理矢理表示しているので、FireFox以外ではちゃんと表示されないかも。



きちんと3つの画像が重なります。すごいすごい。

東京アメッシュのことを、ちょっと分かったので、
どんなアプリケーションを作るうか考えてみます。


投稿者:としのり  日時:23:59:59 | コメント | トラックバック |
blog comments powered by Disqus