本実施の形態では、ユーザが乗車しようとする停留所を先に通過したバスの運行状況に基づいて、次のバスが到着するまでの所要時間を予測する。
図1に、位置情報処理システムにおけるネットワークの概要を示す。バス101a乃至バス101cは、所定の予定に従って同じ経路を走行する。バス101a乃至バス101cには、それぞれバス搭載装置103a乃至バス搭載装置103cが設置されている。
バス搭載装置103は、GPS(Global Positioning System)を備えている。また、バス搭載装置103は、基地局109a乃至基地局109dを含む移動体通信網及びインターネットを介して位置情報処理サーバ105と通信を行うための通信部を有している。バス搭載装置103は、GPSで計測した自らの位置と計測した時刻を含む計測データを位置情報処理サーバ105に送信する。
インターネットに接続されている位置情報処理サーバ105は、バス搭載装置103a乃至バス搭載装置103cから夫々の計測データを収集する。そして、位置情報処理サーバ105は、計測データに基づいてバス101a乃至バス101cの運行状況を管理する。更に、位置情報処理サーバ105は、バス101a乃至バス101cの各々が既に走行した行程を渋滞区間と平常区間に分けた区間データも管理する。平常区間は、渋滞していない区間を意味する。
バス101を利用しようとするユーザは、ユーザ端末107を所持しているものとする。ユーザ端末107は、基地局109a乃至基地局109dを含む移動体通信網及びインターネットを介して位置情報処理サーバ105とデータ通信を行う。バス101に乗車しようとしているユーザは、ユーザ端末107を操作して、次のバスが到着すると予測される時刻を位置情報処理サーバ105から取得する。正確な予測時刻がわかれば、乗り遅れることがなく、また待ち時間も短くて済むので、ユーザにとって便利である。
本実施の形態におけるユーザ端末107の操作画面について説明する。図2に、問い合わせ画面の例を示す。問い合わせ画面は、例えばユーザ端末107が有するブラウザによって表示される。問い合わせ画面は、「乗車する停留所を指定して下さい。」の文字列を表示して、ユーザに乗車予定の停留所を指定するように促している。例えば、位置情報処理サーバ105がユーザ端末107の位置に従って近隣の停留所を特定し、それらの停留所の候補の中から乗車予定の停留所を選択する画面を生成し、送信するようにしてもよい。この例は、Y停留所が指定されている状態を示している。この状態で「問い合わせ」ボタンがタッチされると、ユーザ端末107は問い合わせを位置情報処理サーバ105に送信する。問い合わせは、例えばメッセージとして送信される。また、問い合わせには指定された停留所を示す情報が付加されている。
ユーザが特定の便に乗車することを予定している場合に対応するために、問い合わせ画面において便の指定を受け付けるようにしてもよい。
位置情報処理サーバ105は、ユーザ端末107から問い合わせを受信すると、指定された停留所へ次のバスが到着するまでの所要時間を予測する。このとき、位置情報処理サーバ105は、先に当該停留所を通過したバス101に関する情報を参考にする。位置情報処理サーバ105は、予測した所要時間をユーザ端末107へ通知する。
図3に、通知画面の例を示す。通知画面は、例えばユーザ端末107が有するブラウザによって表示される。「Y停留所への次のバスは、あと33分で到着する見込みです。」の文字列によって、次のバスが指定された停留所へ到着するまでの所要時間が示されている。この例では、所要時間を示しているが、到着すると予測される時刻を示すようにしてもよい。到着時刻は、現在時刻に所要時間を加えることによって求められる。あるいは、予定時刻との差分時間を示すようにしてもよい。差分時間は、予測した到着時刻から予定時刻を引くことによって求められる。
ユーザ端末107は、通知画面のデータを受信すると、通知画面を表示する。ユーザは、通知画面を見て、乗車する停留所への次のバス101の到着時刻を把握する。
この例では、バス101が停留所に到着するまでの所要時間を予測するが、バス101以外の車両が所定の目的地に到着するまでの所要時間を予測するようにしてもよい。あるいは、車両以外の移動体が目的地に到着するまでの所要時間を予測するようにしてもよい。移動体は機械に限らず、人あるいは人以外の動物であってもよい。
また、ネットワークの構成は、図1に示した例に限らない。図1では、ユーザ端末107が、バス搭載装置103a乃至バス搭載装置103cが使用する移動体通信網と同じ移動体通信網を使用する様子を示したが、ユーザ端末107は、バス搭載装置103a乃至バス搭載装置103cが使用する移動体通信網と異なる移動体通信網を使用するようにしてもよい。また、位置情報処理サーバ105はインターネット以外のネットワークに接続されるようにしてもよい。以上で、位置情報処理システムにおけるネットワークの概要についての説明を終わる。
図4に、運行予定データの例を示す。運行予定データは、所定の経路にかかる運行予定を示している。この例における経路は、順にW停留所、X停留所、Y停留所及びZ停留所を含んでいる。
運行予定データは、運行される便毎にレコードを有している。レコードは、運行IDを設定するためのフィールドと、各停留所における到着予定時刻を設定するためのフィールドとを有している。
省略されているレコードを除く第1レコードは、運行ID「101」の便が、時刻17時30分にW停留所に到着し、時刻18時00分にX停留所に到着し、時刻18時30分にY停留所に到着し、更に時刻19時00分にZ停留所に到着する予定であることを示している。
同じく、第2レコードは、運行ID「102」の便が、時刻18時00分にW停留所に到着し、時刻18時30分にX停留所に到着し、時刻19時00分にY停留所に到着し、更に時刻19時30分にZ停留所に到着する予定であることを示している。
同じく、第3レコードは、運行ID「103」の便が、時刻18時30分にW停留所に到着し、時刻19時00分にX停留所に到着し、時刻19時30分にY停留所に到着し、更に時刻20時00分にZ停留所に到着する予定であることを示している。
続いて、図5を用いて運行状況の例について説明する。図5は、W停留所からZ停留所までの経路を模式的に示している。バス101aは、運行ID「101」の便に用いられている。バス101bは、運行ID「102」の便に用いられている。バス101cは、運行ID「103」の便に用いられている。
図5は、ある日の時刻18時39分頃における運行状況を示している。図示したように、バス101aは、Y停留所を過ぎて、Z停留所に至る経路上を走行している。バス101bは、X停留所を過ぎて、Y停留所に至る経路上を走行している。バス103cは、W停留所を過ぎて、X停留所に至る経路上を走行している。
また、図5はバス101aの走行結果に基づく区間も示している。区間A乃至区間Hは、バス101aの走行結果に基づいて区分けされている。実線の両矢印線で示した区間A、区間C、区間E及び区間Gは、渋滞していなかった区間、つまり平常区間である。破線の両矢印線で示した区間B、区間D、区間F及び区間Hは、渋滞していた区間、つまり渋滞区間である。
渋滞は、車線が減っている箇所や上り坂のような道路特性に起因して生じることがある。また、工事、事故やイベントなどによる交通規制によっても、渋滞が生じることがある。
図示したように、区間Aは、経路上におけるX停留所から地点aまでの範囲を示している。同様に、区間Bは、経路上における地点aから地点bまでの範囲を示している。区間Cは、経路上における地点bから地点cまでの範囲を示している。区間Dは、経路上における地点cから地点dまでの範囲を示している。区間Eは、経路上における地点dから地点eまでの範囲を示している。区間Fは、経路上における地点eから地点fまでの範囲を示している。区間Gは、経路上における地点fから地点gまでの範囲を示している。区間Hは、経路上における地点gから地点hまでの範囲を示している。
この時点で、位置情報処理サーバ105が、Y停留所が指定された問い合わせを受信すると、位置情報処理サーバ105は、Y停留所に次に到着するバス101bの到着時刻を予測する。このとき、平常区間(区間C、区間E及び区間G)に関して、バス101bはバス101aと同じ速度で走行すると想定する。つまり、バス101bはバス101aの場合と同じ時間で通過するものとする。渋滞していなければ、常に速度は略同一であると考えられるからである。
一方、渋滞区間(区間D、区間F及び区間H)に関しては、バス101bがバス101aと異なる速度で走行する場合を考慮する。但し、各渋滞区間におけるバス101aの移動速度に対するバス101bの移動速度の比率は一定であると想定する。ある渋滞区間(例えば、区間B)をバス101aが4分で通過し、バス101bが6分で通過した場合には、比率が1.5となる。そして、別の渋滞区間(例えば、区間D)をバス101aが6分で通過していれば、バス101bは比率1.5に従って9分で通過すると予測する。渋滞している範囲では、その時々で速度が異なると考えられるからである。
例えば、全体の交通量が少ない時間帯では、渋滞区間を通り抜けるのに短時間で済むが、全体の交通量が多い時間帯では、同じ渋滞区間を通り抜けるのに長時間要することがある。このような渋滞区間における停滞が、遅延の原因となることがある。
本実施の形態では、遅延した場合に、全体の所要時間に対して渋滞区間の通行時間が占める割合が高いことに着目し、渋滞区間における通行時間の予測精度を向上させるようにしている。
続いて、位置情報処理サーバ105の機能ブロックについて説明する。図6に、位置情報処理サーバ105の機能ブロックの例を示す。位置情報処理サーバ105は、運行予定データ記憶部601、経路データベース602、収集部603、収集データ記憶部609、受信部617、第1算出部619、第2算出部620及び送信部621を有している。
運行予定データ記憶部601は、図4に示した運行予定データを予め記憶している。経路データベース602は、経路を特定するデータを管理している。経路データベース602は、経路上の2つの位置を指定されると、2つの位置の経路上の前後関係と、2つの位置間の経路上の距離とを応答する。また、経路データベース602は、停留所の位置も記憶している。
収集部603は、バス搭載装置103からの計測データに基づいて各種データを収集する。収集部603は、生成部605と判定部607とを含んでいる。生成部605は、計測データに基づいて地点データ611を生成する。判定部607は、地点データ611に基づいて区間を判定する。判定部607は、更に、運行状況データ613と区間データ615とを生成する。
計測データは、バス101から位置情報処理サーバ105に送られるデータであって、バス101で計測された位置(以下、計測位置という。)と計測した時間(以下、計測時間という。)とを含んでいる。
地点データ611は、計測データと、更に計測データに基づいて地点毎に算出される値とを含んでいる。地点データ611は、当該地点が区間の境界であるか否かの情報も含んでいる。
運行状況データ613は、各停留所にバス101が到着した時刻を含んでいる。未到着の場合には、未到着である旨が設定されている。
区間データ615は、区間毎に算出される値を含んでいる。区間データは、区間毎の交通状態、つまり渋滞と平常との別も含んでいる。
収集データ記憶部609は、収集部603によって収集された各種データを記憶する。各種データには、地点データ611、運行状況データ613及び区間データ615が含まれる。地点データ611は、運行IDに対応付けられている。区間データ615も、運行IDに対応付けられている。
受信部617は、バス搭載装置103から計測データを受信する。更に、受信部617は、ユーザ端末107から問い合わせを受信する。
第1算出部619は、渋滞区間における前のバス101の走行時間と次のバス101の走行時間との比率を算出する。第2算出部620は、渋滞区間で予測される走行時間と平常区間で予測される走行時間とを合算して、全体の所要時間を予測する。なお、第1算出部619及び第2算出部620は、アプリケーション・プログラムが後述するCPUで実行されることで実現される機能である。
送信部621は、ユーザ端末107へ通知画面を送信する。以上で、位置情報処理サーバ105の機能ブロックについての説明を終える。
続いて、位置情報処理サーバ105における処理について説明する。まず、位置情報処理サーバ105が常時行っている収集処理について説明する。
図7に、収集処理フローを示す。収集部603は、所定間隔で計測データを取得する(S701)。この例では、1分間隔で計測データを取得する。計測データは、受信部617においてバス搭載装置103から受信される。
このとき、受信部617は送信元であるバス搭載装置103を特定し、バス搭載装置103に対応する運行IDを特定する。収集部603は、運行IDに対応する地点データ611に、計測データに含まれる計測時刻と計測位置とを設定する。尚、計測データにバスの走行速度が含められるようにしてもよい。その場合には、収集部603は、運行IDに対応する地点データ611に、計測データに含まれる走行速度を設定するようにしてもよい。
生成部605は、運行状況データ生成処理を実行する(S703)。運行状況データについて詳述する。図8に、運行状況データ613の例を示す。運行状況データ613は、便毎にレコードを有する。運行IDは、便を識別する情報である。レコードは、各停留所に到着した時刻を格納するためのフィールドを有している。
省略されているレコードを除く第1レコードは、運行ID「101」の便に相当するバス101aが、時刻17時30分にW停留所に到着し、時刻18時00分にX停留所に到着し、時刻18時33分にY停留所に到着したことを示している。また、運行ID「101」の便に相当するバス101aは、Z停留場に未だ到着していないことを示している。
同じく第2レコードは、運行ID「102」の便に相当するバス101bが、時刻18時00分にW停留所に到着し、時刻18時30分にX停留所に到着したことを示している。また、運行ID「102」の便に相当するバス101bは、Y停留所及びZ停留場に未だ到着していないことを示している。
同じく第3レコードは、運行ID「103」の便に相当するバス101cが、時刻18時30分にW停留所に到着したことを示している。また、運行ID「103」の便に相当するバス101cは、X停留所、Y停留所及びZ停留場に未だ到着していないことを示している。
図9に、運行状況データ生成処理フローを示す。生成部605は、経路データベース602を用いて、バス101の計測位置が未到着の停留所を越えたか否かを判定する(S901)。
計測位置が未到着の停留所を越えたと判定した場合には、生成部605は、当該バス101の当該停留所の到着時刻のフィールドに計測時刻を書く(S903)。そして、運行データ生成処理を終える。
一方、バス101の計測位置が未到着の停留所を越えていないと判定した場合には、そのまま運行状況データ生成処理を終える。
運行状況データ生成処理を終えると、図7の処理に戻ってS705乃至S709で区間の判定などの処理を行う。
図10に、区間の判定に伴って生成される区間データ615の例を示す。ここでは、運行ID「101」に対応付けられている区間データ615の例を示す。渋滞区間あるいは平常区間のいずれかに相当する区間毎に、列が設けられている。区間IDは、区間を識別する情報である。区間始点は、区間が始まる位置を示す。区間終点は、区間が終わる位置を示す。区間距離は、区間始点と区間終点との間の経路に沿った距離を示す。走行時間は、区間の走行に要した時間である。区間速度は、区間走行中におけるバス101の平均速度である。交通状態は、渋滞と平常との別を示す。
省略されている列を除く第1列は、区間Aが始点(X101,Y101)と終点(X103,Y103)とに挟まれ、経路に沿った距離LAを有していることを示している。また、バス101aがこの区間を時間2分00秒で通過し、そのときのバス101aの平均速度がSAであり、バス101aがこの区間を通過したときの交通状態は平常であったことを示している。
同様に、第2列は、区間Bが始点(X103,Y103)と終点(X107,Y107)とに挟まれ、経路に沿った距離LBを有していることを示している。また、バス101aがこの区間を時間4分00秒で通過し、そのときのバス101aの平均速度がSBであり、バス101aがこの区間を通過したときの交通状態は渋滞であったことを示している。
同様に、第3列は、区間Cが始点(X107,Y107)と終点(X110,Y110)とに挟まれ、経路に沿った距離LCを有していることを示している。また、バス101aがこの区間を時間3分00秒で通過し、そのときのバス101aの平均速度がSCであり、バス101aがこの区間を通過したときの交通状態は平常であったことを示している。
同様に、第4列は、区間Dが始点(X110,Y110)と終点(X116,Y116)とに挟まれ、経路に沿った距離LDを有していることを示している。また、バス101aがこの区間を時間6分00秒で通過し、そのときのバス101aの平均速度がSDであり、バス101aがこの区間を通過したときの交通状態は渋滞であったことを示している。
同様に、第5列は、区間Eが始点(X116,Y116)と終点(X122,Y122)とに挟まれ、経路に沿った距離LEを有していることを示している。また、バス101aがこの区間を時間6分00秒で通過し、そのときのバス101aの平均速度がSEであり、バス101aがこの区間を通過したときの交通状態は平常であったことを示している。
同様に、第6列は、区間Fが始点(X122,Y122)と終点(X128,Y128)とに挟まれ、経路に沿った距離LFを有していることを示している。また、バス101aがこの区間を時間6分00秒で通過し、そのときのバス101aの平均速度がSFであり、バス101aがこの区間を通過したときの交通状態は渋滞であったことを示している。
同様に、第7列は、区間Gが始点(X128,Y128)と終点(X132,Y132)とに挟まれ、経路に沿った距離LGを有していることを示している。また、バス101aがこの区間を時間4分00秒で通過し、そのときのバス101aの平均速度がSGであり、バス101aがこの区間を通過したときの交通状態は平常であったことを示している。
同様に、第8列は、区間Hが始点(X132,Y132)と終点(X136,Y136)とに挟まれ、経路に沿った距離LHを有していることを示している。また、バス101aがこの区間を時間4分00秒で通過し、そのときのバス101aの平均速度がSHであり、バス101aがこの区間を通過したときの交通状態は渋滞であったことを示している。
この実施の形態では、地点データに基づいて区間を判定し、上述の区間データを生成する。図11に、地点データの例を示す。ここでは、運行ID「101」に対応付けられている地点データ611の例を示す。
計測時刻は、バス搭載装置103が位置を計測した時刻である。計測位置は、バス搭載装置103がGPSを用いて計測した位置(以下、地点という。)を示す。地点間距離は、経路に沿って前回の地点から移動した距離である。地点間速度は、前回の地点から今回の地点に至るまでのバス101の平均速度である。移動平均速度は、今回の地点及び以前の地点で算出した地点間速度の平均である。この例では、今回の地点で算出した地点間速度と前回の地点で算出した地点間速度との平均が用いられる。移動平均速度の変化量は、前回の移動地点間速度に対する今回の移動地点間速度の変化量である。境界地点フラグは、区間の境界地点であるか否かを示す。ONの場合には、今回の地点が境界地点であることを意味し、OFFの場合には、今回の地点が境界地点でないことを意味する。
本実施の形態では、移動平均速度の変化量が正の閾値(この例で10km/h)より大きい場合、つまりある程度の加速が生じた場合に、境界地点であると判定する。また、移動平均速度の変化量が負の閾値(この例で−10km/h)より小さい場合、つまりある程度の減速が生じた場合にも、境界地点であると判定する。
省略された列を除く第1列は、時刻T101にバス101aの位置(X101,Y101)が計測されたことを示している。また、この列は、前回の計測時から距離L101をバス101aが速度8km/hで移動したことを示している。更に、この列は、今回算出した移動平均速度が15km/hであり、前回算出した移動平均速度に対する変化量が−12km/hであり、今回の地点が境界地点に相当することを示している。
同様に第2列は、時刻T102にバス101aの位置(X102,Y102)が計測されたことを示している。また、この列は、前回の計測時から距離L102をバス101aが速度10km/hで移動したことを示している。更に、この列は、今回算出した移動平均速度が9km/hであり、前回算出した移動平均速度に対する変化量が−6km/hであり、今回の地点が境界地点に相当しないことを示している。
同様に、第3列は、時刻T103にバス101aの位置(X103,Y103)が計測されたことを示している。また、この列は、前回の計測時から距離L103をバス101aが速度34km/hで移動したことを示している。更に、この列は、今回算出した移動平均速度が22km/hであり、前回算出した移動平均速度に対する変化量が11km/hであり、今回の地点が境界地点に相当することを示している。
同様に、第4列は、時刻T104にバス101aの位置(X104,Y104)が計測されたことを示している。また、この列は、前回の計測時から距離L104をバス101aが速度28km/hで移動したことを示している。更に、この列は、今回算出した移動平均速度が31km/hであり、前回算出した移動平均速度に対する変化量が9km/hであり、今回の地点が境界地点に相当しないことを示している。
同様に、第5列は、時刻T105にバス101aの位置(X105,Y105)が計測されたことを示している。また、この列は、前回の計測時から距離L105をバス101aが速度52km/hで移動したことを示している。更に、この列は、今回算出した移動平均速度が40km/hであり、前回算出した移動平均速度に対する変化量が9km/hであり、今回の地点が境界地点に相当しないことを示している。
同様に、第6列は、時刻T106にバス101aの位置(X106,Y106)が計測されたことを示している。また、この列は、前回の計測時から距離L106をバス101aが速度40km/hで移動したことを示している。更に、この列は、今回算出した移動平均速度が46km/hであり、前回算出した移動平均速度に対する変化量が6km/hであり、今回の地点が境界地点に相当しないことを示している。
同様に、第7列は、時刻T107にバス101aの位置(X107,Y107)が計測されたことを示している。また、この列は、前回の計測時から距離L107をバス101aが速度10km/hで移動したことを示している。更に、この列は、今回算出した移動平均速度が25km/hであり、前回算出した移動平均速度に対する変化量が−21km/hであり、今回の地点が境界地点に相当することを示している。
同様に、第8列は、時刻T108にバス101aの位置(X108,Y108)が計測されたことを示している。また、この列は、前回の計測時から距離L108をバス101aが速度22km/hで移動したことを示している。更に、この列は、今回算出した移動平均速度が16km/hであり、前回算出した移動平均速度に対する変化量が−9km/hであり、今回の地点が境界地点に相当しないことを示している。
同様に、第9列は、時刻T109にバス101aの位置(X109,Y109)が計測されたことを示している。また、この列は、前回の計測時から距離L109をバス101aが速度4km/hで移動したことを示している。更に、この列は、今回算出した移動平均速度が13km/hであり、前回算出した移動平均速度に対する変化量が−3km/hであり、今回の地点が境界地点に相当しないことを示している。
同様に、第10列は、時刻T110にバス101aの位置(X110,Y110)が計測されたことを示している。また、この列は、前回の計測時から距離L110をバス101aが速度46km/hで移動したことを示している。更に、この列は、今回算出した移動平均速度が25km/hであり、前回算出した移動平均速度に対する変化量が12km/hであり、今回の地点が境界地点に相当することを示している。
尚、図11に示したように、移動平均速度の変化量が−12km/hである位置(X101,Y101)は、図5に示したX停留所に相当する。また、移動平均速度の変化量が11km/hである位置(X103,Y103)は、図5に示した地点aに相当する。
図10に示した区間Aについて、区間距離LAは、図11に示した計測距離L102とL103との合計に相当する。走行時間2分00秒は、計測時刻T101からT103までの経過時間に相当する。
また、図11に示したように、移動平均速度の変化量が−21km/hである位置(X107,Y107)は、図5に示した地点bに相当する。
図10に示した区間Bについて、区間距離LBは、図11に示した計測距離L104乃至L107の合計に相当する。走行時間4分00秒は、計測時刻T103からT107までの経過時間に相当する。
また、図11に示したように、移動平均速度の変化量が12km/hである位置(X110,Y110)は、図5に示した地点cに相当する。
図10に示した区間Cについて、区間距離LCは、図11に示した計測距離L108乃至L110の合計に相当する。走行時間3分00秒は、計測時刻T107からT110までの経過時間に相当する。以上で、区間データと計測データとについての説明を終える。
図7の説明に戻る。S703の運行状況データ生成処理に続いて、判定部607は、第1判定処理を実行する(S705)。
図12に、第1判定処理フローを示す。判定部607は、前回の計測位置と今回の計測位置を指定して、経路データベース602から地点間距離を求める(S1201)。判定部607は、地点間距離を地点データ611に設定する。
判定部607は、地点間距離を所定間隔の時間(この例では1分)で割って地点間速度を算出する(S1203)。判定部607は、地点間速度を地点データ611に設定する。尚、S701において計測データとしてバス101の速度も受信した場合には、判定部607は、その速度を用いて地点間速度を算出するようにしてもよい。
判定部607は、今回から遡った所定回数の地点間速度に基づいて、移動平均速度を算出する(S1205)。この例では、前述の通り前回の地点間速度と今回の地点間速度との平均を求める。判定部607は、移動平均速度を地点データ611に設定する。
判定部607は、今回の移動平均速度から前回の移動平均速度を引いて移動平均速度の変化量を算出する(S1207)。判定部607は、移動平均速度の変化量を地点データ611に設定する。
判定部607は、算出した移動平均速度の変化量が正の閾値(この例では、10km/h)より大きいか否かを判定する(S1209)。算出した移動平均速度の変化量が正の閾値より大きいと判定した場合には、判定部607は、当該位置が境界地点であると判定する(S1211)。判定部607は、境界地点フラグにONを設定する。
算出した移動平均速度の変化量が正の閾値より大きくないと判定した場合には、判定部607は、算出した移動平均速度の変化量が負の閾値(この例では、−10km/h)より小さいか否かを判定する(S1213)。算出した移動平均速度の変化量が負の閾値より小さいと判定した場合には、判定部607は、当該位置が境界地点であると判定する(S1213)。判定部607は、境界地点フラグにONを設定する。
一方、算出した移動平均速度の変化量が負の閾値より小さくないと判定した場合には、判定部607は、当該位置が境界地点でないと判定する(S1215)。判定部607は、境界地点フラグにOFFを設定する。第1判定処理を終えると、図7のS707へ戻る。
図7の説明に戻って、判定部607は、第1判定処理の判定結果に基づいて当該位置が境界地点であるか否かを判定することによって処理を分岐させる(S707)。
当該位置が境界地点である場合には、判定部607は、第2判定処理を実行する(S709)。第2判定処理では、区間の交通状態を判定し、区間データを生成する。当該位置が境界地点でない場合には、S701の処理に戻る。
図13に、第2判定処理フローを示す。判定部607は、区間データ615の新しい列に区間IDを割り当てる(S1301)。判定部607は、例えば順序付けられたIDを割り当てる。
判定部607は、区間始点と区間終点とを特定する(S1303)。判定部607は、区間データ615に区間始点と区間終点とを設定する。具体的には、判定部607は、前回境界フラグがONとなった計測位置を区間始点に設定する。また、今回の計測位置を区間終点に設定する。
判定部607は、区間始点と区間終点とを指定して経路データベース602から区間距離を求める(S1305)。判定部607は、区間距離を区間データ615に設定する。
判定部607は、今回の計測時刻から前回境界フラグがONとなった計測時刻を引いて走行時間を特定する(S1307)。判定部607は、走行時間を区間データ615に設定する。
判定部607は、区間距離を走行時間で割って、区間速度を算出する(S1309)。判定部607は、区間速度を区間データ615に設定する。
判定部607は、区間速度が閾値より小さいか否かを判定する(S1311)。区間速度が閾値より小さいと判定した場合には、判定部607は、区間データ615の交通状態に渋滞と設定する(S1313)。
一方、区間速度が閾値より小さくないと判定した場合には、判定部607は、区間データ615の交通状態に平常と設定する(S1315)。
第2判定処理(S709)を終えると、図7に示すようにS701の処理に戻って、上述の処理を繰り返す。以上で、収集処理についての説明を終える。
続いて、ユーザからの問い合わせに応じて行われる予測処理について説明する。図14に、予測処理フローを示す。受信部617は、待機して、ユーザ端末107から停留所を指定された問い合わせを受信する(S1401)。
問い合わせを受信すると、第1算出部619は、運行状況データ613に基づいて当該停留所を通過していない次のバス101を特定する(S1403)。つまり、第1算出部619は、運行状況データ613に基づいて、当該停留所に未到達であって、直近に到着した停留所が最も当該停留所に近い便を特定する。図8に示した例でY停留所が指定されると、Y停留所に未到達である運行ID「102」と運行ID「103」とのうち、X停留所に到達している運行ID「102」が選択される。そして、運行ID「102」の便に相当するバス101bが特定される。
S1401で受信した問い合わせにおいて便が指定されている場合には、指定された便のバス101を次のバス101とみなして処理するようにしてもよい。
第1算出部619は、運行状況データ613に基づいて停留所を通過した前のバス101を特定する(S1405)。具体的には、第1算出部619は、当該停留所への到着時刻が最も遅い便を選択する。図8の例では、運行ID「101」が選択される。そして、運行ID「101」の便に相当するバス101aが特定される。
第1算出部619は、比率算出処理を実行する(S1407)。図16に、比率算出処理フローを示す。第1算出部619は、前のバス101に対応する区間データを特定する(S1601)。この例では、運行ID「101」に対応する区間データが特定される。
第1算出部619は、特定した区間データに含まれる渋滞区間のうち、次のバス101が既に通過している区間を特定する(S1603)。このとき、第1算出部619は、次のバス101に対応する計測データから次のバス101の現在位置を取得する。
上述の通り、この例では運行ID「102」が次のバス101に相当している。図15に、運行ID「102」に対応する計測データの例を示す。
最新の計測時刻T210に対応する計測位置(X210,Y210)が運行ID「102」のバス101の現在位置に相当する。
計測位置(X203,Y203)が地点aに相当し、計測位置(X209,Y209)が地点bに相当しているものとすると、バス101bは、区間Bを通過して間もないことになる。従って、図10に示す区間データで交通状態が渋滞となっている区間B、区間D、区間F及び区間Hのうち、区間Bが選択される。
このとき、第1算出部619は、経路データベース602を用いてバス101bの現在位置が区間Bを越えていることを判定する。また、第1算出部619は、経路データベース602を用いて、バス101bの現在位置が区間D、区間F及び区間Hを越えていないことを判定する。
図16の説明に戻って、第1算出部619は、前のバス101の区間データから、当該区間における前のバス101の走行時間を特定する(S1605)。この例では、図10の区間データから区間Bの走行時間4分00秒が特定される。
第1算出部619は、当該区間における次のバス101の走行時間を特定する(S1607)。具体的には、第1算出部619は、次のバス101に対応する地点データ611に基づいて、当該区間の終点を通過した時間から当該区間の始点を通過した時間を引いて走行時間を求める。図15の例では、地点bに相当する計測位置の計測時刻T209から地点aに相当する計測位置の計測時刻T203を引いて、走行時間6分を求める。
第1算出部619は、次のバス101の走行時間を前のバス101の走行時間で割って、比率を算出する(S1609)。この例では、バス101bの走行時間6分をバス101aの走行時間4分で割って、比率1.5を求める。
図14の説明に戻って、第2算出部620は、合算処理を実行する(S1409)。図17に、合算処理フローを示す。
第2算出部620は、パラメータである予測時間に0を設定する(S1701)。第2算出部620は、経路データベース602に基づいて、次のバス101の現在位置を含む区間から当該停留所を含む区間までの対象区間群を特定する(S1703)。図5の例では、バス101bの現在位置は区間Cに含まれ、Y停留所は区間Hに含まれるので、区間C乃至区間Hを対象区間群とする。
第2算出部620は、未処理の対象区間を1つ特定する(S1705)。第2算出部620は、行程割合を特定する(S1707)。行程割合は、区間距離のうち予測対象となる距離の割合を示す。区間Cのように、次のバス101の現在位置を含む区間については、区間距離のうち、未走行の距離の割合を求める。また、区間Hのように、当該停留所を含む区間については、区間距離のうち、区間始点から当該停留所までの距離の割合を求める。区間D乃至区間Gのように、区間の全体が予測対象である場合には、行程割合を1とする。
第2算出部620は、当該区間の交通状態が渋滞であるか否かを判定する(S1709)。当該区間の交通状態が渋滞であると判定した場合には、第2算出部620は、当該区間の走行時間に比率と行程割合とを乗じて区間時間を算出する(S1711)。
区間Dの場合には、区間全体を予測の対象とするので、走行時間6分00秒に比率1.5と行程割合1を乗じて、区間時間9分00秒が求められる。
区間Fの場合にも、区間全体を予測の対象とするので、走行時間6分00秒に比率1.5と行程割合1を乗じて、区間時間9分00秒が求められる。
区間Hの場合には、Y停留所が区間Hの真ん中に位置するので、走行時間4分00秒に比率1.5と行程割合1/2を乗じて、区間時間3分秒00が求められる。
一方、当該区間の交通状態が渋滞ではない、つまり平常であると判定した場合には、第2算出部620は、当該区間の走行時間に行程割合を乗じて区間時間を算出する(S1713)。
区間Cの場合には、区間距離の1/3を通過しているので、走行時間3分00秒に行程割合2/3を乗じて、区間時間2分00秒が求められる。
区間Eの場合には、区間全体を予測の対象とするので、走行時間6分00秒に行程割合1を乗じて、区間時間6分00秒が求められる。
区間Gの場合には、区間全体を予測の対象とするので、走行時間4分00秒に行程割合1を乗じて、区間時間4分00秒が求められる。
第2算出部620は、区間時間を予測時間に加算する(S1715)。第2算出部620は、未処理の対象区間があるか否かを判定する(S1717)。未処理の対象区間があると判定した場合には、S1705に戻って上述の処理を繰り返す。
一方、未処理の対象区間がないと判定した場合には、合算処理を終了する。
上述の例では、区間Cにおける区間時間2分00秒と、区間Dにおける区間時間9分00秒と、区間Eにおける区間時間6分00秒と、区間Fにおける区間時間9分00秒と、区間Gにおける区間時間4分00秒と、区間Hにおける区間時間3分00秒とを合算する。そして、予測時間は、33分00秒となる。
図14の説明に戻って、送信部621は、図3に示したように停留所名と予測時間とを含む応答メッセージを生成する(S1411)。送信部621は、応答メッセージを通知画面のデータに書き込んで、通知画面のデータをユーザ端末107に送信する(S1413)。以上で、予測処理についての説明を終える。
以上本発明の一実施の形態を説明したが、本発明はこれに限定されるものではない。例えば、上述の機能ブロック構成は実際のプログラムモジュール構成に一致しない場合もある。
また、上で説明した各記憶領域の構成は一例であって、上記のような構成でなければならないわけではない。さらに、処理フローにおいても、処理結果が変わらなければ処理の順番を入れ替えることも可能である。さらに、並列に実行させるようにしても良い。
なお、上で述べた位置情報処理サーバ105は、コンピュータ装置であって、図18に示すように、メモリ2501とCPU(Central Processing Unit)2503とハードディスク・ドライブ(HDD:Hard Disk Drive)2505と表示装置2509に接続される表示制御部2507とリムーバブル・ディスク2511用のドライブ装置2513と入力装置2515とネットワークに接続するための通信制御部2517とがバス2519で接続されている。オペレーティング・システム(OS:Operating System)及び本実施例における処理を実施するためのアプリケーション・プログラムは、HDD2505に格納されており、CPU2503により実行される際にはHDD2505からメモリ2501に読み出される。CPU2503は、アプリケーション・プログラムの処理内容に応じて表示制御部2507、通信制御部2517、ドライブ装置2513を制御して、所定の動作を行わせる。また、処理途中のデータについては、主としてメモリ2501に格納されるが、HDD2505に格納されるようにしてもよい。本発明の実施例では、上で述べた処理を実施するためのアプリケーション・プログラムはコンピュータ読み取り可能なリムーバブル・ディスク2511に格納されて頒布され、ドライブ装置2513からHDD2505にインストールされる。インターネットなどのネットワーク及び通信制御部2517を経由して、HDD2505にインストールされる場合もある。このようなコンピュータ装置は、上で述べたCPU2503、メモリ2501などのハードウエアとOS及びアプリケーション・プログラムなどのプログラムとが有機的に協働することにより、上で述べたような各種機能を実現する。
以上述べた本発明の実施の形態をまとめると、以下のようになる。
本実施の形態に係る位置情報処理装置は、第1移動体が通過した経路に含まれ、且つ第2移動体が既に通過した第1渋滞区間を特定し、第1渋滞区間における第1移動体の通過時間と第1渋滞区間における第2移動体の通過時間との比率を算出する第1算出部と、上記経路に含まれ、且つ第2移動体が未だ通過していない第2渋滞区間と非渋滞区間とを特定し、第2渋滞区間における第1移動体の通過時間と上記比率とに基づいて、第2渋滞区間における第2移動体の通過に要する第1予想時間を算出し、非渋滞区間における第1移動体の通過時間と第1予想時間とを合算して、第2渋滞区間及び非渋滞区間における第2移動体の通過に要する第2予想時間を算出する第2算出部とを有する。
このようにすれば、先行する第1移動体による経路の通過時間に基づき、渋滞区間における交通状態の経時的変化を反映して、後続の第2移動体がこれから通過する同経路における通過時間の予測精度を向上させることができる。
上記第2算出部は、第2渋滞区間における第1移動体の通過時間に上記比率を乗じて第1予測時間を算出するようにしてもよい。
このようにすれば、第1移動体が通過した時点における第1渋滞区間における交通状況と第2移動体が通過した時点における第1渋滞区間における交通状況の経時的変化による影響を、第2渋滞区間における第1予測時間に反映させることができる。
更に、上記位置情報処理装置は、第1移動体が閾値よりも小さい速度で通過した区間を渋滞区間と判定し、第1移動体が上記閾値よりも大きい速度で通過した区間を非渋滞区間と判定する判定部を有するようにしてもよい。
このように第1移動体による通行実績に基づいて区間を判定すれば、状況に応じて正確に渋滞区間とそれ以外の非渋滞区間を特定することができる。
なお、上で述べた位置情報処理装置による処理をコンピュータに行わせるためのプログラムを作成することができ、当該プログラムは、例えばフレキシブルディスク、CD−ROM、光磁気ディスク、半導体メモリ、ハードディスク等のコンピュータ読み取り可能な記憶媒体又は記憶装置に格納されるようにしてもよい。尚、中間的な処理結果は、一般的にメインメモリ等の記憶装置に一時保管される。
以上の実施例を含む実施形態に関し、さらに以下の付記を開示する。
(付記1)
第1移動体が通過した経路に含まれ、且つ第2移動体が既に通過した第1渋滞区間を特定し、当該第1渋滞区間における前記第1移動体の通過時間と当該第1渋滞区間における前記第2移動体の通過時間との比率を算出する第1算出部と、
前記経路に含まれ、且つ前記第2移動体が未だ通過していない第2渋滞区間と非渋滞区間とを特定し、当該第2渋滞区間における前記第1移動体の通過時間と前記比率とに基づいて、前記第2渋滞区間における前記第2移動体の通過に要する第1予想時間を算出し、前記非渋滞区間における前記第1移動体の通過時間と前記第1予想時間とを合算して、前記第2渋滞区間及び前記非渋滞区間における前記第2移動体の通過に要する第2予想時間を算出する第2算出部と
を有する位置情報処理装置。
(付記2)
前記第2算出部は、前記第2渋滞区間における前記第1移動体の前記通過時間に前記比率を乗じて前記第1予測時間を算出する
付記1記載の位置情報処理装置。
(付記3)
更に、
前記第1移動体が閾値よりも小さい速度で通過した区間を前記渋滞区間と判定し、前記第1移動体が前記閾値よりも大きい速度で通過した区間を前記非渋滞区間と判定する判定部
を有する付記1又は2記載の位置情報処理装置。
(付記4)
第1移動体が通過した経路に含まれ、且つ第2移動体が既に通過した第1渋滞区間を特定し、当該第1渋滞区間における前記第1移動体の通過時間と当該第1渋滞区間における前記第2移動体の通過時間との比率を算出する処理と、
前記経路に含まれ、且つ前記第2移動体が未だ通過していない第2渋滞区間と非渋滞区間とを特定し、当該第2渋滞区間における前記第1移動体の通過時間と前記比率とに基づいて、前記第2渋滞区間における前記第2移動体の通過に要する第1予想時間を算出し、前記非渋滞区間における前記第1移動体の通過時間と前記第1予想時間とを合算して、前記第2渋滞区間及び前記非渋滞区間における前記第2移動体の通過に要する第2予想時間を算出する処理と
を含み、コンピュータにより実行される位置情報処理方法。
(付記5)
第1移動体が通過した経路に含まれ、且つ第2移動体が既に通過した第1渋滞区間を特定し、当該第1渋滞区間における前記第1移動体の通過時間と当該第1渋滞区間における前記第2移動体の通過時間との比率を算出する処理と、
前記経路に含まれ、且つ前記第2移動体が未だ通過していない第2渋滞区間と非渋滞区間とを特定し、当該第2渋滞区間における前記第1移動体の通過時間と前記比率とに基づいて、前記第2渋滞区間における前記第2移動体の通過に要する第1予想時間を算出し、前記非渋滞区間における前記第1移動体の通過時間と前記第1予想時間とを合算して、前記第2渋滞区間及び前記非渋滞区間における前記第2移動体の通過に要する第2予想時間を算出する処理と
をコンピュータに実行させるための位置情報処理プログラム。