先日、ユーザーの方から「駅間所要時分が12時間を超える時刻表を入力すると、ダイヤグラム画面が正しく表示されなくなります。」というご指摘をメールで頂きました。たしかに、現在のOuDiaでは、駅間所要時間が12時間1分~23時間59分になるような入力を行うと、時刻を戻るような列車線が描画されます。
僕自身は、駅間所要時間が12時間以上などというケースに遭遇したことがないのですが、このユーザーの方は、国際線航空機のダイヤを入力なさっているそうです。確かに、アメリカ中部→日本では、所要時間は12時間を越えますね。
実は、この現象についてご指摘を受けたのは初めてではなく、2009年7月頃にも当ブログのコメントとして、ご指摘を受けたことがありました。このときの方は、ゲーム『A列車で行こう』の運行ダイヤを作成しているとのことでした(http://oudiary.cocolog-nifty.com/blog/2009/07/oudia-e7af.html)。しかし、僕自身が『A列車で行こう』をやったことがないため、ユーザーの方の要望内容が把握できませんでした。
この現象の原因は、OuDiaでは、「2つの時刻の差を求める場合は、絶対値が小さい側の値を採用する 」という考え方をとっているためです。
例えば、 23:00 は 1:00 の「22時間後」だとも言えますし、「2時間前」だとも言えます。この場合、OuDiaは絶対値の小さい「2時間前」を採用します。この結果に従って列車線を描画するため、時刻を戻るような列車線が表示されるのです。
日付の概念のないOuDiaでは、この「時刻の差を正確に判定することができない」という問題は避けられません。
OuDia設計当時の僕は、12時間以上の駅間所要時分の存在の可能性を考えもしませんでした。このため、上記の、「2つの時刻の差を求める場合は、絶対値が小さい側の値を採用する 」という考え方で問題を感じたことはありませんでした。その結果、 「12時間以上の駅間所要時分」は、今のOuDiaでは完全に設計想定外になっています。
僕としては今のところ、この問題に対して修正を実施する予定はありません。理由は、僕自身は「駅間所要時間が12時間以上」という使い方をしていないため、どのような仕様にすればいいのかが判断できないためです。
単純に考えれば、「2つの時刻の差を求める場合は、後の駅の時刻は必ず、前の駅の時刻より後と考える」という仕様が考えられますが、それは本当に便利でしょうか?
一例として、
(1) 時刻表の上から下にA駅・B駅・C駅の順で駅が並んでおり、A駅発を10:30・B駅発を10:35・C駅発を10:40の列車があるとします。
(2) 上記列車入力時、誤ってC駅発を10:30と入力してしまったとします。
(3) ここでダイヤグラムビューを表示させた場合は、B駅~C駅の列車線は、所要時間23時間55分相当で表示されることになります。これの見た目の印象は、
- 列車線がほとんど水平に見える
- B駅とC駅の縦の幅が極端に大きいダイヤグラムになる。場合によっては、ダイヤグラムの描画に非常に時間がかかる。ダイヤグラムの描画中はOuDiaは操作不能なため、実質的にはOuDiaのフリーズとなる。
のどちらかです。こんな表示で本当にいいのでしょうか?
最近のコメント