(58)【調査した分野】(Int.Cl.,DB名)
路線データと運用データ、ダイヤデータ、シミュレータデータとWebサーバで構成されたシステム、これに接続されたネットワーク回線とそのネットワーク回線に接続されたWebブラウザがインストールされたユーザー端末を備えたダイヤ作成統合装置、この統合装置のWebサーバとネットワーク回線で接続された運行管理システムを備えた運行管理統合装置は、各データからWebサーバがHTMLとWebブラウザ用プログラム言語とダイヤデータから呼び出したデータやSVGの表示に必要なデータを文字列や数列で組成してこれらをWebブラウザに送信し、それを受信したWebブラウザがWebブラウザ用プログラム言語の実行により文字列や数列データからSVGの構成のための各要素を生成し、その際に、図形を組成する要素にユーザーが図形上をマウス操作した時にWebブラウザ用プログラム言語の特定のメソッドが実行できるイベントとその図形が描画して示す時間や駅名を記述し、その要素によってWebブラウザ上に運行図表及び運用図表であるダイヤグラムを描画し、描画された図表は、ユーザーが任意の時間線上または、任意の駅の線上をクリックするとSVGの要素内に記述されたイベントと、クリックされた線が示す駅名ないしは時間とともにブラウザ用プログラム言語のメソッドに渡して実行され、Webサーバに時間と駅情報と列車の速度や種類を送信すると、Webサーバはダイヤデータから列車の速度や種類により標準運転時間を呼び出し、駅と駅の間の時間を算出し、それを基に文字列と数列データを作成してWebブラウザに返してスジ描画をして、列車のダイヤの作成を可能とすることを特徴とするダイヤ作成統合システム。
【発明を実施するための最良の形態】
【0018】
本件の発明は、ダイヤグラムとよばれる
図1の運行図表、
図3の運用図表、
図2の行路表、
図4の運用順序表、
図5の線路図のこれらの作成と編集、
図6の定時運転検証シミュレータのこれら図形を多用したものをSVGとJavaScriptを利用してWebブラウザで行うというものである。
ダイヤ作成に当たっては、
図7のWebサーバ1とダイヤデータ7、路線データ5、運用データ6とネットワーク回線を通じてユーザー端末3、ユーザー端末11、ユーザー端末12にWebブラウザ4を備えたシステムで、Webサーバ1はダイヤデータ7から
図8の時間線10の座標や路線データ5から駅名15やダイヤデータ7から駅線14の座標データを呼び出しHTMLとSVG、JavaScriptとデータ配列ないしはJSON(JavaScript Object Notation)データから成るコードを生成し、ネットワーク回線を通じてユーザー端末が受け取り、HTMLとSVGとデータはJavaScriptによりSVGのXML要素を生成してWebブラウザ4に
図9のダイヤグラムを表示する。
【0019】
このSVGは、XML形式で記述されている。この記述内にJavaScriptのイベントを埋め込むことによる。例えば、
図20では、61度の傾きをもった青色の11pxサイズの「543M」という文字が表示される
「onmouseover」は、マウスが文字の上にのった時に発生するJavaScriptイベントで、例えば、マウスが乗ったら色を変える場合、文字の色を変える構文は
図21の通りの1行である。
【0020】
マウスイベントには、そのほかマウスが外れたら実行される「onmouseout」や、クリックされたら実行する「onclick」等がある。
図9で6時20分の任意の線上をクリックすると、あらかじめラインを描画するXML内に6時20分というデータを埋め込んでいるため6時20分に設定された
図10のポップアップ20
を表示するメソッドが実行され、駅情報1(21)と駅情報2(22)の線上をクリックするか直接入力をして、下りか上りか、列車速度種類23の諸設定をしてボタンを押すと、
図11の
Webブラウザ用プログラム言語でWebサーバから
Webブラウザ用プログラム言語を呼び出す形でWebサーバ1に時間、駅情報1(21)、駅情報2(22)、上りか下りか、列車速度種類(23)を送り、それを受けてWebサーバ1ではダイヤデータ7から列車速度種類から駅間の列車運転時間が呼び出し、駅情報1と駅情報2の間の運転時間を算出し、Webサーバ1で
図16のように個々のIDを割り振った配列ないしはJSONデータを生成してWebブラウザ4に送信しWebブラウザ4内にメモリに保存される。
【0021】
ダイヤグラムの横軸の駅線14と縦軸の時間線10には、それぞれ配列により座標がWebブラウザ4のメモリ内に保持されており、
図16で受け取った配列またはJSONデータにある駅とその到着・発車時刻とを横軸と縦軸の配列から検索しスジ13をつくるための座標を形成し配列内に格納する。そして、配列内に格納された座標から
図12のJavaScript構文で
図13のようにSVGのXMLが生成されスジ13が描画される。
【0022】
この描画されたスジのSVGのXMLの
図13には、マウスイベントが組み込まれており、前述と同様にマウスがのったり、クリックしたりすることによってそれぞれに設定されたJavaScriptが実行されるようになっている。
【0023】
前記の列車時刻形成の際にWebサーバ1では、事前の付与に法則性がある列車番号(列車の運行に使用される「315M」といった列車固有の番号)を付与する設定を行いデータに保存していた場合には、前記の配列ないしはJSONデータ内に列車番号を入れる。
【0024】
法則性とは、例えばD駅始発と終着の普通列車の場合は頭2桁を「10」から始め、E駅始発と終着の普通列車の場合「30」から始め、3桁目を下りの場合「1」からの奇数で始め上りは「2」からの偶数で始め先に発車する順番に付けていく場合、D駅発の上りの1本目の列車は「102」、E駅発の上りの1本目は「302」、D駅発の上りの2本目の列車は「104」、E駅発の上りの2本目の列車は「304」と付与され、D駅終着の下りの1本目の列車は「101」、E駅終着の下りの1本目の列車は「301」、D駅終着の2本目の下り列車は「103」、E駅終着の2本目の下り列車は「303」とする。そして、4桁目に電車の場合は「M」、気動車の場合は「D」のアルファベットを付け、快速列車の場合は5桁から成り頭に「3」を付け「3102M」という形のものである。
【0025】
システム内では、前記のスジ作成のための基本設定の際に駅情報1と駅情報2を入力しているので、まず、始発駅と終着駅についてはこれによって判断する。次に列車の数については、ダイヤデータやWebブラウザのメモリに保存され設定されたその列車以前の設定された始発駅と終着駅と列車の種類、上りか下りかで列車一覧を呼び出して本数をカウントし、次の式でカウント数×2+2が3桁目の数が決まる。下りで普通列車も同様に次の式でカウント数×2−1+2が3桁目の数となる。もし、計算の結果、2桁になった場合、列車番号の2桁目を繰り上げる。アルファベットは列車速度種類にその旨の記載されている場合は、そこから判断して付与する。判断できない場合は、Webブラウザ4にメッセージを送る。
もしくは、すべてのダイヤの作成が完了した後にユーザーの指示により全てのスジに対しシステムが終着駅と始発駅から始発の列車から法則性と照らし合わせて1つずつ列車番号を付与する。
【0026】
そして、得られた列車番号をダイヤデータとWebブラウザ4内のメモリに検索をかけて、同じ番号がなければその番号を配列内に組込み、既に使われている場合は、Webブラウザ4にその旨のメッセージを送る。
【0027】
Webブラウザ4による
図8のダイヤグラムの表示は、SVGにより駅を表示する駅表示部15、時間を表示する時間表示部16、スジ13や駅線14、時間線10の表示から成るダイヤ表示部、操作メニューがある操作部17がある。これを詳しくすると
図14のように時間表示部(id=time)、ダイヤ表示部(id=dia)、駅表示部(id=station)をそれぞれHTMLのdiv属性で<div></div>で囲まれた中に、ユーザーが設定した表示時間、例えば0時から24時、5時から翌2時までという任意の設定により、その時間帯を表示するSVG、駅名を表示するSVG、スジを表示するそれぞれx軸にはユーザーが任意の指定をした時間帯全てと、y軸には駅名のすべてを1枚のSVG上に表示する3つが同じ大きさのSVGが作成され、時間のSVGは時間表示部のdivタグ内に配置し、駅名のSVGは駅名表示部のdivタグ内に配置し、スジを表示するSVGはダイヤ表示部のdivのタグ内に配置する。
このdivにはスタイルシート(Cascading Style Sheet)のz−indexにより重なりレイヤー構造をもって表示するようになっている。
【0028】
表示の拡大・縮小は、マウスのスクロールボタンの回転があった際にSVGのviewBox属性(表示範囲の指定ができる機能)により行う。例えば
図15のようにSVGの原点座標x0、y0、右下座標x1000、y600の場合、表示範囲の表示範囲を指定する値の左上原点をx150、y50と幅と高さを指定することによって、右下座標がx350、y500にするとWebブラウザには、x150、y50、x350、y500の中の図形のみ表示される。縮小・拡大は、駅名表示部、時間表示部、ダイヤ表示部はSVGの表示範囲の幅と高さの値を
Webブラウザ用プログラム言語によりコントロールをする。
【0029】
また、ダイヤ表示の左右、上下の移動については、キーボードのコントロールキーとマウスの右クリック同時に押して動かした方向へ移動する。移動する方法は、ダイヤ表示部のSVGの表示範囲の左上原点のx座標y座標をマウスの移動に合わせて移動させる。
このときダイヤ表示部は、x軸、y軸ともに自由に動くが、時間表示部についてはx軸のみ
Webブラウザ用プログラム言語により表示範囲を動かし、駅名表示部はy軸のみをダイヤ表示部の移動と同じ量だけ
Webブラウザ用プログラム言語で表示範囲を移動させる。これにより、ウィンドウが分割表示される効果を得ることができる。
【0030】
または
図8の操作部5の矢印ボタン9を押すことにより、前記同様にSVGの表示範囲の座標を移動させることにより行い、スクロールバーによる移動は行わない。そして、ダイヤ表示部が左右に移動した際は、時間表示部のSVGの表示範囲をダイヤ表示部が移動したのと同様の座標値でx座標のみ
Webブラウザ用プログラム言語の値のコントロールを変化させることで移動する。また、ダイヤ表示部が上下に移動したときは、駅名表示部のSVGの表示範囲のy座標を
Webブラウザ用プログラム言語により表示範囲の移動
をさせてダイヤ表示部が移動しても駅名表示部、時間表示部が連動し分割表示が可能とするようになっている。
【0031】
特許文献1では分割して表示するが、それはブラウザ上に表示するすべてのSVGの画面を分割し、分割をすればするほどプログラム構文が増え処理が煩雑になる。それに対し本件発明では、ダイヤ表示部、駅名表示部、時間表示部のSVGはそれぞれ一枚で描かれており1枚のSVGを描く構文のみでよいのでプログラムがシンプルで処理も効率的に行われる。また、本件ではスクロールバーもないからそれに対する関数定義もないことからこれら特許文献1と本件とは全く異なるものである。
【0032】
さらにスジの表示や時間線の表示は、すべてSVGのXML要素内のid属性とclass属性によって行われており、このidやclassの属性値を配列と紐づけさせることによって行われておりダイヤ表示部や駅表示部をSVG内でエリアの集合体としては扱っていないので、これも特許文献1とは異なるものである。
【0033】
また特許文献1は、背景画面、スジ画面の上りのスジ、下りのスジをそれぞれSVGのグループでコントロールしようとしているが、グループによるコントロールでは、下りのスジを消したい時にはその下りのスジのグループ全体を消去できるが、他方で、下りのスジを消去しつつ上りのスジのある運用の列車のみ上りのスジも下りのスジも表示したい時には下りのスジが表示できない。
これをXMLの要素にidとclass属性でコントロールすることによって、ブラウザ内のメモリにある配列ないしはJSONデータの情報から下りの列車のclassの属性値を拾い出し、当該classのXMLを消去することで描画を消去する。スジのある運用の列車の上り下りの両方のスジを表示したい時には、メモリ内の配列またはJSONからその情報を引き出して描画する本件発明の方が、自由度が高く柔軟性のあるシステムの構築が可能である。
【0034】
そして、これら作成したデータを保存する時は、配列(
図16)またはJSONをWebブラウザ4にてWebサーバ1との通信に適した文字列に変換し、AJAX技術(Asynchronous JavaScript + XML)を用いて、Webブラウザ4からネットワーク回線を通じてWebサーバ1に送られ、Webサーバ1にて既にある他の時刻のデータと重なったり跨ったりしている不整合が起きる場合はエラーメッセージをブラウザに返信し、問題なければ「OK」を返信しWebサーバを通じてダイヤデータに登録される。
【0035】
完成されたものを一旦閉じて、再度編集する時は、Webサーバ1がダイヤデータからデータを呼び出し、HTMLとJavaScriptとダイヤデータの配列またJSONのデータを生成して送信し、Webブラウザ4はJavaScriptの命令により受け取ったデータをSVGのXML要素を生成しダイヤグラムや行路表など図形データを描画する。
【0036】
図6のようにXML要素には「id」と「class」に「tr4」と埋め込まれている。これは、ダイヤデータの管理上のIDとして、また、JavaScriptで要素の変更(色の変更や図形の削除)の際に使用するとともにスジ編集時には、スジ上をクリックするとこのIDの「tr4」から配列やJSONを呼び出し、
図17のようにタイムテーブルのポップアップ30が表示される。
【0037】
この中の「tr4」は始発駅から終着駅までの1つの列車ごとに割り振られた固有のデータ上使用するIDであり、さらに運用データでは、運用1ではtr1、tr4、tr6、tr7というIDで組み合わされデータに登録され
図2の運用から成って組み立てられるときポップアップ30の列車時刻31を編集しtr4のダイヤが変更された場合、前後のtr1とtr6とのダイヤと互換性を失うことがある。
【0038】
例えば、
図2の行路に基づく列車や乗務員の運用でIDがtr1の列車は、名古屋駅に1時10分に到着し、折り返しでtr4の列車が名古屋駅を1時15分に発車し、高蔵寺駅に1時40分に到着する。tr6はtr4の折り返しで高蔵寺駅を1時45分に発車する車両運用であったとする。
【0039】
tr4の時刻を名古屋発の時間を1時8分、高蔵寺駅到着を1時50分に到着する時刻設定に編集した時、列車時刻としてはそれぞれ独立しているので成立するが、tr1、tr4、tr6の運用データの相互の互換性がなくなり成立しなくなる。また、同様にtr4の発駅ないしは終着駅が変更されたときも同様のことが起きる。
【0040】
この場合の処理として、ポップアップ30で時刻が変更されたら、tr4の前のtr1の到着時間とtr4の発車時間を比較して、tr4の発車時間が大きければ真を返し、小さければ偽を返しエラー表示する。また、tr4到着時刻と次のtr6の発車時刻を比べてtr4の到着時間がtr6の発車時刻よりも小さければ真を返し、大きければ偽を返しエラー表示する。
駅については、tr1の到着駅とtr4の始発駅が同じか検証し、tr6の始発駅とtr4の終着駅を検証し、同一でなければエラーを表示する。
【0041】
複数で編集を行う
図7のユーザー11とユーザー12が居る場合、Webサーバ1とWebブラウザ4とユーザー11とユーザー12の各WebブラウザにWebSocketを実装する。WebSocketはユーザーそれぞれにWebサーバ1から固有のIDとなるセッションIDが割り振られセッションIDにより各WebブラウザとWebサーバ1間の通信が保持される。
【0042】
一人のユーザー11が編集をWebサーバ1に編集情報を送信した時、整合性のない編集が行われたときには、Webサーバ1はセッションIDを利用してその編集したユーザー11のみエラーメッセージをWebブラウザに返信する。互換性などの問題がない場合は、データに登録するとともにWebSocketによってすべてのユーザー(Webブラウザ4、ユーザー11、ユーザー12)にその変更を知らせるメッセージをWebサーバ1から各ユーザーのブラウザに送り変更があったことを知らせる。
【0043】
変更のメッセージを受け取ったブラウザ4とユーザー12は、更新するか否かは個々の判断であるが、ユーザー12が更新することにした場合、ユーザー12のWebブラウザは
図11のJavaScriptによるWebサーバ1からJavaScriptの呼び出しをする。
【0044】
例えばユーザー11でtr4のスジの列車速度種類の変更を行ったときWebサーバ1では、その変更に問題がなければ、tr4のスジの削除と新たな駅間時間を形成し古い配列ないしはJSONの削除のコマンドと新たなスジを描画するコマンドをユーザー11に送るとともに、ブラウザ4が更新することを選択した時にはWebサーバ1は同様のコマンドを送り各ユーザーのWebブラウザ内で処理が行われる。
【0045】
ダイヤグラムを印刷する際にWebブラウザではA4用紙にしか対応しておらず、A2以上の用紙で変形ないしは横の長さが4メートル以上になるダイヤグラムの印刷には適さない。
そこで、ダイヤグラムを印刷する際は、Webサーバ1でApache FOPのAPIを利用してWebサーバ1上でデータからダイヤグラムのSVGファイルを生成してディレクトリに仮置きし、それをAPIにてPDFに変換しWebブラウザに送信し仮置きしたSVGファイルを削除する。それにより、A3、A2、A1の変形用紙やロール紙でも印刷できるように印刷用紙の選択の自由度を高めることができる。
【0046】
鉄道では、
図5のような線路図が作成されそこには転てつ器48の位置や信号機47の位置などが記載されている。これをSVGとJavaScriptにより作成することにより、運行システムの製作の省力化や製作したダイヤの検証をはかることができる。
【0043】
Webサーバ1は、HTMLとJavaScript、配列ないしはJSONデータを生成して、ユーザーの基本画面を構成してユーザーのWebブラウザ4に送信する。Webブラウザではこれらから基本画面を表示し、ユーザーは、基本画面上で路線図の縮尺を指定し、単線か上下線1本ずつの線路46の複線か、上下2本ずつの複々線かを選択した後、信号機47、カーブ49、ホーム45、転てつ器48など部品化したものをWebブラウザ4上で線路の起点からのキロ単位で距離44を入力し配置する。
【0047】
配置された部品および距離情報は配列によりWebブラウザ4内のメモリに配列として記憶され、保存が実行されると配列をサーバとの通信に適した文字列に変換し、AJAX技術を用いてWebサーバ1を通して路線データ13に記録する。その際にエラーがなければ「OK」をWebブラウザ4に返信する。エラーがあった場合は、エラー内容をWebブラウザ4に返信する。
【0048】
これを編集する時は、Webブラウザ4を通じてWebサーバ1が路線データ13に問合せをして、HTMLとJavaScriptと路線部品データを配列またはJSON化しWebブラウザ4に送信し、Webブラウザ4にてJavaScriptにより配列を解析してSVGのXMLを構成して表示をする。データが編集された際には、AJAX技術を用いてWebサーバ1を通じて路線データ13に保存する。
【0049】
図18のWebサーバ71と運行管理システム72、路線データと端末にWebブラウザを備えたシステムは、運行管理システム72が転てつ器や信号機の状況、列車番号とその位置をWebサーバ71に送信し、これを基にWebサーバ71配列ないしはJSONデータを生成し、このデータとHTMLとJavaScriptを端末71から端末74の各のWebブラウザに送り、WebブラウザはデータをJavaScriptにより解析し
図19のSVGのXMLを構成し線路図と列車の位置50、線路の状態51を表示する。
【0050】
これと同時に、Webサーバ71と端末1から端末4のWebブラウザ間はWebSocketの接続を確立し、列車の位置や信号機、転てつ器に変化があった時は、その情報を運行管理システム72がWebサーバ71に送り、Webサーバ71から更新されたことの信号をWebSocketを通じて各Webブラウザに送る。Webブラウザはそれに基づきWebサーバ71に対し新規配列データをJavaScriptでWebサーバからJavaScriptを呼び出す方法により要求し、Webサーバ71は、運行管理システムから受け取った情報から変更される前の要素を削除するコマンドと変更された配列またはJSONの生成とそれを描画するコマンドをJavaScriptとしてWebブラウザに送信する。それを受け取ったブラウザは配列から不要となったSVGのみを消去し、新たな要素をSVGで描画し表示をして更新を終了する。
【0051】
前記の路線データを用いて、Webサーバ1を介してWebブラウザ4にてシミュレータデータ8に路線データの信号や転てつ器の動きを入力する。例えば
図5の「11LB」の場内信号機が進行現示を示している時、「13R」の出発現示は必ず停止現示を示し、その他の現示を示さないといった回路を模擬的にデータに登録する。
【0052】
また、その路線で使用する列車の加速度や減速度といった性能をWebブラウザ4からWebサーバ1を介してシミュレータデータ8に登録する。
次に乗客乗降時間を時間帯と休日と平日ごとに数日分を計測し集計し、Webサーバを通じてシミュレータデータ8に登録する。サーバ内では工程能力の考えを応用して時間帯ごとの乗降時間を合計し平均値を算出する。次に標準偏差を算出しこれに3を乗じるいわゆる3シグマを算出する。
【0053】
平均値が通常の乗降時間でプラス3シグマがそれよりも多くかかった乗降時間、マイナス3シグマが平均よりも早く乗降が終わった時間となる。
シミュレータを開始すると、Webサーバ1は、HTMLフォーマットとSVGフォーマット、JavaScript、ダイヤデータと列車性能データ、各駅の時間帯ごとの乗降時間を配列ないしはJSONで生成し、Webブラウザに
図6を表示する。前記で作成したダイヤデータに基づき列車を運行させ、JavaScriptのタイマーにより、1秒ごとに加算していき、その時刻を61に表示する。各列車はダイヤデータに基づき時刻通りと現示される信号機に基づき運転され、各信号機や転てつ器は、前記で登録された模擬回路を基に自動制御される。
【0054】
列車は、1秒ごとに加速度を速度として加算していき、減速は、速度から減速度を1秒ごとに減算しそれに基づく走行距離を算出しSVGで表示された
図6上に列車のその時間における列車の位置62を模擬的に表示する。
シミュレータ上で列車に遅延が発生した時は、遅延メッセージとして63を表示し、定刻運転の確保ができていないことを知らせる。
【0055】
また、各列車の停車時間は、前記の平均値にプラス3シグマもしくはマイナス3シグマした時間の間でランダムに停車時間を形成
しているが、到着時間とランダムに形成された停車時間の合計がダイヤ設定の発車時間より前になった時はダイヤ設定の発車時間、オーバーした時はそのオーバーした時間とすることによってシミュレータ上で列車に遅延が発生する。そして、列車の定刻通りの運転が確保できるか否かの検証が可能となるものである。
【課題】 列車やバスのダイヤ作成や線路図の作成においては、可視性を高めるため列車運行図表(ダイヤグラム)や、行路表の作成といった何等かの図形を用いたものが作成され使用されている。これらをコンピューター上で製作するシステムを開発するにはデータベースとの連携や、図形を自在にコントロールする難易度の高いプログラムと多量のプログラム構文が必要であった。
【解決手段】 SVGとJavaScriptとよばれるスクリプト言語を用いて非常に少ないプログラム構文でWebブラウザ上において作成・編集を可能にするものである。また、Webブラウザを使用していることからWebブラウザが使用できるOSであれば、その種類を問わず使用可能である。