(58)【調査した分野】(Int.Cl.,DB名)
【発明を実施するための形態】
【0023】
本発明の一実施形態について、図面を参照して説明する。
【0024】
図1は、本発明の一実施形態に係る時刻表生成システム5の概略構成の一例を示す図である。本実施形態では、交通機関として路線バスを例に挙げて説明する。
【0025】
時刻表生成システム5は、時刻表生成装置1と、ユーザー端末2とを有する。時刻表生成装置1とユーザー端末2とは、ネットワーク3を介して情報を互いに送受信することができる。
【0026】
時刻表生成装置1は、ユーザー端末2にユーザーインターフェイス画面(以下、「UI画面」ともいう。)を送り、ユーザー端末2に表示させる。また、時刻表生成装置1は、ユーザー端末2から当該UI画面に入力された入力情報を受信し、当該入力情報に応じた処理を実行する。詳細は後述するが、時刻表生成装置1は、ユーザー端末2から、時刻表を生成すべき地点(以下、「出力位置」ともいう。)の指定を受け付け、受け付けた出力位置をバスが通過する時刻を示す時刻表を生成し、ユーザー端末2に送る。
【0027】
ユーザー端末2は、時刻表生成装置1から受信したUI画面などを、ディスプレイに表示する。また、ユーザー端末2は、UI画面に対するユーザーの入力をマウスなどの入力装置を介して受け付け、入力された入力情報を時刻表生成装置1に送信する。
【0028】
上記の
図1の時刻表生成システム5の構成は、本願発明の特徴を説明するにあたって主要構成を説明したのであって、上記の構成に限られない。また、一般的な時刻表生成システムが備える構成を排除するものではない。
【0029】
時刻表生成装置1、及びユーザー端末2について詳細に説明する。
【0030】
時刻表生成装置1は、出力位置取得部10と、通過時刻特定部11と、時刻表生成部12と、時刻表出力部13と、通過位置情報記憶部14と、バス情報記憶部15と、通過時刻情報記憶部16と、時刻表情報記憶部17とを有する。
【0031】
出力位置取得部10は、時刻表を生成すべき出力位置の指定を受け付けるUI画面を、通信I/F54(
図6参照)及びネットワーク3を介してユーザー端末2に送信する。また、出力位置取得部10は、ユーザー端末2に送信したUI画面で指定された出力位置の情報を通信I/F54及びネットワーク3を介してユーザー端末2から取得する。なお、出力位置取得部10は、時刻表を生成すべき出力位置の指定を受け付けるUI画面を自身の出力装置56(
図6参照)に表示させ、当該UI画面で指定される出力位置の情報を入力装置55(
図6参照)を介して取得するようにしてもよい。
【0032】
通過時刻特定部11は、出力位置取得部10で取得された出力位置を通過するバスの通過時刻を、通過位置情報記憶部14に格納されている通過位置情報140(
図2参照)と、バス情報記憶部15に格納されているバス情報150(
図3参照)とに基づいて特定する。また、特定した通過時刻を、通過時刻情報160(
図4参照)として通過時刻情報記憶部16に格納する。
【0033】
時刻表生成部12は、通過時刻情報160に基づいて、取得された出力位置における時刻表情報を生成し、時刻表情報170(
図5参照)として時刻表情報記憶部17に格納する。
【0034】
時刻表出力部13は、時刻表情報170に基づいて、所定の出力形式の時刻表を含むUI画面を生成し、通信I/F54及びネットワーク3を介してユーザー端末2に送信する。
【0035】
通過位置情報記憶部14には、バス路線の通過位置などを特定する通過位置情報140が格納される。本実施形態では、通過位置情報140には、各バス路線の情報が予め設定されるものとする。
図2は、通過位置情報140の構成の一例を示す図である。
【0036】
通過位置情報140には、路線ごとに、当該路線の識別情報である路線ID140aと、当該路線の始発停留所の識別情報である始発停留所ID140bと、当該路線の行先停留所の識別情報である行先停留所ID140cと、当該路線が通過する通過位置(停留所で停車する停車位置も含む)の数を示す通過位置数140dと、通過位置の詳細情報とが関連付けられた路線レコードが含まれる。通過位置の詳細情報には、通過する順に、通過位置ごとに、当該通過位置の緯度140eと、当該通過位置の経度140fと、当該通過位置が停留所であるか否かを示す停留所フラグ140g(ここでは、「0:停留所でない」、「1:停留所である」、とする。)と、当該通過位置が停留所である場合の当該停留所の識別情報である停留所ID140hと、当該通過位置と当該通過位置の直前の通過位置との間の距離を示す通過位置間距離140iとが関連付けられた通過位置レコードが含まれる。
【0037】
図1に戻って説明する。バス情報記憶部15には、バスの通過位置(停車位置も含む)、通過時刻(停車時刻も含む)などを特定するバス情報150が格納される。本実施形態では、バス情報150には、各バスの情報が予め設定されるものとする。
図3は、バス情報150の構成の一例を示す図である。
【0038】
バス情報150には、バスごとに、当該バスの識別情報であるバスID150aと、一営業日内で当該バスを識別する識別情報であるバス番号150bと、当該バスが路線ID150dが示す路線の上りであるか下りであるかを示す上下フラグ150c(ここでは、「0:下り」、「1:上り」とする。)と、当該バスが走る路線の路線ID150dと、当該バスの回復運転(遅れを取り戻すための運転)の最高速度を示す速度150eと、当該バスの始発停留所の識別情報である始発停留所ID150fと、当該バスの行先停留所の識別情報である行先停留所ID150gと、当該バスが通過(停車も含む)する停留所の数を示す停留所数150hと、停留所の詳細情報とが関連付けられたバスレコードが含まれる。停留所の詳細情報には、通過する順に、停留所ごとに、当該停留所の識別情報である停留所ID150iと、当該停留所に当該バスが到着する時刻を示す着時刻150jと、当該停留所からバスが出発する時刻を示す発時刻150kと、当該停留所をバスが通過するか停車するかを示す停車フラグ150l(ここでは、「0:通過」、「1:停車」とする。)とが関連付けられた停留所レコードが含まれる。なお、速度150eは、回復運転の最高速度に限られず、回復運転の平均速度などの他の速度であってもよい。
【0039】
図1に戻って説明する。通過時刻情報記憶部16には、指定された出力位置を通過するバスの通過時刻などを特定する通過時刻情報160が格納される。
図4は、通過時刻情報160の構成の一例を示す図である。
【0040】
通過時刻情報160には、出力位置ごとに、当該出力位置の座標情報など当該出力位置を特定する情報を含む出力位置160aと、当該出力位置を通過する路線の識別情報である路線ID160bと、当該路線を走るバスが当該出力位置を通過する通過時刻の詳細情報とが関連付けられた出力位置レコードが含まれる。通過時刻の詳細情報には、バスごとに、当該バスが当該出力位置を最も早く通過する時刻を示す最早通過時刻160cと、当該バスが当該出力位置を定刻で通過する時刻を示す定刻通過時刻160dと、当該バスが当該出力位置を最も遅く通過する時刻を示す最遅通過時刻160eとが関連付けられた通過時刻レコードが含まれる。
【0041】
図1に戻って説明する。時刻表情報記憶部17には、出力位置を通過するバスの時刻表を定義する時刻表情報170が格納される。
図5は、時刻表情報170の構成の一例を示す図である。
【0042】
時刻表情報170には、出力位置ごとに、当該出力位置を特定する情報を含む出力位置170aと、時刻表の詳細情報とが関連付けられた出力位置レコードが含まれる。時刻表の詳細情報には、定刻通過時刻の早い順に、通過時刻(時)170bと、最早通過時刻(分)170cと、定刻通過時刻(分)170dと、最遅通過時刻(分)170eとが関連付けられた通過時刻レコードが含まれる。
【0043】
図1に戻って説明する。ユーザー端末2は、入力部20と、出力部21と、通信部22とを有する。
【0044】
入力部20は、情報の入力を受け付ける。例えば、入力部20は、出力部21により出力されたUI画面に対する情報の入力を受け付け、入力情報を通信部22及びネットワーク3を介して時刻表生成装置1に送信する。
【0045】
出力部21は、情報を出力する。例えば、出力部21は、通信部22を介して時刻表生成装置1から受信したUI画面を表示する。
【0046】
通信部22は、ネットワーク3を介した情報の送受信を行う。
【0047】
上記の時刻表生成装置1は、例えば、
図6(コンピューター50の概略構成の一例を示す図)に示すような、CPU(Central Processing Unit)51と、メモリー52と、HDD等の外部記憶装置53と、無線や有線により通信ネットワークに接続するための通信インターフェイス(I/F)54と、マウスやキーボードなどの入力装置55と、液晶ディスプレイなどの出力装置56と、DVD(Digital Versatile Disk)などの記録媒体に対する情報の読書きを行うメディアI/F57と、を備えるコンピューター50で実現することができる。
【0048】
例えば、出力位置取得部10、通過時刻特定部11、時刻表生成部12、及び時刻表出力部13は、外部記憶装置53に記憶されている所定のプログラムをメモリー52にロードしてCPU51で実行することで実現可能である。ネットワーク3との通信は、CPU51が通信I/F54を利用することにより実現可能である。通過位置情報記憶部14、バス情報記憶部15、通過時刻情報記憶部16、及び時刻表情報記憶部17は、CPU51がメモリー52又は外部記憶装置53を利用することにより実現可能である。
【0049】
上記の所定のプログラムは、通信I/F54を介してネットワークから、外部記憶装置53にダウンロードされ、それから、メモリー52上にロードされてCPU51により実行されるようにしてもよい。また、通信I/F54を介してネットワークから、メモリー52上に直接ロードされ、CPU51により実行されるようにしてもよい。また、コンピューター50が、メディアI/F57にセットされた記憶媒体から、上記の所定のプログラムを、外部記憶装置53あるいはメモリー52にロードするようにしてもよい。
【0050】
ユーザー端末2も、例えば、
図6に示すようなコンピューター50で実現することができる。ユーザー端末2は、一般的なPC(Personal Computer)などの装置に限られず、モバイルPC、スマートフォン、タブレットPC、携帯電話などの携帯可能な装置であってもよい。なお、入力部20は、例えば、CPU51が入力装置55を利用することで実現可能である。出力部21は、例えば、CPU51が出力装置56を利用することで実現可能である。通信部22は、例えば、CPU51が通信I/F54を利用することで実現可能である。
【0051】
上記の
図1の時刻表生成装置1及びユーザー端末2の機能構成は、理解容易にするために、主な処理内容に応じて分類したものである。構成要素の分類の仕方や名称によって、本願発明が制限されることはない。時刻表生成装置1及びユーザー端末2の構成は、処理内容に応じて、さらに多くの構成要素に分類することもできる。また、1つの構成要素がさらに多くの処理を実行するように分類することもできる。また、各構成要素の処理は、1つのハードウェアで実行されてもよいし、複数のハードウェアで実行されてもよい。また、各構成要素の処理は、1つのプログラムで実現されてもよいし、複数のプログラムで実現されてもよい。また、例えば、時刻表生成装置1にネットワークなどを介して接続される記憶装置上に各記憶部を構築してもよい。また、上記の
図2〜
図5の各情報のデータ構成は、一例であり、図示したデータ構成に限られない
【0052】
次に、上記の時刻表生成装置1で実行される処理について説明する。
【0053】
図7は、時刻表生成処理の一例を示すフロー図である。本フローは、例えば、時刻表生成装置1が、ユーザー端末2から時刻表生成処理の開始の指示を受け付けた場合に開始される。
【0054】
まず、時刻表生成装置1は、ユーザー端末2から時刻表を生成すべき出力位置を取得する(ステップS1)。ステップS1の詳細は、
図8〜
図11を参照して後述する。なお、ステップS1は、ダイアグラムを用いる処理(
図8〜
図9)、又は、地図を用いる処理(
図10〜
図11)により行われる。
【0055】
それから、時刻表生成装置1は、ステップS1で取得した出力位置におけるバスの通過時刻を特定する(ステップS2)。ステップS2の詳細は、
図12を参照して後述する。
【0056】
それから、時刻表生成装置1は、ステップS2で特定した、出力位置におけるバスの通過時刻に基づいて、当該出力位置の時刻表を生成する(ステップS3)。ステップS3の詳細は、
図13を参照して後述する。
【0057】
それから、時刻表生成装置1は、ステップS3で生成した時刻表を、ユーザー端末2に出力する(ステップS4)。そして、本フローを終了する。ステップS4の詳細は、
図14を参照して後述する。
【0058】
図8は、出力位置をダイアグラムから取得する処理の一例を示すフロー図である。
【0059】
本フローが開始されると、出力位置取得部10は、路線の指定を受け付ける(ステップSA11)。具体的には、出力位置取得部10は、例えば、通過位置情報140に含まれる路線ID140aの一覧をユーザー端末2に出力し、路線の指定をユーザー端末2から受け付ける。また、出力位置取得部10は、ステップSA11で指定された路線の路線IDを取得する(ステップSA12)。
【0060】
それから、出力位置取得部10は、出力位置の指定を受け付ける(ステップSA13)。具体的には、出力位置取得部10は、例えば、ステップSA11〜SA12で指定された路線のダイアグラムを含むUI画面を、ユーザー端末2に出力し、当該ダイアグラム上で出力位置の指定を受け付ける。
【0061】
路線のダイアグラムの生成は、既存の技術により実現できるため、詳細な説明は省略する。出力位置取得部10は、例えば、通過位置情報140から、指定された路線IDに対応する路線ID140aを含む路線レコードを特定する。また、バス情報150から、指定された路線IDに対応する路線ID150dを含むバスレコードを特定する。また、特定した路線レコードに含まれる停留所フラグ140g、停留所ID140h、通過位置間距離140i等と、特定したバスレコードに含まれる停留所ID150i、着時刻150j、発時刻150k等に基づいて、ダイアグラムを生成する。
【0062】
出力位置取得部10は、例えば、
図9(ダイアグラム上で出力位置を指定するUI画面100Aの一例を示す図)に示すようなUI画面100Aをユーザー端末2に出力する。
【0063】
UI画面100Aには、距離及び停留所の位置を縦軸(Y軸)、時間を横軸(X軸)としたダイアグラムが表示される。縦軸に沿って、停留所ID101が配列される。また、ダイアグラムには、各停留所の位置を示す線102と、バスの位置を示すスジ(筋)103とが表示される。なお、本図では、スジ103は、一つ表示されているが、異なるバス(上り下りも区別する)ごとに複数表示されてもよい。ここで、ダイアグラム上には、ユーザーが動かすマウスポインタなどの指す位置に応じて、当該位置のY座標位置を示す線104が表示される。
【0064】
出力位置取得部10は、UI画面100Aでのマウスのクリックなどの操作を、ユーザー端末2から受け付けることにより、出力位置の指定を受け付ける。
【0065】
なお、ダイアグラム上で出力位置の指定を受け付けることができれば、UI画面100Aの構成は、
図9の例に限られない。
【0066】
それから、出力位置取得部10は、UI画面100Aで、マウスのクリックがされた位置のY座標(すなわち、線104のY座標)を取得することで、出力位置のY座標を取得する(ステップSA14)。
【0067】
それから、出力位置取得部10は、指定された出力位置の直前の停留所(以下、「発停留所」ともいう。)のY座標(すなわち、発停留所に対応する線102のY座標)と、指定された出力位置の直後の停留所(以下、「着停留所」ともいう。)のY座標(すなわち、着停留所に対応する線102のY座標)とを取得する(ステップSA15)。
【0068】
ここで、路線の上りと下りでは発停留所と着停留所は逆になるため、出力位置取得部10は、上りの場合の発停留所及び着停留所のY座標と、下りの場合の発停留所及び着停留所のY座標とを取得する。例えば、
図9の例では、上りの場合、発停留所は停留所ID=13の停留所であり、着停留所は停留所ID=14の停留所である。下りの場合、発停留所は停留所ID=14の停留所であり、着停留所は停留所ID=13の停留所である。
【0069】
それから、出力位置取得部10は、発停留所と着停留所の間の距離を取得する(ステップSA16)。具体的には、出力位置取得部10は、通過位置情報140から、指定された路線IDに対応する路線ID140aを含む路線レコードを特定する。また、当該特定した路線レコードに含まれる各通過位置レコードの停留所ID140h、及び通過位置間距離140iに基づいて、発停留所と着停留所の間の距離を計算する。
【0070】
例えば、出力位置取得部10は、発停留所の停留所IDを含む通過位置レコードと、着停留所の停留所IDを含む通過位置レコードとの間に、他の通過位置レコードがない場合、着停留所の通過位置レコードの通過位置間距離140iを、発停留所と着停留所の間の距離として計算する。一方、発停留所の停留所IDを含む通過位置レコードと、着停留所の停留所IDを含む通過位置レコードとの間に、他の通過位置レコードがある場合、他の通過位置レコードの通過位置間距離140iと、着停留所の通過位置レコードの通過位置間距離140iとを合計した値を、発停留所と着停留所の間の距離として計算する。
【0071】
ここで、出力位置取得部10は、路線の上りと下りの両方の場合について、発停留所と着停留所の間の距離を取得する。なお、本実施形態では、上りと下りのいずれでも発停留所と着停留所の間の距離は等しい。
【0072】
それから、出力位置取得部10は、発停留所と出力位置の間の距離を計算する(ステップSA17)。具体的には、出力位置取得部10は、例えば、下記の数式(1)により、発停留所と出力位置の間の直線距離を計算する。もちろん、距離の計算方法は、数式(1)に限定されない。
【0074】
なお、発停留所と着停留所の間の距離は、ステップSA16で特定されている。出力位置のY座標は、ステップSA14で特定されている。発停留所のY座標及び着停留所のY座標は、ステップSA15で特定されている。
【0075】
ここで、出力位置取得部10は、路線の上りと下りの両方の場合について、発停留所と出力位置の間の距離を計算する。
【0076】
それから、出力位置取得部10は、本フローを終了する。
【0077】
図10は、出力位置を地図から取得する処理の一例を示すフロー図である。
【0078】
本フローが開始されると、出力位置取得部10は、路線上で出力位置の指定を受け付ける(ステップSB11)。具体的には、出力位置取得部10は、例えば、地図と路線を含むUI画面を、ユーザー端末2に出力し、当該地図上で路線と出力位置の指定を受け付ける。
【0079】
地図と路線を含む画面の表示は、既存の技術により実現できるため、詳細な説明は省略する。出力位置取得部10は、例えば、ユーザー端末2から指定された地点を含む所定範囲の地図情報を、ネットワーク3に接続された地図情報提供サーバー(不図示)から取得する。また、通過位置情報140の路線レコードに含まれる各通過位置レコードの通過位置緯度140e、通過位置経度140fなどに基づいて、取得した地図情報の範囲に含まれる路線を特定する。また、特定した路線について、各通過位置を頂点として線で連結した路線情報を生成し、取得した地図情報に重ねることで表示画面を生成する。
【0080】
出力位置取得部10は、例えば、
図11(地図上で出力位置を指定するUI画面100Bの一例を示す図)に示すようなUI画面100Bをユーザー端末2に出力する。
【0081】
UI画面100Bには、地
図105と、路線106とが表示される。なお、本図では、路線106は、一つ表示されているが、複数表示されてもよい。また、通過位置や停留所を示す図形などが表示されてもよい。
【0082】
出力位置取得部10は、UI画面100Bで、路線106上でマウスのクリックなどの操作を受け付けることにより、路線及び出力位置の指定を受け付ける。
【0083】
なお、地図上で路線及び出力位置の指定を受け付けることができれば、UI画面100Bの構成は、
図11の例に限られない。
【0084】
それから、出力位置取得部10は、UI画面100Bで、マウスのクリックがされた位置の緯度及び経度を取得することで、出力位置の緯度及び経度を取得するとともに、マウスのクリックがされた路線の路線IDを取得する(ステップSB12)。
【0085】
それから、出力位置取得部10は、指定された出力位置の直前の通過位置(以下、「発通過位置」ともいう。発通過位置が停留所である場合もある。)の緯度及び経度を取得する(ステップSB13)。具体的には、出力位置取得部10は、例えば、マウスのクリック位置(出力位置)が含まれる線の両端の頂点(通過位置)を特定する。また、指定された路線IDに対応する路線ID140aを含む路線レコードに含まれる各通過位置レコードの通過位置緯度140e及び通過位置経度140fに基づいて、特定した二つの頂点(通過位置)のうち始発停留所に近い側の頂点を発通過位置として特定するとともに当該発通過位置の緯度及び経度を特定する。
【0086】
ここで、出力位置取得部10は、路線の上りと下りの両方の場合について、発通過位置を特定するとともに当該発通過位置の緯度及び経度を特定する。なお、下りの場合、行先停留所に近い側の頂点を発通過位置として特定する。
【0087】
それから、出力位置取得部10は、発通過位置と出力位置の間の距離を計算する(ステップSB14)。具体的には、出力位置取得部10は、例えば、下記の数式(2)、又は数式(3)により、発通過位置と出力位置の間の直線距離を計算する。もちろん、距離の計算方法は、数式(2)、数式(3)に限定されない。
【0089】
なお、出力位置の緯度及び経度は、ステップSB12で特定されている。発通過位置の緯度及び経度は、ステップSB13で特定されている。地球の半径は、予め設定しておけばよい。
【0091】
なお、出力位置の緯度及び経度は、ステップSB12で特定されている。発通過位置の緯度及び経度は、ステップSB13で特定されている。経度1度の距離定数は、例えば、経度1度ごとに予め設定しておく。また、緯度1度の距離定数は、例えば、予め一つ設定しておく。
【0092】
ここで、出力位置取得部10は、路線の上りと下りの両方の場合について、発通過位置と出力位置の間の距離を計算する。
【0093】
それから、出力位置取得部10は、発停留所及び着停留所を取得する(ステップSB15)。具体的には、出力位置取得部10は、特定された発通過位置と、指定された路線IDに対応する路線ID140aを含む路線レコードに含まれる各通過位置レコードの通過位置緯度140e、通過位置経度140f、及び停留所フラグ140gに基づいて、出力位置の発停留所及び着停留所を特定する。
【0094】
例えば、発通過位置の停留所フラグ140gが「0:停留所でない」である場合、当該発通過位置よりも始発停留所側の、当該発通過位置に最も近い、停留所フラグ140gが「1:停留所である」の通過位置を、発停留所として特定する。発通過位置の停留所フラグ140gが「1:停留所である」である場合、当該発通過位置を発停留所として特定する。また、発通過位置よりも行先停留所側の、当該発通過位置に最も近い、停留所フラグ140gが「1:停留所である」の通過位置を、着停留所として特定する。また、特定した発停留所及び着停留所の停留所ID140hを取得する。
【0095】
ここで、出力位置取得部10は、路線の上りと下りの両方の場合について、発停留所及び着停留所を取得する。
【0096】
それから、出力位置取得部10は、発停留所と着停留所の間の距離を取得する(ステップSB16)。具体的には、出力位置取得部10は、通過位置情報140から、指定された路線IDに対応する路線ID140aを含む路線レコードを特定する。また、当該特定した路線レコードに含まれる各通過位置レコードの停留所ID140h、及び通過位置間距離140iに基づいて、発停留所と着停留所の間の距離を計算する。処理内容は、ステップSA16と同様なので説明を省略する。
【0097】
ここで、出力位置取得部10は、路線の上りと下りの両方の場合について、発停留所と着停留所の間の距離を取得する。なお、本実施形態では、上りと下りのいずれでも発停留所と着停留所の間の距離は等しい。
【0098】
それから、出力位置取得部10は、発停留所と出力位置の間の距離を計算する(ステップSB17)。具体的には、出力位置取得部10は、指定された路線IDに対応する路線ID140aを含む路線レコードに含まれる各通過位置レコードの通過位置間距離140iに基づいて、発停留所と発通過位置の間の距離を計算する。また、出力位置取得部10は、計算した発停留所と発通過位置の間の距離に、ステップSB14で計算した発通過位置と出力位置の間の距離を加算することで、発停留所と出力位置の間の距離を計算する。そして、本フローを終了する。
【0099】
ここで、出力位置取得部10は、路線の上りと下りの両方の場合について、発停留所と出力位置の間の距離を計算する。
【0100】
図12は、出力位置におけるバスの通過時刻を特定する処理の一例を示すフロー図である。
【0101】
本フローが開始されると、通過時刻特定部11は、指定された路線を運行するバスのバス情報(スジ)を取得する(ステップS21)。具体的には、通過時刻特定部11は、ステップSA12(
図8参照)、又はステップSB12(
図10参照)で取得された路線IDを取得する。また、通過時刻特定部11は、取得した路線IDに対応する路線ID150dを含むバスレコードを、バス情報150から取得する。なお、取得したバスレコードの数を、取得スジ数として設定する。
【0102】
ここで、通過時刻特定部11は、
図8又は
図10のフローで指定された出力位置を特定する情報(座標情報など)、及び指定された路線IDを、出力位置160a及び路線ID160bとして含む出力位置レコードを、通過時刻情報160に追加する。なお、通過時刻の詳細情報の通過時刻レコード(最早通過時刻160c、定刻通過時刻160d、最遅通過時刻160e)は、選択されたスジごとに、下記のステップS25〜S27において設定される。
【0103】
それから、通過時刻特定部11は、指定された出力位置を通過する通過時刻の計算が終了したスジ数である処理済スジ数を0に設定する(ステップS22)。
【0104】
それから、通過時刻特定部11は、処理済スジ数が取得スジ数よりも小さいか否かを判定する(ステップS23)。
【0105】
処理済スジ数が取得スジ数よりも小さい場合(ステップS23:Y)、通過時刻特定部11は、ステップS21で取得した各バスレコードの中から、未処理のスジのバスレコードを一つ選択する(ステップS24)。
【0106】
それから、通過時刻特定部11は、指定された出力位置での最早通過時刻を計算する(ステップS25)。具体的には、通過時刻特定部11は、例えば、下記の数式(4)により、指定された出力位置での最早通過時刻を計算する。また、計算した最早通過時刻を、選択したスジの通過時刻レコードの最早通過時刻160cとして設定する。もちろん、最早通過時刻の計算方法は、数式(4)に限定されない。
【0108】
なお、発停留所の停留所IDは、ステップSA15(
図8参照)、又はステップSB15(
図10参照)で特定されている。発停留所の発時刻は、発停留所の停留所IDと、ステップS24で選択したスジのバスレコードに含まれる各停留所レコードの停留所ID150i、及び発時刻150kとに基づいて取得すればよい。発停留所と出力位置の間の距離は、ステップSA17(
図8参照)、又はステップSB17(
図10参照)で計算されている。回復運転最高速度は、ステップS24で選択したスジのバスレコードの速度150eを取得すればよい。
【0109】
ここで、通過時刻特定部11は、選択したスジのバスレコードの上下フラグ150cが「1:上り」の場合、上りの場合の発停留所の発時刻、及び発停留所と出力位置の間の距離を用いて、最早通過時刻を計算する。「0:下り」の場合、下りの場合の発停留所の発時刻、及び発停留所と出力位置の間の距離を用いて、最早通過時刻を計算する。
【0110】
それから、通過時刻特定部11は、指定された出力位置での定刻通過時刻を計算する(ステップS26)。具体的には、通過時刻特定部11は、例えば、下記の数式(5)により、指定された出力位置での定刻通過時刻を計算する。また、計算した定刻通過時刻を、選択したスジの通過時刻レコードの定刻通過時刻160dとして設定する。もちろん、定刻通過時刻の計算方法は、数式(5)に限定されない。
【0112】
なお、発停留所の停留所ID、発停留所の発時刻、及び発停留所と出力位置の間の距離は、上述のとおり取得できる。着停留所の停留所IDは、ステップSA15(
図8参照)、又はステップSB15(
図10参照)で特定されている。着停留所の着時刻は、着停留所の停留所IDと、ステップS24で選択したスジのバスレコードに含まれる各停留所レコードの停留所ID150i、及び着時刻150jとに基づいて取得すればよい。発停留所と着停留所の間の距離は、ステップSA16(
図8参照)、又はステップSB16(
図10参照)で計算されている。
【0113】
ここで、通過時刻特定部11は、選択したスジのバスレコードの上下フラグ150cが「1:上り」の場合、上りの場合の発停留所の発時刻、着停留所の着時刻、発停留所と出力位置の間の距離、及び発停留所と着停留所の間の距離を用いて、定刻通過時刻を計算する。「0:下り」の場合、下りの場合の発停留所の発時刻、着停留所の着時刻、発停留所と出力位置の間の距離、及び発停留所と着停留所の間の距離を用いて、定刻通過時刻を計算する。
【0114】
それから、通過時刻特定部11は、指定された出力位置での最遅通過時刻を計算する(ステップS27)。具体的には、通過時刻特定部11は、例えば、下記の数式(6)により、指定された出力位置での最遅通過時刻を計算する。また、計算した最遅通過時刻を、選択したスジの通過時刻レコードの最遅通過時刻160eとして設定する。もちろん、最遅通過時刻の計算方法は、数式(6)に限定されない。
【0116】
なお、着停留所の停留所ID、着停留所の着時刻、発停留所と着停留所の間の距離、発停留所と出力位置の間の距離、及び回復運転最高速度は、上述のとおり取得できる。
【0117】
ここで、通過時刻特定部11は、選択したスジのバスレコードの上下フラグ150cが「1:上り」の場合、上りの場合の着停留所の着時刻、発停留所と着停留所の間の距離、及び発停留所と出力位置の間の距離を用いて、最遅通過時刻を計算する。「0:下り」の場合、下りの場合の着停留所の着時刻、発停留所と着停留所の間の距離、及び発停留所と出力位置の間の距離を用いて、最遅通過時刻を計算する。
【0118】
それから、通過時刻特定部11は、処理済スジ数に1を加算し(ステップS28)、処理をステップS23に戻す。
【0119】
一方、処理済スジ数が取得スジ数以上である場合(ステップS23:N)、通過時刻特定部11は、本フローを終了する。
【0120】
図13は、出力位置の時刻表を生成する処理の一例を示すフロー図である。
【0121】
本フローが開始されると、時刻表生成部12は、通過時刻情報のレコードを通過時刻でソートする(ステップS31)。具体的には、時刻表生成部12は、
図13のフローで生成された通過時刻情報160の出力位置レコードに含まれる各通過時刻レコード(最早通過時刻160c、定刻通過時刻160d、最遅通過時刻160e)を、定刻通過時刻が早い順に並べ替える。なお、各通過時刻レコードの数を、取得スジ数として設定する。
【0122】
それから、時刻表生成部12は、出力対象時を所定値に設定するとともに、指定された出力位置を通過する通過時刻の出力が終了したスジ数である処理済スジ数を0に設定する(ステップS32)。なお、出力対象時とは、時刻の「時」であり、所定値は、時刻表に出力される最初の「時」である。所定値は、予め設定されていてもよいし、ユーザー端末2から受け付けるようにしてもよい。
【0123】
ここで、時刻表生成部12は、
図8又は
図10のフローで指定された出力位置を特定する情報(座標情報など)を、出力位置170aとして含む出力位置レコードを、時刻表情報170に追加する。また、時刻表生成部12は、出力対象時を通過時刻(時)170bとして、出力位置170aに関連付けて設定する。なお、時刻表の詳細情報の通過時刻レコード(最早通過時刻(分)170c、定刻通過時刻(分)170d、最遅通過時刻(分)170e)は、選択されたスジごとに、下記のステップS38において設定される。
【0124】
それから、時刻表生成部12は、処理済スジ数が取得スジ数よりも小さいか否かを判定する(ステップS33)。
【0125】
処理済スジ数が取得スジ数よりも小さい場合(ステップS33:Y)、時刻表生成部12は、
図12のフローで生成された通過時刻情報160の出力位置レコードに含まれる各通過時刻レコードの中から、未処理のスジの通過時刻レコードを一つ選択する(ステップS34)。
【0126】
それから、時刻表生成部12は、ステップS34で選択したスジの通過時刻レコードの定刻通過時刻160dの「時」が、出力対象時と同じであるか否かを判定する(ステップS35)。同じである場合(ステップS35:Y)、時刻表生成部12は、処理をステップS38に進める。同じでない場合(ステップS35:N)、時刻表生成部12は、処理をステップS36に進める。
【0127】
時刻表生成部12は、出力対象時に1を加算する(ステップS36)。
【0128】
ここで、時刻表生成部12は、出力対象時を通過時刻(時)170bとして、ステップS32で追加した出力位置レコードの出力位置170aに関連付けて設定する。
【0129】
それから、時刻表生成部12は、ステップS34で選択したスジの通過時刻レコードの定刻通過時刻160dの「時」が、出力対象時と同じであるか否かを判定する(ステップS37)。同じである場合(ステップS37:Y)、時刻表生成部12は、処理をステップS38に進める。同じでない場合(ステップS37:N)、時刻表生成部12は、処理をステップS36に戻す。
【0130】
それから、時刻表生成部12は、ステップS34で選択したスジの通過時刻を出力する(ステップS38)。具体的には、時刻表生成部12は、ステップS32又はステップS36で設定した通過時刻(時)170bに関連付けて、ステップS34で選択したスジの通過時刻レコードの最早通過時刻160cの分、定刻通過時刻160dの分、及び最遅通過時刻160eの分を、最早通過時刻(分)170c、定刻通過時刻(分)170d、及び最遅通過時刻(分)170eとして追加する。
【0131】
それから、時刻表生成部12は、処理済スジ数に1を加算し(ステップS39)、処理をステップS33に戻す。
【0132】
一方、処理済スジ数が取得スジ数以上である場合(ステップS33:N)、時刻表生成部12は、本フローを終了する。
【0133】
図14は、時刻表を出力するUI画面130の一例を示す図である。
【0134】
指定された出力位置の時刻表情報170が生成されると(
図13参照)、時刻表出力部13は、当該出力位置の時刻表情報170に基づいて、時刻表を生成し、当該時刻表を含むUI画面130を、ユーザー端末2に出力する。
【0135】
UI画面130には、通過時刻の時を縦軸に、通過時刻の分を横軸とした時刻表が表示される。通過時刻の分は、スジごとに、最早通過時刻(分)、定刻通過時刻(分)、最遅通過時刻(分)が関連付けられて(図では、[最早−定刻−最遅])表示される。なお、時刻表の時は、時刻表情報170の通過時刻(時)170bに対応し、時刻表の分は、時刻表情報170の各スジの最早通過時刻(分)170c、定刻通過時刻(分)170d、及び最遅通過時刻(分)170eに対応する。
【0136】
なお、出力位置をバスが通過する時刻を示すことができれば、UI画面130の構成は、
図14の例に限られない。
【0137】
上記の
図7、8、10、12、13のフローの処理単位は、時刻表生成装置1の処理を理解容易にするために、主な処理内容に応じて分割したものである。処理単位の分割の仕方や名称によって、本願発明が制限されることはない。時刻表生成装置1の処理は、処理内容に応じて、さらに多くの処理単位に分割することもできる。また、1つの処理単位がさらに多くの処理を含むように分割することもできる。また、上記のフローの処理順序も、図示した例に限られるものではない。
【0138】
以上、本発明の一実施形態について説明した。本実施形態によれば、任意の地点における交通機関の通過時刻に関する情報を提供することができる。
【0139】
すなわち、本実施形態では、ユーザーが指定した出力位置を交通機関が通過する時刻を示す時刻表を生成し、ユーザーに提示する。これにより、任意の地点における交通機関の通過時刻に関する情報を提供することができる。また、本実施形態では、指定された出力位置を通過する路線の上りと下りの両方の通過時刻を含む時刻表が提示される。これにより、ユーザーは上りと下りの両方の通過時刻を知ることができる。また、本実施形態では、通過時刻として、定刻通過時刻だけでなく、最早通過時刻及び最遅通過時刻が提示される。これにより、ユーザーは定刻通過時刻だけでなく最早通過時刻及び最遅通過時刻も知ることができる。
【0140】
また、例えば、指定の地点について生成された時刻表を、当該地点や当該地点の近くで工事を実施する業者に提供することで、当該業者は、工資材や重機を運搬する車両の移動や駐車と、交通機関の通過時間とが重ならないように、工事の計画を行うことができる。また、例えば、時刻表を、交通機関の事業者に提供するようにしてもよい。
【0141】
なお、以上の本発明の一実施形態は、本発明の要旨と範囲を例示することを意図し、限定するものではない。多くの代替物、修正、変形例は当業者にとって明らかである。
【0142】
例えば、上記の実施形態では、上りと下りの両方について通過時刻を特定しているが、時刻表生成装置1は、ユーザー端末2から、指定された路線について上りと下りの一方の指定を受け付け、上りと下りの一方の通過時刻を特定するようにしてもよい。
【0143】
例えば、上記の実施形態では、上りと下りの両方の通過時刻を含む時刻表を生成して出力しているが、上りの通過時刻と下りの通過時刻の区別がつくように異なる表示(例えば、色を変えたり、目印を付けたりする)を行ってもよい。また、上りの時刻表と下りの時刻表とを別の時刻表に分けて出力するようにしてもよい。
【0144】
例えば、上記の実施形態では、最早通過時刻、定刻通過時刻、及び最遅通過時刻の三つを特定しているが、三つの通過時刻のうちのいずれか一つ、又はいずれか二つを特定するようにしてもよい。どの通過時刻を特定するかを、ユーザー端末2から指定できるようにしてもよい。
【0145】
例えば、上述の実施形態では、地図上で一つの路線が指定されているが、複数の路線の一部が重なっている場合に、当該重なっている部分に出力位置が指定されたときは、各路線について出力位置を通過するバスの時刻を特定するようにしてもよい。この場合、時刻表は、一つとしてもよいし、路線ごとに分けてもよい。
【0146】
例えば、ユーザー端末2は、生成された時刻表情報を時刻表生成装置1から取得して保存し、現在時刻が、時刻表の各スジの最早通過時刻から最遅通過時刻の時間帯に入った場合に、アラームなどを出力するようにしてもよい。
【0147】
なお、本発明は、バスだけでなく、電車その他の交通機関にも適用できる。