BusMap2のJSON形式データサービス

山梨バスマップテストサイトからの情報提供

以下で、ファイル名だけで、完全なURLを指定してないスクリプトは http://dev.busmaps.jp/yamanashi/modules/BusMap2/jsonp/ を頭につけることにより、アクセスできる。

路線一覧 BusCategorizedRouteJSONP.php

http://dev.busmaps.jp/yamanashi/modules/BusMap2/jsonp/BusCategorizedRouteJSON.php?callback=functionName

これを、jQueryの階層構造表示ライブラリtreeviewなどを使って階層構造表示できるようにしたい。(紹介ページとして、たとえばhttp://www.mdn.co.jp/di/articles/2369/?page=7

路線データ: 停留所列と道筋(緯度経度の列)

  http://dev.busmaps.jp/yamanashi/modules/BusMap2/jsonp/BusRouteRoadsJSON.php

GET型引数として、

?routes=一般路線ID|路線ID!一般路線ID2|路線ID

を与える。 例:

  http://dev.busmaps.jp/yamanashi/modules/BusMap2/jsonp/BusRouteRoadsJSON.php?routes=19|17

routesは1つ以上。

地図上に路線道筋と停留所を描画するのに用いられる。

出力形式

  [
    {route_name:"路線名",
    road: [
        {start:"バス停", end="バス停",
        marker: [
                  {lat:"緯度", lng:"経度"}
                ]
        }
      ]
    }
  ]

出発停留所、目的停留所のIDを求める

BusStopNameJSON.php?startname=武田&endname=病院

のように、文字列を与えると、その文字列を含む停留所のIDとフルネームを返してくれる。

乗り継ぎ検索情報

  transferInfoJSON.php?startId=6&endId=28&stime=9:00
  

  transferInfoJSON.php?startPlatId=32&endPlatId=62&stime=9:00
  

stimeは、出発時刻、etimeは到着時刻 (排他的にどちらかを使用)。なければstimeに現在の時刻を使用

出力形式:こちらのページ

バス停一覧

http://dev.busmaps.jp/yamanashi/modules/BusMap2/jsonp/BusStopJSON.php

バス停名一覧を返してくれる。 (引数にcallback=?を入れれば,jsonp形式でのデータ受け渡しとなる.)

時刻表

http://dev.busmaps.jp/yamanashi/modules/BusMap2/jsonp/stoptimeJSON.php?stopId=331

のように,stoptimeJSON.phpの引数として stopId=バス停ID (上記の例では331)をわたすと,そのバス停での発着時刻一覧が返される.

(引数にcallback=?を入れれば,jsonp形式でのデータ受け渡しとなる.)

バス便ごとの時刻表

busIdを指定して,経由停留所の順番と時刻を出力する.

http://dev.busmaps.jp/yamanashi/modules/BusMap2/jsonp/timetableByBusJSON.php?busId=4127

路線IDを指定して乗り場(Platform)列を得る

http://dev.busmaps.jp/yamanashi/modules/BusMap2/jsonp/BusPlatformsByRouteID.php?routeID=6

routeIDで路線IDを指定する。

形式:

[
  {
    "ID": "77",
    "LAT": "35.692068819854",
    "LNG": "138.562027215958",
    "OrderNum": "1",
    "stopName": "HANAZONOホスピタル",
    "platformName": "",
    "seq": 1
  },
  { ...
  }
]

路線の始発の時刻と停留所情報を取得

- 総称IDを引数にする。

http://dev.busmaps.jp/yamanashi/modules/BusMap2/jsonp/startStopsByGID.php?genID=19

- 路線IDを引数にする。

http://dev.busmaps.jp/yamanashi/modules/BusMap2/jsonp/startStopsByRouteID.php?routeID=17

形式:

{
  "17": {
    "routeID": "17",
    "OrderNum": "1",
    "OrderNum2": "26",
    "ConnectionID": "381",
    "platformID": "266",
    "LAT": "35.640925520002",
    "LNG": "138.570604920387",
    "stopID": "159",
    "stopName": "塚原",
    "platformName": "",
    "EndOrderNum": "26",
    "EndConnectionID": "406",
    "EndPlatformID": "73",
    "EndLAT": "35.691212706262",
    "EndLNG": "138.571221828461",
    "bus": [
      {
        "time": "06:40:00",
        "BusID": "4837",
        "ArrivalTime": "07:05:00"
      },
      {
        "time": "07:06:00",
        "BusID": "4838",
        "ArrivalTime": "07:33:00"
      },...
    }
}

JSONデータのチェック、表示ツール

Web上を探すとJSONデータのチェックツールがいろいろみつかる。

chromeやfirefoxにはアドオンがあり、それを使うのも一手。 http://www.crossl.net/blog/json_check_webservice/ にメモがある。

入力補完

参考: フリーで使えるライブラリ

(参考)jQueryの利用の初歩

昨年度学生用に書いたもの

jQueryライブラリの取得と自分のスクリプトへの読み込み

jQueryにjsonデータを扱うのに便利な機能が用意されているので、それを使ってみる。

jQueryはJavaScriptのライブラリであり、利用するときにそれを読み込んで使用する。まず、最新版をゲットして、プログラムのディレクトリに置く。 jQueryのホームのDownloadからゲットできる。

利用するには、htmlファイルに

<script type="text/javascript" src="./js/jquery-1.8.2.min.js"></script>

jQuery関数でデータをゲットして、ページに出力してみる例

<script type="text/javascript" src="./jquery-1.8.2.min.js"></script>
<script type="text/javascript">
  /* 準備ができたら自動的に実行させる */
  $(document).ready(function() {
      /* $.から始まるのがjQuery関数 */
      /* callback=? の ? に第2引数の関数名(プログラムの上では無名関数)が入る。*/
      $.getJSON('http://tepco-usage-api.appspot.com/latest.json?callback=?',function(data){
          var str;
          var ratio = data['usage']/data['capacity']*100;
          str = '東京電力全体の利用率(' + data['hour'] +'時台) : ' + ratio.toFixed(1) + "% (使用量 " + data['usage'] + "万KW, 供給可能量 " + data['capacity'] +"万KW)<br>";
          $('#tepco').append(str);

      });
  });
</script>
<document>
  <div id='tepco' style='text-align: center'>取得したデータ: </div>
</document>