YouTubeやってます!
Categoriesニュース

長岡まつり2011 – 臨時駐車場の空き情報を取得するAPIを作ってみた

Date 2011/07/20 17:35  Modified date 2016/05/10 Author Yutaka  Tags 情報処理 臨時駐車場 長岡まつり 長岡まつり2011

 長岡まつりの臨時駐車場の空き情報を取得出来る(かもしれない)APIを勝手に作ってみました。
 長岡まつりの駐車場情報のページのソースをみて、「これってもしかして、空車とか満車とかの情報、取得出来ちゃうんじゃない?」と思ったのがキッカケ。
 作ったは良いけど、どう使おうか現在考え中。

 長岡まつりの公式サイトの臨時駐車場情報って「空車あり」とか「満車」とかの情報が表示されるようになってるんですね。臨時駐車場の情報はチェックしていたのですが、空き情報の方はノーチェックでした。

 で、「この情報、うちのサイトでも表示出来ないかなぁ? 出来そうだよなぁ。」と思ってごそごそしてみたらどうも情報を取得出来るようになったっぽいです。せっかくなのでそのAPI的なものを公開してみます。

 ちなみに駐車場情報のソースは以下のページです。これらのページを読み込んで駐車場の情報を取得しています。

 まだ実際に駐車場情報が更新された状態が分からないので、どのようにページのソースが変化するのか分からないのですが、「たぶん、あこがこう変わるんだろうなぁ」という推測の下、プログラムを組んでいます。なので、当日まったく情報が取得出来ないという状態になる可能性もありますが、その点はご了承下さい。

仕様

リクエストURL

http://www.icoro.com/idea/nagaokamatsuri/2011/json.php

 デフォルトでは2011/08/03 0:00まで8/2の駐車場情報を、それ以降は8/3の駐車場情報を返すようになっています。
 2日、または3日のデータを明示的に取得したい場合は以下のように dayクエリを付加します。

 2日の駐車場情報を取得したい場合:
http://www.icoro.com/idea/nagaokamatsuri/2011/json.php?day=2
3日の駐車場情報を取得したい場合:
http://www.icoro.com/idea/nagaokamatsuri/2011/json.php?day=3

レスポンス

 レスポンスはJSONで返ってきます。内容は以下の通り。

  • version : APIのバージョン
  • status : レスポンスの状態。うまく取得出来た場合は「OK」が、データの取得に失敗した場合は「File Read Error」が代入されます。
  • day : 2日の駐車場情報の場合は「2」が、3日の場合は「3」が代入されます。
  • generated_date : データが生成された日時。生成したデータは10分間キャッシュするようにしているので、データの生成日時がリクエストした日時とズレている場合があります。
  • places : 臨時駐車場情報の配列。データの取得に失敗した場合は省略されます。
    • name : 臨時駐車場名
    • updatetime : 駐車場情報が更新された時間
    • status : 駐車場の状態を表す数字。状態に合わせて、1(空車あり)、2(残りわずか)、3(満車)、4(閉)のいずれかが代入されます。
    • status_str : 駐車場の状態を表す文字列。状態に合わせて、「空車あり」、「残りわずか」、「満車」、「閉」のいずれかが代入されます。

レスポンスの例

{"version":"2011.07.20","status":"OK","day":2,"generated_date":"2011\/07\/20 16:19:33","places":[{"name":"\u8fd1\u4ee3\u7f8e\u8853\u9928","updatetime":"00:00:00","status":4,"status_str":"\u9589"},{"name":"\u9577\u5ca1\u9020\u5f62\u5927\u5b66","updatetime":"00:00:00","status":4,"status_str":"\u9589"},{"name":"\u9577\u5ca1\u30ea\u30ea\u30c3\u30af\u30db\u30fc\u30eb","updatetime":"00:00:00","status":4,"status_str":"\u9589"},{"name":"\u56fd\u55b6\u8d8a\u5f8c\u4e18\u9675\u516c\u5712","updatetime":"00:00:00","status":4,"status_str":"\u9589"},{"name":"\u5e02\u5f79\u6240\u30fb\u5e02\u7acb\u5287\u5834","updatetime":"00:00:00","status":4,"status_str":"\u9589"},{"name":"\u5065\u5eb7\u30bb\u30f3\u30bf\u30fc","updatetime":"00:00:00","status":4,"status_str":"\u9589"},{"name":"\u8d8a\u8def\u652f\u6240","updatetime":"00:00:00","status":4,"status_str":"\u9589"},{"name":"\u8d8a\u8def\u4f53\u80b2\u9928","updatetime":"00:00:00","status":4,"status_str":"\u9589"},{"name":"\u5317\u90e8\u4f53\u80b2\u9928","updatetime":"00:00:00","status":4,"status_str":"\u9589"},{"name":"\u5357\u90e8\u5de5\u696d\u56e3\u5730","updatetime":"00:00:00","status":4,"status_str":"\u9589"},{"name":"\u5009\u6577\u6a5f\u68b0","updatetime":"00:00:00","status":4,"status_str":"\u9589"},{"name":"\u4e0a\u8d8a\u30de\u30c6\u30ea\u30a2\u30eb","updatetime":"00:00:00","status":4,"status_str":"\u9589"}]}

ダウンロード

 ソースコードが気になっちゃう感じの方のために、ソースコードをダウンロード出来るようにしました。
 ソース読んで、ココこーした方が良いよ、とか、書き直してやったぜ、とかいうのがあったら、是非メールしてください。(これに関してTwitterで@icoroにリプライやらDMやらしてもicoroアカウントを管理しているicoro♀はちんぷんかんぷんなので、ご注意を。)
 もし、なにかに転用したい人がいたら自由に転用して下さい。また、これを使った事で何か問題が起きても全然責任取れませんのでご了承ください。

そんな感じ

 勝手にデータを取得してるので、公式サイト側から文句言われたりアクセスブロックされて終了のお知らせもあり得るのですが、まあ、その時はその時と言うことで。

 目下の課題は、これ、作ったは良いけどどうやって活用しようか、というところ。駐車場情報の記事書いて、そこに貼り付けとこうかなぁ。

Back to Top