時刻表データは「平日」「土曜」「休日」の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; } });
列車一覧と時刻表ページで曜日が変更になった場合は、対象データを変更して表示を更新する。(駅一覧は曜日によって内容が変わるわけではないので何もしない。)
- 実行例(平日時刻表)
- 実行例(土曜時刻表)・・・臨時の快速列車が運転されている