列車時刻表の試作(3) – 曜日の切り替え -

時刻表データは「平日」「土曜」「休日」の3種類からなり、現在は路線ごとに1つのJSONファイルに格納している。どの曜日のデータを表示するかはナビゲーションバーにより選択する。

時刻の部分のデータ形式は以下のイメージになっている。

// 時刻データ
/*
trains.Weekday[ ] // 平日時刻表(1列車ごとに1オブジェクトの配列)
trains.Saturday[ ]
trains.Holiday[ ]
*/

// 列車ごとのオブジェクト
/*
tr_direction	:列車方向(上り/下り)
tr_typeid	:列車種別(のインデックス)
tr_no	:列車番号
tr_name	:列車名
tr_seq	:列車名(号数)
tr_timesAr[ ]	:列車到着時刻
tr_timesDp[ ]	:列車出発時刻
tr_memo	:備考
*/

// 平日の最初の列車(列車インデックス=0)の最初の駅(駅インデックス=0)の発車時刻
trains.Weekday[0].tr_timesDp[0] 
// JavaScriptでは次のように書くこともできる
trains[ 'Weekday' ][0].tr_timesDp[0]

// これを利用して、変数を使って動的にアクセスすることができる
var gCurLineMode = 'Weekday';
var xxx = trains[ gCurLineMode ][0].tr_timesDp[0]; // 平日の時刻にアクセス
  • ページの表示時に現在選択中の曜日の時刻表を表示する
    // JavaScript
    //  gCurLineMode に現在の曜日(Weekday, Saturday, Holiday)が入っている
    $(document).on('pagebeforeshow', '#pgTTStation', function(e){
      showStation(gCurRail.trains[ gCurLineMode ]);
    });
    
  • 曜日ナビゲーションバーをクリックしたときに表示データを更新する
    // JavaScript
    $('div[data-role="navbar"] .clsLineMode').live('click', function(){
      var page = $(this).data('idpage'); // どのページかを調べる
      gCurLineMode = $(this).data('linemode'); // 現在選択中の曜日を取得する
      switch(page){
        case 'pgTTTrainList':
          showTrainList(gCurRail.trains[ gCurLineMode ]); break;
        case 'pgTTStation':
          showStation(gCurRail.trains[ gCurLineMode ]); break;
      }
    });
    

    列車一覧と時刻表ページで曜日が変更になった場合は、対象データを変更して表示を更新する。(駅一覧は曜日によって内容が変わるわけではないので何もしない。)

  • 実行例(平日時刻表)
    mttview03_b01
  • 実行例(土曜時刻表)・・・臨時の快速列車が運転されている
    mttview03_b02
カテゴリー: Development タグ: , パーマリンク