駅データベース(1) – データビューアの作成

予定表(自動チェックイン)アプリや、列車時刻表を作っていて、鉄道駅のデータベースが欲しいと感じたので、既存サービスを利用しつつ、自前の簡単なデータベースを作ってみる。想定しているのは、
・時刻表アプリを使って乗車予定を作成し、
・その結果をスケジューラに自動登録し、
・予定時刻になったら位置情報サービスに自動チェックインする
という流れで、「訪問予定地(駅)」と「位置情報サービスの地点ID」を紐付けるのが今回の目的。

元になる路線や駅のデータとして、「駅データ.jp」が提供しているものを利用させていただく。

まず、CSV形式で提供される以下のデータを取り込む。

  • 事業者マスタ
    JSON形式に変換し、サーバに配置する(ファイル名:rw_company.json、サイズ:58kb)。
  • 路線マスタ
    JSON形式に変換し、サーバに配置する(ファイル名:rw_line.json、サイズ:231kb)。
  • 駅マスタ
    JSON形式に変換し、サーバに配置する(ファイル名:rw_station.json、サイズ:3,215kb)。あわせて位置情報サービス用の項目を付加し、データストアにも保存する。(JSONファイルは検索用のため、いずれ廃止する想定。)
  • 各マスタの関連(駅.jpサイトより引用)
    stationjp_master

取り込んだデータのビューアを作成する。実装サンプルはこちら。(動作は若干不安定。)

  • 全体イメージ
    上パネルで「事業者名」-「路線名」-「駅名」の絞込み検索を行う。各項目は指定した文字列で検索を行うこともできる。路線名まで絞り込んだら、左パネルに駅リストを、中央パネルに路線地図を表示する。右パネルには選択した駅の詳細情報を表示する。
    xttrw01_b01
  • 事業者・路線・駅検索(リスト)
    各マスタをコンボボックスにマッピングし、絞込み検索を行う。
    xttrw01_b06
    ・事業者を選択中
    xttrw01_b03
    ・路線を選択中
    選択が完了すると、左パネルに駅のリストを、中央パネルに駅の地図を表示する。(全ての駅が表示されるように縮尺を変更する。)
    xttrw01_b04
    ・駅を選択中
    駅の選択は左パネルのリストからも可能。選択した駅の情報を右パネルに表示する。また選択した駅を地図の中心とし、縮尺を変更する。
    xttrw01_b05
  • 乗換駅(同一駅)の表示
    駅は路線に属しているが、(1)同一改札内の駅、(2)改札が異なっていても乗換可能な駅、については路線が異なっていても「同じ駅グループコード」が与えられている。これを使って、駅が選択されたら、同一駅を検索し上パネルの右に表示する。
    xttrw01_b07
    上記の例では、「函館本線の函館駅」に対し、「江差線」「函館市電2系統」「函館市電5系統」の函館駅を表示している。
  • 事業者・路線・駅検索(文字列)
    コンボボックスの右の検索ボックスで、任意の文字列(部分一致)で検索できる。
    ・「東」を含む事業者を検索中
    xttrw01_b08
    ・「東」を含む路線を検索中
    xttrw01_b09
    ・「大阪」を含む駅を検索中-乗換駅(同一駅)もあわせて表示
    xttrw01_b10
カテゴリー: Development, Location Service タグ: パーマリンク