以下、地図情報処理装置等の実施形態について図面を参照して説明する。なお、実施の形態において同じ符号を付した構成要素は同様の動作を行うので、再度の説明を省略する場合がある。
(実施の形態1)
本実施の形態において、短時間で、精度高く、始点から目的地点までの最短経路を出力する地図情報処理装置について説明する。また、地図情報処理装置において、メッシュ列を選択する第1ステップ、メッシュ内の各点を用いて、最短経路を決定する第2ステップの、大きく2段階に処理が分かれる。また、地図情報処理装置において、一の道路種類(例えば、高速道路)を受け付け、当該道路を優先して、最短経路を決定する。また、地図情報処理装置において、一の道路種類(例えば、高速道路)を受け付け、当該道路以外の道路を優先して、最短経路を決定しても良い。なお、第1ステップにおいて、メッシュごとに、一の代表点を用いて、メッシュ列を選択することは好適である。
図1は、本実施の形態における地図情報処理装置1のブロック図である。地図情報処理装置1は、受付部11、地図情報格納部12、メッシュ情報格納部13、メッシュ情報取得部14、メッシュ選択部15、最短経路情報取得部16、最短経路情報出力部17を具備する。メッシュ情報取得部14は、メッシュ分割手段141、辺上地点情報取得手段142を具備する。メッシュ選択部15は、辺間距離算出手段151、メッシュ選択手段152を具備する。最短経路情報取得部16は、メッシュ内位置情報取得手段161、最短経路情報取得手段162を具備する。
受付部11は、始点を特定する始点情報および目的地点を特定する目的地点情報を受け付ける。受付部11は、目的地点情報を含む指示であり、始点から目的地点までの最短経路を出力する指示である最短経路出力指示を受け付けても良い。最短経路出力指示は、始点情報と目的地点情報を有することは好適である。また、最短経路出力指示は、一の道路種類情報を有しても良い。つまり、受付部11は、一の道路種類情報も受け付けても良い。ここで、始点情報とは、例えば、(緯度,経度)の位置情報、地名などである。始点情報は、スタート地点を示す情報であれば良い。また、始点情報は、図示しないナビゲーション装置または、図示しないGPS受信機から受け付けた現在位置を示す情報でも良い。目的地点情報とは、例えば、(緯度,経度)の位置情報、地名など、目的地点を示す情報であれば良い。また、「受け付ける」とは、ナビゲーション装置のタッチパネルを利用したユーザ入力の受け付け、キーボードやマウスなどの入力手段からの受け付け、外部装置からの受信、記録媒体からの読み出しなどである。道路種類情報とは、地点が存在する道路の種類を示す情報である。道路種類情報とは、「高速道路」「一般道路」などである。始点情報および目的地点情報等の入力手段は、キーボードやマウスやテンキーやメニュー画面によるもの等、何でも良い。受付部11は、キーボード等の入力手段のデバイスドライバーや、メニュー画面の制御ソフトウェア等で実現され得る。
地図情報格納部12は、地図情報を格納し得る。地図情報は、地図に関する情報であり、地点の位置を示す情報である位置情報を2以上有する。地図情報は、通常、地図の図柄情報を含む。図柄情報は、地図自体の情報であり、ビットマップ、ベクターデータ等、問わない。つまり、地図情報のフォーマット等は問わない。また、地図情報は、通常、位置情報と、当該位置情報に対応する地点が存在する道路の種類を示す道路種類情報とを対に有する地点情報を2以上有する。また、地図情報は、位置情報が示す地点の間のスコアを有する。スコアとは、地点間の距離や地点間の通行のし易さ、または通行のし難さを示す情報である。地図情報格納部12は、不揮発性の記録媒体が好適であるが、揮発性の記録媒体でも実現可能である。地図情報格納部12に地図情報が記憶される過程は問わない。例えば、記録媒体を介して地図情報が地図情報格納部12で記憶されるようになってもよく、通信回線等を介して送信された地図情報が地図情報格納部12で記憶されるようになってもよく、あるいは、入力デバイスを介して入力された地図情報が地図情報格納部12で記憶されるようになってもよい。
メッシュ情報格納部13は、メッシュ情報を2以上格納し得る。メッシュ情報とは、メッシュに関する情報である。メッシュ情報とは、メッシュを代表する1以上の地点に関する情報である。メッシュ情報は、通常、メッシュを代表する1以上の地点の位置情報である。また、メッシュとは、地図情報に対応する領域(例えば、「全体領域」という。)を2以上の部分領域に分割した領域である。メッシュは、通常、矩形領域である。メッシュは、例えば、12km×10kmの矩形領域である。ただし、メッシュは、他の形状の領域でも良い。メッシュ情報格納部13は、不揮発性の記録媒体が好適であるが、揮発性の記録媒体でも実現可能である。メッシュ情報格納部13にメッシュ情報が記憶される過程は問わない。例えば、記録媒体を介してメッシュ情報がメッシュ情報格納部13で記憶されるようになってもよく、通信回線等を介して送信されたメッシュ情報がメッシュ情報格納部13で記憶されるようになってもよく、あるいは、入力デバイスを介して入力されたメッシュ情報がメッシュ情報格納部13で記憶されるようになってもよい。
メッシュ情報取得部14は、地図情報格納部12の地図情報から、2以上のメッシュ情報を取得する。つまり、メッシュ情報取得部14は、通常、地図情報格納部12の地図情報を2以上のメッシュに分割し、2以上の各メッシュに対応するメッシュ情報を2以上取得する。メッシュ情報取得部14は、取得した2以上のメッシュ情報をメッシュ情報格納部13に蓄積する。メッシュ情報取得部14は、通常、MPUやメモリ等から実現され得る。メッシュ情報取得部14の処理手順は、通常、ソフトウェアで実現され、当該ソフトウェアはROM等の記録媒体に記録されている。但し、ハードウェア(専用回路)で実現しても良い。
メッシュ分割手段141は、地図情報に対応する領域を2以上の部分領域であるメッシュに分割する。ここで、分割するとは、通常、分割されたメッシュを特定する情報を取得することである。メッシュを特定する情報は、例えば、メッシュの左上座標と右下座標の情報や、メッシュIDなどである。なお、座標情報は、例えば、(緯度,経度)の情報である。また、座標情報は、例えば、平面上の座標情報(x,y)でも良い。メッシュ分割手段141は、通常、MPUやメモリ等から実現され得る。メッシュ分割手段141の処理手順は、通常、ソフトウェアで実現され、当該ソフトウェアはROM等の記録媒体に記録されている。但し、ハードウェア(専用回路)で実現しても良い。
辺上地点情報取得手段142は、2以上のメッシュごとに、1以上の辺上地点情報を、地図情報格納部12から取得する。辺上地点情報は、メッシュの各辺上の1以上の地点の位置を示す位置情報を有する。また、通常、辺上地点情報は、辺上地点の間のスコアも有する。なお、辺上地点情報取得手段142は、各メッシュの辺ごとに、一つの辺上地点情報(一つの点の情報)を取得することは好適である。経路を決定する際の計算量を少なくするためである。辺上地点情報は、例えば、(緯度,経度)の位置情報などであり、そのデータ形式は問わない。辺上地点情報取得手段142は、他のメッシュに対して取得した辺上地点情報と同じ辺上地点情報を、再度、取得する必要はない。辺上地点情報取得手段142は、通常、MPUやメモリ等から実現され得る。辺上地点情報取得手段142の処理手順は、通常、ソフトウェアで実現され、当該ソフトウェアはROM等の記録媒体に記録されている。但し、ハードウェア(専用回路)で実現しても良い。
メッシュ選択部15は、始点から目的地点までの最短経路を含む2以上のメッシュを選択する。メッシュ選択部15は、2以上のメッシュ情報を用いて、始点情報に対応する始点を含むメッシュから目的地点情報に対応する目的地点を含むメッシュであり、始点から目的地点までの最短経路を含む2以上のメッシュを選択する。ここでの最短経路は、地図情報処理装置1が最短経路であると判断すれば良く、実際に最短経路で無い場合もあり得る。また、ここでの最短経路は、2以上のメッシュ情報を用いて、最短であると判断され得る経路である。メッシュ選択部15が取得する2以上のメッシュの情報は、通常、メッシュの連結の順序の情報も含む。メッシュ選択部15が取得する2以上のメッシュの情報は、例えば、メッシュ識別子列などである。なお、通常、辺を共通に有するメッシュは2つであり、その一つは始点方向のメッシュ、他の一つは目的地点方向のメッシュである。また、メッシュ選択部15は、一の道路種類情報と対になる位置情報が示す地点を含むメッシュ、または一の道路種類情報と対にならない位置情報が示す地点を含むメッシュを、他のメッシュと比較して優先して選択することは好適である。ここで、一の道路種類情報は、通常、受付部11が受け付けた一の道路種類情報である。また、最短経路とは、地図情報処理装置1が最短経路であると判断すれば良く、実際に最短経路で無い場合もあり得る。メッシュ選択部15は、通常、MPUやメモリ等から実現され得る。メッシュ選択部15の処理手順は、通常、ソフトウェアで実現され、当該ソフトウェアはROM等の記録媒体に記録されている。但し、ハードウェア(専用回路)で実現しても良い。
辺間距離算出手段151は、2以上のメッシュ間の2以上の辺上地点情報を用いて、2以上のメッシュの各辺の間の距離である2以上の辺間距離を算出する。ここで、辺間距離算出手段151は、すべての辺間の距離を算出する必要はない。辺間距離算出手段151は、始点から目的地点までのルートを含む複数のメッシュを決定できれば良い。また、始点から辺上地点情報が示す辺上地点までの距離も辺間距離である、と考える。さらに、目的地点から辺上地点情報が示す辺上地点までの距離も辺間距離である、と考える。ここでも距離とは、上記のスコアと同意義である、と考えて良い。また、辺間距離の算出とは、辺間距離の取得でも良い。つまり、辺間距離の算出とは、結果として、辺間距離が得られれば良い。辺間距離算出手段151は、通常、MPUやメモリ等から実現され得る。辺間距離算出手段151の処理手順は、通常、ソフトウェアで実現され、当該ソフトウェアはROM等の記録媒体に記録されている。但し、ハードウェア(専用回路)で実現しても良い。
メッシュ選択手段152は、辺間距離算出手段151が算出した2以上の辺間距離を用いて、始点情報に対応する始点を含むメッシュから目的地点情報に対応する目的地点を含む始点から目的地点までの最短経路を含む2以上のメッシュを選択する。メッシュ選択手段152は、通常、以下のようにして、2以上のメッシュを選択する。第一に、メッシュ選択手段152は、2以上の辺間距離を用いて、始点から目的地点までの、辺上地点を通過する最短経路を取得する。そして、メッシュ選択手段152は、ここで言う最短経路を構成する、始点情報、1以上の辺上地点情報、目的地点情報を取得する。かかる場合のアルゴリズムは、例えば、ダイクストラ法である。第二に、メッシュ選択手段152は、最短経路が通過するメッシュに関する情報を取得する。メッシュに関する情報とは、例えば、メッシュの識別情報である。メッシュ選択手段152は、通常、MPUやメモリ等から実現され得る。メッシュ選択手段152の処理手順は、通常、ソフトウェアで実現され、当該ソフトウェアはROM等の記録媒体に記録されている。但し、ハードウェア(専用回路)で実現しても良い。
最短経路情報取得部16は、メッシュ選択部15により選択された2以上のメッシュ内の地点の位置情報を、地図情報格納部12から取得し、当該2以上のメッシュ内の地点の位置情報を用いて、始点から目的地点に進行する際の最短経路に関する情報である最短経路情報を取得する。なお、最短経路情報取得部16は、メッシュ選択部15により選択された2以上のメッシュ内の地点(例えば、位置情報とスコアなど)情報を取得することは好適である。さらに、最短経路情報取得部16は、メッシュ選択部15により選択された2以上のメッシュ内のすべての地点のみを利用して、始点から目的地点に進行する際の最短経路に関する情報である最短経路情報を取得することは好適である。また、最短経路情報取得部16は、2以上の位置情報からダイクストラ法を用いて、始点から目的地点までの最短経路の情報を取得しても良いし、A*(エー・スター法)を用いて、始点から目的地点までの最短経路の情報を取得しても良い。
なお、最短経路情報取得部16は、メッシュ選択部15により選択された2以上の各メッシュに対して、メッシュ内最短経路情報を取得しても良い。メッシュ内最短経路情報とは、メッシュ内の最短経路の情報である。メッシュ内最短経路情報は、以下の3つの場合があり得る。第一は、始点から、始点を含むメッシュと次のメッシュとの境界辺に進行する際の最短経路に関する情報である。つまり、第一は、始点から辺上地点への最短経路に関する情報である。第二は、前のメッシュとの境界辺から次のメッシュとの境界辺に進行する際の最短経路に関する情報である。つまり、第二は、辺上地点から辺上地点への最短経路に関する情報である。第三は、目的地点を含むメッシュと前のメッシュとの境界辺から目的地点に進行する際の最短経路に関する情報である。つまり、第三は、辺上地点から目的地点への最短経路に関する情報である。最短経路情報取得部16は、通常、MPUやメモリ等から実現され得る。最短経路情報取得部16の処理手順は、通常、ソフトウェアで実現され、当該ソフトウェアはROM等の記録媒体に記録されている。但し、ハードウェア(専用回路)で実現しても良い。
メッシュ内位置情報取得手段161は、メッシュ選択部15により選択された2以上のメッシュごとに、メッシュ内の2以上の地点の情報(例えば、位置情報とスコア)を、地図情報格納部12から取得する。ここで、2以上の位置情報とは、通常、地図情報が有する、メッシュ内のすべての位置情報であるが、選択的に取得された一部の位置情報でも良い趣旨である。メッシュ内位置情報取得手段161は、一の道路種類情報と対になる位置情報、または一の道路種類情報と対にならない位置情報を、他の位置情報と比較して優先して選択することは好適である。メッシュ内位置情報取得手段161は、通常、MPUやメモリ等から実現され得る。メッシュ内位置情報取得手段161の処理手順は、通常、ソフトウェアで実現され、当該ソフトウェアはROM等の記録媒体に記録されている。但し、ハードウェア(専用回路)で実現しても良い。
最短経路情報取得手段162は、メッシュ内位置情報取得手段161が取得した地点の情報を用いて、始点から目的地点に進行する際の最短経路に関する情報である最短経路情報を取得する。最短経路情報取得手段162は、2以上の位置情報を用いて、メッシュ内最短経路情報を、2以上の各メッシュごとに取得しても良い。2以上の位置情報は、メッシュ内位置情報取得手段161が取得した位置情報である。メッシュ内最短経路情報は、前のメッシュとの境界辺から次のメッシュとの境界辺に進行する際の最短経路に関する情報など、上述した3種類の態様があり得る。また、最短経路情報取得手段162は、2以上の位置情報からダイクストラ法を用いて、始点から目的地点までの最短経路の情報を取得しても良いし、A*(エー・スター法)を用いて、始点から目的地点までの最短経路の情報を取得しても良い。最短経路情報取得手段162は、通常、MPUやメモリ等から実現され得る。最短経路情報取得手段162の処理手順は、通常、ソフトウェアで実現され、当該ソフトウェアはROM等の記録媒体に記録されている。但し、ハードウェア(専用回路)で実現しても良い。
最短経路情報出力部17は、最短経路情報取得部16が取得した2以上のメッシュ内最短経路情報を出力する。つまり、最短経路情報出力部17は、始点から目的地点までの最短経路を出力する。ここで、出力とは、ディスプレイへの表示、プロジェクターを用いた投影、プリンタへの印字、音出力、外部の装置への送信、記録媒体への蓄積、他の処理装置や他のプログラム等への処理結果の引渡し等を含む概念である。最短経路情報出力部17は、ディスプレイやスピーカー等の出力デバイスを含むと考えても含まないと考えても良い。最短経路情報出力部17は、出力デバイスのドライバーソフトまたは、出力デバイスのドライバーソフトと出力デバイス等で実現され得る。
次に、地図情報処理装置の動作について図2のフローチャートを用いて説明する。なお、図2のフローチャートの動作開始前に、メッシュ情報取得部14は、地図情報格納部12の地図情報から、2以上のメッシュ情報を取得した、とする。そして、メッシュ情報取得部14は、当該2以上のメッシュ情報を、メッシュ情報格納部13に格納した、とする。
(ステップS201)受付部11は、始点情報および目的地点情報を有する最短経路出力指示を受け付けたか否かを判断する。最短経路出力指示を受け付ければステップS202に行き、最短経路出力指示を受け付けなければステップS201に戻る。
(ステップS202)メッシュ選択部15は、始点から目的地点までの最短経路を含む2以上のメッシュを選択する。このメッシュ選択処理の詳細について、図3のフローチャートを用いて説明する。
(ステップS204)最短経路情報取得部16は、最短経路情報を取得する。最短経路情報取得処理について、図4のフローチャートを用いて説明する。
(ステップS204)最短経路情報出力部17は、最短経路情報取得部16が取得した2以上の最短経路情報を出力する。ここで、最短経路情報の出力態様は問わない。最短経路情報出力部17は、現在の位置(例えば、図示しないナビゲーション装置から与えられる自動車の現在走行位置)を含んで表示されている地図上の道路であり、最短経路情報が示す道路の一部を出力しても良い。ステップS201に戻る。
なお、図2のフローチャートにおいて、電源オフや処理終了の割り込みにより処理は終了する。
次に、ステップS202のメッシュ選択処理の詳細について、図3のフローチャートを用いて説明する。
(ステップS301)メッシュ選択部15は、カウンタiに1を代入する。
(ステップS302)メッシュ選択部15は、メッシュ情報格納部13に格納されているメッシュ情報に対応するi番目のメッシュが存在するか否かを判断する。i番目のメッシュが存在すればステップS303に行き、i番目のメッシュが存在しなければステップS307に行く。
(ステップS303)メッシュ選択部15は、ステップS201で受付部11が受け付けた最短経路出力指示の中に、道路種類情報が含まれるか否かを判断する。道路種類情報が含まれればステップS304に行き、道路種類情報が含まれなければステップS305に行く。
(ステップS304)メッシュ選択部15の辺間距離算出手段151は、i番目のメッシュの辺上地点情報であり、道路種類情報に対応する辺上地点情報を取得する。なお。ここで、辺間距離算出手段151は、既に取得された辺の上の辺上地点情報は取得しない。また、道路種類情報に対応する辺上地点情報が存在しない場合、辺間距離算出手段151は、道路種類情報に対応しない辺上地点情報を取得する。つまり、ここでは、辺間距離算出手段151は、道路種類情報に対応する辺上地点情報を優先して取得する。ステップS306に行く。
(ステップS305)辺間距離算出手段151は、i番目のメッシュの辺上地点情報をすべて取得する。なお、辺間距離算出手段151は、(i−1)番目のメッシュの辺上地点情報に対応する道路種類情報と同一の道路種類情報と対になるi番目のメッシュの辺上地点情報のみを取得することは好適である。
(ステップS306)メッシュ選択部15は、カウンタiを1、インクリメントする。ステップS302に戻る。
(ステップS307)辺間距離算出手段151は、すべてのメッシュの各々に対して、メッシュ内の辺間距離を算出し、少なくとも一時蓄積する。辺間距離とは、メッシュ内の辺上地点と辺上地点の間の距離であり、道路で繋がっている辺上地点と辺上地点の間の距離である。また、始点を含むメッシュに関して、辺間距離とは、始点からメッシュの各辺の辺上地点までの間の距離であり、始点と道路で繋がっている辺上地点との間の距離である。また、目的地点を含むメッシュに関して、辺間距離とは、メッシュの各辺の辺上地点から目的地点までの間の距離であり、目的地点と道路で繋がっている辺上地点との間の距離である。さらに、辺間距離とは、同一の辺の地点間の距離である場合もある。
(ステップS308)メッシュ選択手段152は、ステップS307で蓄積された複数の辺間距離を用いて、始点から目的地点までの最短経路を決定する。この最短経路は、始点、目的地点、辺上地点のみを用いて算出された最短経路であり、ここでは、仮最短経路という。
(ステップS309)メッシュ選択手段152は、ステップS308で決定した仮最短経路が通過するすべてのメッシュの識別情報を取得し、少なくとも一時蓄積する。なお、メッシュの識別情報とは、メッシュ情報格納部13に格納されているメッシュ情報の識別子でも良いし、メッシュ(例えば、矩形)を特定する左上点の座標値と右下点の座標値でも良いし、メッシュ内の地点の情報(例えば、メッシュ内の辺上地点情報の集合)でも良い。メッシュの識別情報とは、メッシュを識別できる情報であれば良い。また、メッシュの識別情報がメッシュ内の辺上地点情報の集合である場合、ステップS310の処理は不要となる。
(ステップS310)メッシュ選択手段152は、仮最短経路における各メッシュの辺上地点情報の集合を、少なくとも一時蓄積する。上位処理にリターンする。
次に、ステップS205のメッシュ内最短経路情報を取得する処理例の詳細について、図4のフローチャートを用いて説明する。
(ステップS401)最短経路情報取得部16は、カウンタiに1を代入する。
(ステップS402)メッシュ内位置情報取得手段161は、は、ステップS202で選択されたメッシュの中に、i番目のメッシュが存在するか否かを判断する。i番目のメッシュが存在すればステップS403に行き、i番目のメッシュが存在しなければステップS405に行く。
(ステップS403)メッシュ内位置情報取得手段161は、は、i番目のメッシュのメッシュ内の地点の情報(例えば、位置情報とスコア)を取得する。
(ステップS404)最短経路情報取得部16は、カウンタiを1、インクリメントする。ステップS402に戻る。
(ステップS405)最短経路情報取得手段162は、始点情報および目的地点情報(通常、位置情報)を取得する。
(ステップS406)最短経路情報取得手段162は、始点情報が示す始点から終点情報が示す終点までの最短経路の情報を、ステップS403で取得された地点の情報、およびステップS405で取得された始点情報および目的地点情報を用いて取得する。ここで、最短経路情報取得手段162は、ダイクストラ法を用いて、始点から目的地点までの最短経路の情報を取得することが好適であるが、A*(エー・スター法)を用いて、始点から目的地点までの最短経路の情報を取得しても良い。上位処理にリターンする。
以下、本実施の形態における地図情報処理装置1の具体的な動作について説明する。まず、地図情報処理装置1の動作の概念について説明する。
今、始点(S)から目的地点(G)までの最短経路を出力する場合を考える。上述したダイクストラ法で、経路探索を行うと、膨大なメモリ容量が必要になり、不都合が大きい。また、ダイクストラ法では、膨大な経路探索時間が必要になる。また、上述したA*法で目的地にたどり着くまで探索を行うと、図5に示すように、常に直線的に経路を決定するため、最適な経路にならない場合がある。つまり、A*法では、経路51を最短経路と決定する。一方、実際の最適な経路(最短経路)は、経路52である。なお、始点(S)は神戸であり、目的地点(G)は知多半島のある地点である。
地図情報処理装置1は、かかる従来の経路決定のアルゴリズムの課題を解決するものである。
地図情報処理装置1において、地図情報から、その部分領域である複数のメッシュを作成する。そして、地図情報処理装置1では、第一ステップとして、メッシュを1ノードとしたデータを作成し、詳細に探索するメッシュを限定して、決定する。ここで、第1ステップでは、例えば、ダイクストラ法を用いて、詳細に探索するメッシュを決定することは好適である。ただし、第一ステップにおいて、A*法などの他のアルゴリズムを用いても良い。地図情報処理装置1は、第1ステップにおいて、図6の地図の網掛けのメッシュを選択する。なお、図6において、各矩形はメッシュである。ここで、図6のメッシュは、例えば、約12km×10kmの矩形である。そして、図6における地図情報内には5003のメッシュが存在している。また、図6は、すべてのメッシュを表示しているわけではなく、概念図である。
次に、地図情報処理装置1では、第2ステップとして、選択されたメッシュ内の各点を用いて、始点から目的地点までの最短経路を決定する。第2ステップでは、例えば、ダイクストラ法を用いて、メッシュ内の最短経路を決定することは好適である。ただし、第2ステップにおいて、A*法などの他のアルゴリズムを用いても良い。地図情報処理装置1は、第2ステップにおいて、図5の経路52を選択し、出力する。なお、第2ステップにおいて、さらに、各メッシュをさらに分割し、サブメッシュを構成し、サブメッシュを選択し(ここまでは、上記の第1ステップの処理)、各サブメッシュに対して、ダイクストラ法やA*法などを用いて、最短経路を決定しても良い。つまり、メッシュに分割して、メッシュを選択する処理(第1ステップの処理)を2回以上、再帰的に行っても良い。そして、選択されたメッシュ(サブメッシュや、さらに細かいメッシュでも良い)の各地点の情報を用いて、始点から目的地点までの最短経路を取得するようにしても良い(この処理は第2ステップの処理)。
以下、地図情報処理装置1の具体的な動作の詳細について説明する。図7は、地図情報格納部12が保持している地図情報を構成する地点情報管理表である。地点情報管理表は、1以上の地点情報を保持している。地点情報管理表は、「ID」「地点情報」を有するレコードを1以上保持している。「ID」は、地点情報を識別する情報である。「地点情報」は、「位置情報」「道路種類情報」「接続地点ID」を有する。「位置情報」は、地図上の地点の位置を識別する情報である。「位置情報」は、例えば、(緯度,経度)である。また、「位置情報」は、例えば、(地図上のX座標値,地図上のY座標値)である。その他、「位置情報」のフォーマット等は問わない。「道路種類情報」は、地点が存在する道路の種類を識別する情報である。ここでは、「道路種類情報」が「1」の場合、その道路の種類は「高速道路」である。また、「道路種類情報」が「0」の場合、その道路の種類は「一般道路」である。なお、ここでは、道路種類情報は、2種類であるが、3種類以上に分類する情報であっても良い。例えば、道路種類情報は、高速道路「1」、国道「2」、県道「3」、その他の一般道路「4」などでも良い。「接続地点ID」は、その地点と直接に繋がっている地点(地点情報で識別される地点)のIDを示す。「接続地点ID」は、3以上の地点IDを有し得る、交差点の中心部の地点は、例えば、4つの接続地点IDを有する。したがって、図7の地点情報管理表は、非正規のデータベースになっている。また、地図情報格納部12が格納している地図情報は、通常、図5等に示すような地図の図柄情報を有する。図柄情報は、ベクターでもビットマップでもよく、そのデータ構造は問わない。また、ここでの地図情報は一例であり、地図情報のデータ構造は問わないことは言うまでもない。さらに、地点情報管理表は、地点間のコストを含むことは好適である。
また、図8は、メッシュ情報格納部13に格納されているメッシュ区分情報管理表である。メッシュ区分情報管理表は、各メッシュの領域を識別する情報(「メッシュ領域識別情報」という)を管理している。メッシュ区分情報管理表は、「メッシュID」「左上地点」「右下地点」を有するレコードを1以上保持している。「メッシュID」は、メッシュを識別する情報である。「メッシュID」の「1A」は、図6の左上のメッシュを示す。ここでは、「メッシュID」は、地図をメッシュに区分した際の縦のアドレス(数値)と、横のアドレス(大文字のアルファベット)で示されている。「左上地点」は、メッシュの左上隅の地点を識別する情報である。「右下地点」は、メッシュの右下隅の地点を識別する情報である。「左上地点」および「右下地点」は、ここでは、(緯度,経度)である。
また、図9は、メッシュ情報格納部13に格納されているメッシュ情報管理表である。メッシュ情報管理表は、1以上のメッシュ情報を管理している。メッシュ情報管理表は、「メッシュID」と「メッシュ情報」を有する。「メッシュ情報」は、メッシュの各辺上の地点を示す辺上地点IDを有する。「メッシュ情報」は、ここでは「上辺の辺上地点ID」「下辺の辺上地点ID」「左辺の辺上地点ID」「右辺の辺上地点ID」を有する。「上辺の辺上地点ID」は、メッシュの上部の辺上に存在する地点IDである。「下辺の辺上地点ID」は、メッシュの下部の辺上に存在する地点IDである。「左辺の辺上地点ID」は、メッシュの左部の辺上に存在する地点IDである。「右辺の辺上地点ID」は、メッシュの右部の辺上に存在する地点IDである。「上辺の辺上地点ID」「下辺の辺上地点ID」「左辺の辺上地点ID」「右辺の辺上地点ID」内のデータは、一つの地点IDでも良いし、複数の地点IDでも良い。なお、図9において、重複して同一の地点IDを保持していなくても良い。
なお、図8のメッシュ区分情報管理表、および図9のメッシュ情報管理表は、メッシュ情報取得部14が、地図情報格納部12の地図情報から、構成した情報である。つまり、メッシュ情報取得部14は、予め決められたルールに従ってメッシュIDを生成する。そして、メッシュ情報取得部14は、地図情報格納部12の地図情報を予め決められたサイズ、形状の部分領域に分割し、分割した各部分領域(メッシュ)の左上地点の(緯度,経度)を取得し、かつ、各部分領域(メッシュ)の右下地点の(緯度,経度)を取得する。そして、各メッシュの左上地点の(緯度,経度)、右下地点の(緯度,経度)、および対応するメッシュIDを対にして、メッシュ区分情報管理表に書き込む。
次に、メッシュ情報取得部14は、各メッシュごとに、4つの各辺の上に存在する地点IDを地図情報(図7参照)から取得し、図9のメッシュ情報管理表に書き込む。なお、地点IDは、図7の「ID」である。また、メッシュの左上地点および右下地点の情報が分かっているので、メッシュ情報取得部14は、メッシュの4辺(4つの線)の情報(始点、終点の情報)は取得できる。また、4辺(4つの線)の情報が取得され得るので、メッシュ情報取得部14が、その辺上に存在する地点IDを、図7の地点情報管理表から取得することは容易である。かかる技術は公知技術であるので、詳細な説明を省略する。
かかる状況において、ユーザは、目的地点を地図情報処理装置1に入力した、とする。そして、ユーザは、地図情報処理装置1に対して、最短経路出力の指示を入力した、とする。なお、ユーザが入力する目的地点は、地名でも良いし、(緯度,経度)でも良いし、住所等でも良い。
次に、図示しないナビゲーション装置が、現在位置の情報である始点情報(緯度,経度)を取得し、地図情報処理装置1に渡した、とする。
次に、地図情報処理装置1の受付部11は、始点情報および目的地点情報を有する最短経路出力指示を受け付ける。なお、受付部11は、ユーザが入力した目的地点を(緯度,経度)に変換する、とする。
次に、メッシュ選択部15は、始点から目的地点までの最短経路を含む2以上のメッシュを、以下のように選択する。
つまり、まず、メッシュ選択部15の辺間距離算出手段151は、すべての辺間(辺上の隣接する地点の間であり、道路で繋がっている地点の間)の距離を算出する。そして、辺間距離算出手段151は、概念的には、図10に示すようなノード(地点)間のリンクと、リンクの距離(辺間距離)を得て、辺間距離と、リンクの始点の情報(辺上地点情報)と、終点の情報(辺上地点情報)とを対にして、メモリ等の記憶媒体に蓄積する。なお、図10において、リンクの距離については、一部の値のみを記載している。なお、辺間の距離は、一の辺上の2地点間の距離である場合もある。また、上述したように、辺間の距離は、始点からメッシュの各辺の辺上地点までの間の距離である場合もある。さらに、上述したように、辺間の距離は、メッシュの各辺の辺上地点から目的地点までの間の距離である場合もある。また、辺間距離算出手段151は、予め格納されている地点間のコストを読み出して、辺間距離としても良い。
次に、メッシュ選択手段152は、記憶媒体に蓄積した複数の辺間距離を用いて、始点から目的地点までの仮最短経路を決定する。図11において、この仮最短経路は、太線で示している。
次に、メッシュ選択手段152は、決定した仮最短経路が通過するすべてのメッシュの識別情報を取得し、少なくとも一時蓄積する。メッシュ選択手段152が取得したメッシュの概念図を、図12に示す。図12において、網掛けのメッシュが、選択されたメッシュである。そして、メッシュ選択手段152は、図13に示すように、少なくとも一時的に、メモリ等の記憶媒体に、メッシュ識別子の集合を記録する。なお、メッシュ識別子の集合は格納されている順序が、始点から目的地点に向かうメッシュの順序である。ここで、メッシュ選択手段152は、13のメッシュを選択したこととなる。
次に、1番目から13番目までの各メッシュに対して、最短経路情報取得部16は、メッシュ内最短経路情報を取得する。
つまり、まず、最短経路情報取得部16のメッシュ内位置情報取得手段161は、最短経路出力指示に含まれる始点情報を取得する。
次に、メッシュ内位置情報取得手段161は、1番目から13番目までのメッシュ内のすべての地点の位置情報、または地点間の距離を示す距離情報(コストとも言う。)を取得し、少なくとも一時蓄積する。
そして、次に、最短経路情報取得手段162は、始点情報および目的地点情報を取得する。
そして、最短経路情報取得手段162は、始点情報が示す始点から終点情報が示す終点までの最短経路の情報を、取得された13のメッシュ内の地点の情報、および始点情報と目的地点情報を用いて取得する。ここで、最短経路情報取得手段162は、ダイクストラ法を用いて、始点から目的地点までの最短経路の情報を取得し、記憶媒体に蓄積する。
次に、最短経路情報出力部17は、最短経路情報取得部16が取得し、記憶媒体に蓄積した最短経路情報を出力する。その結果、ユーザは、例えば、図14に示す最短経路の情報を得る。
以上、本実施の形態によれば、地図情報処理装置1は、始点から目的地点までの最短経路を出力する際に、各メッシュの代表地点(ここでは、辺上地点情報)を用いて、メッシュ列を選択する第1ステップ、メッシュ内の各点を用いて、最短経路を決定する第2ステップの、大きく2段階に処理を分けて実行する。その結果、短時間で、精度高く、始点から目的地点までの最短経路を出力することができる。
なお、本実施の形態において、上述したメッシュ列を選択する処理のアルゴリズムは一例であり、問わないことは言うまでもない。また、本実施の形態において、上述したメッシュ内の最短経路を取得する処理のアルゴリズムは一例であり、問わないことは言うまでもない。
また、本実施の形態の具体例によれば、道路種類情報は考慮しなかった。しかし、受付部11が道路種類情報を受け付けた場合、当該道路種類情報で識別される道路を優先して、メッシュ選択部15がメッシュを選択したり、最短経路情報取得部16がメッシュ内最短経路を取得したりする。または、受付部11が道路種類情報を受け付けた場合、当該道路種類情報で識別される道路以外の道路を優先して、メッシュ選択部15がメッシュを選択したり、最短経路情報取得部16がメッシュ内最短経路を取得したりしても良い。
また、本実施の形態において、第1ステップにおいて、メッシュの各辺間の連結の距離を算出し、距離が短い辺を有するメッシュ列を選択するアルゴリズムであった。しかし、実施の形態2で説明するアルゴリズムなど、他のアルゴリズムでも良い。メッシュの選択アルゴリズムは問わないことは、他の実施の形態でも同様である。
また、本実施の形態において、第2ステップにおけるアルゴリズムについても、実施の形態2で説明するアルゴリズムなど、他のアルゴリズムでも良い。かかることも、他の実施の形態でも同様である。
さらに、本実施の形態における処理は、ソフトウェアで実現しても良い。そして、このソフトウェアをソフトウェアダウンロード等により配布しても良い。また、このソフトウェアをCD−ROMなどの記録媒体に記録して流布しても良い。なお、このことは、本明細書における他の実施の形態においても該当する。なお、本実施の形態における地図情報処理装置を実現するソフトウェアは、以下のようなプログラムである。つまり、このプログラムは、記憶媒体に、地点の位置を示す情報である位置情報を2以上有する地図情報と、地図情報に対応する領域を2以上の部分領域に分割した領域であるメッシュに関するメッシュ情報とが格納されており、コンピュータを、始点を特定する始点情報および目的地点を特定する目的地点情報を受け付ける受付部と、前記2以上のメッシュ情報を用いて、前記始点情報に対応する始点を含むメッシュから前記目的地点情報に対応する目的地点を含むメッシュであり、前記始点から前記目的地点までの最短経路を含む2以上のメッシュを選択するメッシュ選択部と、前記メッシュ選択部により選択された2以上のメッシュ内の地点の位置情報を、前記地図情報格納部から取得し、当該2以上のメッシュ内の地点の位置情報を用いて、前記始点から前記目的地点に進行する際の最短経路に関する情報である最短経路情報を取得する最短経路情報取得部と、前記最短経路情報取得部が取得した2以上のメッシュ内最短経路情報を出力する最短経路情報出力部として機能させるためのプログラム、である。
また、上記プログラムにおいて、コンピュータを、前記地図情報を2以上のメッシュに分割し、当該2以上の各メッシュに対応するメッシュ情報を2以上取得するメッシュ情報取得部としてさらに機能させ、前記メッシュ情報は、前記メッシュ情報取得部が取得したメッシュ情報であるプログラムであることは好適である。
また、上記プログラムにおいて、前記メッシュ情報取得部は、前記地図情報に対応する領域を2以上の部分領域であるメッシュに分割するメッシュ分割手段と、当該2以上のメッシュごとに、メッシュの各辺上の1以上の地点の位置を示す位置情報である1以上の辺上地点情報を、前記地図情報格納部から取得する辺上地点情報取得手段とを具備し、前記メッシュ選択部は、前記2以上のメッシュ間の2以上の辺上地点情報を用いて、前記2以上のメッシュの各辺の間の距離である2以上の辺間距離を算出する辺間距離算出手段と、前記2以上の辺間距離を用いて、前記始点情報に対応する始点を含むメッシュから前記目的地点情報に対応する目的地点を含むメッシュであり、前記始点から前記目的地点までの最短経路を含む2以上のメッシュを選択するメッシュ選択手段とを具備するものとして、コンピュータを機能させるためのプログラムであることは好適である。
また、上記プログラムにおいて、前記最短経路情報取得部は、前記メッシュ選択部により選択された2以上のメッシュごとに、当該メッシュ内の2以上の地点の位置情報を、前記地図情報格納部から取得するメッシュ内位置情報取得手段と、前記2以上の地点の位置情報を用いて、前記始点から前記目的地点までの最短経路に関する情報である最短経路情報を取得する最短経路情報取得手段とを具備するものとして、コンピュータを機能させるためのプログラムであることは好適である。
また、上記プログラムにおいて、前記最短経路情報取得手段は、前記2以上の位置情報からダイクストラ法を用いて、前記始点から前記目的地点までの最短経路の情報を取得するものとて、コンピュータを、機能させるためのプログラムであることは好適である。
また、上記プログラムにおいて、前記地図情報は、前記位置情報と、当該位置情報に対応する地点が存在する道路の種類を示す道路種類情報とを対に有する地点情報を2以上有し、前記メッシュ選択部は、一の道路種類情報と対になる位置情報が示す地点を含むメッシュ、または一の道路種類情報と対にならない位置情報が示す地点を含むメッシュを、他のメッシュと比較して優先して選択するものとして、コンピュータを機能させるためのプログラムであることは好適である。
さらに、上記プログラムにおいて、一の道路種類情報を受け付ける受付部として、コンピュータをさらに機能させ、前記メッシュ選択部は、前記受付部が受け付けた一の道路種類情報と対になる位置情報が示す地点を含むメッシュ、または前記受付部が受け付けた一の道路種類情報と対にならない位置情報が示す地点を含むメッシュを、他のメッシュと比較して優先して選択するものとして、コンピュータを機能させるためのプログラムであることは好適である。
(実施の形態2)
本実施の形態において、短時間で、精度高く、始点から目的地点までの最短経路を出力する地図情報処理装置について説明する。また、地図情報処理装置において、メッシュ列を選択する第1ステップ、メッシュ内の各点を用いて、最短経路を決定する第2ステップの、大きく2段階に処理が分かれる。また、地図情報処理装置において、一の道路種類(例えば、高速道路)を受け付け、当該道路を優先して、最短経路を決定する。
また、特に、本実施の形態において、第1ステップにおいて、メッシュの重心に近い点をメッシュの代表点として、距離が短いメッシュ列を選択するアルゴリズムを説明する。また、本実施の形態において、第2ステップにおいて、選択されたメッシュを直線的に並べた後に、メッシュ内の全点を用いて、経路探索し、距離が短い経路を出力するアルゴリズムを説明する。
図15は、本実施の形態における地図情報処理装置2のブロック図である。地図情報処理装置2は、受付部11、地図情報格納部12、メッシュ情報格納部13、メッシュ情報取得部24、メッシュ選択部25、最短経路情報取得部26、最短経路情報出力部17を具備する。
メッシュ情報取得部24は、メッシュ分割手段141、重心地点情報取得手段242を具備する。メッシュ選択部25は、重心距離算出手段251、メッシュ選択手段252を具備する。最短経路情報取得部26は、メッシュ直線化手段261、最短経路情報取得手段262を具備する。
メッシュ情報取得部24は、地図情報格納部12の地図情報から、2以上のメッシュ情報を取得する。つまり、メッシュ情報取得部14は、通常、地図情報格納部12の地図情報を2以上のメッシュに分割し、2以上の各メッシュに対応するメッシュ情報を2以上取得する。ここで、メッシュ情報は、当該メッシュの重心に最も近い地点の位置を示す位置情報である重心地点情報を含む。メッシュ情報取得部24は、通常、MPUやメモリ等から実現され得る。メッシュ情報取得部24の処理手順は、通常、ソフトウェアで実現され、当該ソフトウェアはROM等の記録媒体に記録されている。但し、ハードウェア(専用回路)で実現しても良い。
重心地点情報取得手段242は、2以上のメッシュごとに、メッシュの重心に最も近い地点の位置を示す位置情報である重心地点情報を、地図情報格納部12から取得する。重心地点情報取得手段242は、2以上のメッシュごとに、目的地点に向かう方向の点であり、メッシュの重心に最も近い地点の位置を示す位置情報である重心地点情報を、地図情報格納部12から取得しても良い。なお、始点を含むメッシュの場合は、通常、重心地点情報取得手段242は、始点情報を重心地点情報として取得する。また、目的地点を含むメッシュの場合は、通常、重心地点情報取得手段242は、目的地点情報を重心地点情報として取得する。重心地点情報取得手段242は、メッシュの内部の一点(辺上の点ではない一点)を取得すれば良い。重心地点情報取得手段242は、通常、MPUやメモリ等から実現され得る。重心地点情報取得手段242の処理手順は、通常、ソフトウェアで実現され、当該ソフトウェアはROM等の記録媒体に記録されている。但し、ハードウェア(専用回路)で実現しても良い。
重心距離算出手段251は、2以上のメッシュ間の2以上の重心地点情報を用いて、2以上のメッシュの間の距離である2以上の重心距離を算出する。メッシュ間の距離は、すべての重心地点間の距離でも良いし、一部の重心地点間の距離でも良い。また、重心距離算出手段251は、直接または間接的に繋がっている重心地点間の距離のみを算出することは好適である。重心距離算出手段251は、始点から目的地点までのルートを含む複数のメッシュを決定できるように、重心地点間の距離を算出すれば良い。2つの重心地点の距離を算出するアルゴリズムは、例えば、以下である。つまり、2つの重心地点の一方を始点、他方を終点とする。そして、始点から終点までの距離を、地図情報格納部12の地図情報に含まれる位置情報を用いて算出する。この算出アルゴリズムは、例えば、A*法やダイクストラ法である。重心距離算出手段251は、通常、MPUやメモリ等から実現され得る。重心距離算出手段251の処理手順は、通常、ソフトウェアで実現され、当該ソフトウェアはROM等の記録媒体に記録されている。但し、ハードウェア(専用回路)で実現しても良い。
メッシュ選択手段252は、2以上の重心距離を用いて、始点情報に対応する始点を含むメッシュから目的地点情報に対応する目的地点を含む始点から目的地点までの最短経路を含む2以上のメッシュを選択する。メッシュ選択手段252は、通常、MPUやメモリ等から実現され得る。メッシュ選択手段252の処理手順は、通常、ソフトウェアで実現され、当該ソフトウェアはROM等の記録媒体に記録されている。但し、ハードウェア(専用回路)で実現しても良い。
メッシュ直線化手段261は、メッシュ選択部25により選択された2以上の各メッシュが仮想的に直線上に並ぶように、前のメッシュに対して上および下に存在するメッシュ、または前のメッシュに対して左および右に存在するメッシュを回転、または移動し、仮想的な直線のメッシュ群の情報を取得する。メッシュが矩形である場合、通常、回転の角度は90度である。ここで、メッシュの回転や移動とは、メッシュ内の地点の位置情報を座標変換し、変換後の位置情報を取得する処理である。また、メッシュ群の情報とは、回転や移動させたメッシュ内の地点については座標変換後の位置情報であり、他のメッシュ内の地点については、そのまま位置情報である。なお、メッシュ直線化手段261が行う処理を直列化処理という。また、一のメッシュを回転または移動する処理をメッシュ移動処理という。メッシュ直線化手段261は、通常、MPUやメモリ等から実現され得る。メッシュ直線化手段261の処理手順は、通常、ソフトウェアで実現され、当該ソフトウェアはROM等の記録媒体に記録されている。但し、ハードウェア(専用回路)で実現しても良い。
最短経路情報取得手段262は、仮想的な直線のメッシュ群の情報に含まれる2以上の地点の位置情報を用いて、始点から目的地点までの最短経路の情報を取得する。最短経路情報取得手段262は、2以上の地点の位置情報からダイクストラ法を用いて、始点から目的地点までの最短経路の情報を取得することは好適である。ここで、位置情報とは、座標変換された位置情報を含む。また、最短経路の情報とは、例えば、位置情報の集合である。また、最短経路の情報に含まれる位置情報は、座標変換された位置情報ではなく、元に戻された位置情報である。つまり、最短経路情報取得手段262は、座標変換されている位置情報を、元に戻す(例えば、逆に90度回転させる等)処理を行う。また、最短経路情報取得手段262は、通常、仮想的な直線のメッシュ群の情報に含まれる2以上の地点の位置情報とコスト(距離情報)を用いて、始点から目的地点までの最短経路の情報を取得する。最短経路情報取得手段262は、通常、MPUやメモリ等から実現され得る。最短経路情報取得手段262の処理手順は、通常、ソフトウェアで実現され、当該ソフトウェアはROM等の記録媒体に記録されている。但し、ハードウェア(専用回路)で実現しても良い。
次に、地図情報処理装置の動作について、図16のフローチャートを用いて説明する。図16のフローチャートにおいて、図2のフローチャートと同一の処理について、説明を省略する。
(ステップS1601)メッシュ選択部25は、メッシュ選択処理を行う。メッシュ選択処理について、図17のフローチャートを用いて説明する。
(ステップS1602)メッシュ直線化手段261は、i番目のメッシュを移動(回転を含む)する必要があるか否かを判断する。移動する必要があればステップS1603に行き、移動する必要がなければステップS206に行く。ここで、メッシュ直線化手段261は、以前に移動を行ったメッシュがあれば、次のメッシュも移動する必要があると判断する。また、メッシュ直線化手段261は、以前に移動を行ったメッシュがない場合でも、i番目のメッシュが前のメッシュに対して、目的地点を含むメッシュと方向が異なる(一直線で結べない)場合には、移動する必要があると判断する。
(ステップS1603)メッシュ直線化手段261は、i番目のメッシュを移動(回転を含む)する。例えば、横に(例えば、左から右に)メッシュを並べている場合は、メッシュ直線化手段261は、i番目のメッシュを、横に並ぶように回転させる。かかる場合、メッシュ直線化手段261は、メッシュ内のすべての地点情報が有する位置情報を回転させる。また、例えば、横にメッシュを並べている場合は、メッシュ直線化手段261は、i番目のメッシュを、平行移動する。かかる場合、メッシュ直線化手段261は、メッシュ内のすべての地点情報が有する位置情報を平行移動させる。かかる処理は、公知技術(自明)であるので、詳細な説明を省略する。
(ステップS1604)メッシュ直線化手段261が座標変換した位置情報を用いて、最短経路情報取得手段262は、始点から目的地点までの最短経路を取得する。かかる最短経路取得アルゴリズムは、ダイクストラ法が好適であるが、A*法など問わない。
(ステップS1605)最短経路情報取得手段262は、ステップS1604で得た最短経路を構成する地点情報の位置情報を、元に戻す処理を行う。なお、ステップS1604で得た最短経路を構成する地点情報が有する地点IDを用いて、元の位置情報を検索して、取得するなどしても良い。ここで、最短経路情報が得られたこととなる。
(ステップS1606)最短経路情報出力部17は、ステップS1605で得られた最短経路情報を出力する。ステップS201に戻る。
なお、図16のフローチャートにおいて、電源オフや処理終了の割り込みにより処理は終了する。
次に、ステップS1601のメッシュ選択処理について、図17のフローチャートを用いて説明する。図17のフローチャートにおいて、図3のフローチャートと同一の処理について、説明を省略する。
(ステップS1701)重心地点情報取得手段242は、i番目のメッシュの重心地点の情報(座標情報でも、緯度・経度の情報でも良い)を取得する。なお、矩形等の図形の重心地点の位置の情報を取得する処理は公知技術であるので、詳細な説明を省略する。
(ステップS1702)重心地点情報取得手段242は、i番目のメッシュ内の地点情報であり、道路種類情報に対応する地点情報の中から、ステップS1701で取得した重心地点の情報を用いて、重心地点から最も近い地点情報を取得する。なお、道路種類情報に対応する地点情報が存在しない場合、他の道路種類情報に対応する地点情報も含めて、重心地点情報取得手段242は、重心地点から最も近い地点情報を取得する。
(ステップS1703)重心地点情報取得手段242は、ステップS1701で取得した重心地点の情報を用いて、i番目のメッシュ内の地点情報であり、重心地点から最も近い地点情報(重心地点情報)を取得する。なお、ここで、重心地点情報取得手段242は、通常、(i−1)番目のメッシュの重心地点情報と道路種類情報が同一の重心地点情報を、優先して取得することは好適である。
(ステップS1704)重心距離算出手段251は、各メッシュについて、隣接するメッシュとの重心距離を算出する。
(ステップS1705)メッシュ選択手段252は、ステップS1704で算出した重心距離を用いて、始点から目的地点までの最短経路(仮最短経路)を決定し、取得する。
なお、図17のフローチャートにおいて、重心地点情報を取得したが、予め重心地点情報は取得されていても良い。かかる場合、道路種類情報ごとに、重心地点情報は取得されていることは好適である。
また、図17のフローチャートにおいて、ステップS1704の重心距離算出処理も、予め行っており、図示しない記録媒体に蓄積していても良い。
以下、本実施の形態における地図情報処理装置2の具体的な動作について説明する。まず、地図情報処理装置2の動作の概念について、説明する。
地図情報処理装置2の動作において、地図情報処理装置1の動作と異なるのは、以下の2点である。第一に、メッシュ選択処理において、メッシュを代表する地点情報として、重心に最も近い地点情報を選択した点である。図18に示すように、各メッシュの重心地点情報(図18のドット)を決定し、重心地点情報が地点間の距離(重心距離)を算出する。そして、2以上の重心距離を用いて、仮最短経路を取得する。そして、仮最短経路が通過するメッシュを選択する。なお、図18において、重心地点情報が示す位置は、概ね、メッシュの中央に見えるが、上述したように、メッシュの中央であるとは限らない。
第二に、メッシュ列が一直線にならぶように、メッシュを移動(回転も含む)させたことである。概念的には、図19に示すように、メッシュを回転または平行移動させ、一直線に並べる。
以下、地図情報処理装置2の具体的な動作の詳細について説明する。今、地図情報格納部12は、図7に示す地点情報管理表を保持している。また、メッシュ情報格納部13は、図8に示すメッシュ区分情報管理表を保持している。
かかる状況において、ユーザは、目的地点を地図情報処理装置2に入力した、とする。そして、ユーザは、地図情報処理装置2に対して、最短経路出力の指示を入力した、とする。
次に、図示しないナビゲーション装置が、現在位置の情報である始点情報(緯度,経度)を取得し、地図情報処理装置2に渡した、とする。
次に、地図情報処理装置2の受付部11は、始点情報および目的地点情報を有する最短経路出力指示を受け付ける。なお、受付部11は、ユーザが入力した目的地点を(緯度,経度)に変換する、とする。
次に、メッシュ選択部25は、始点から目的地点までの最短経路を含む2以上のメッシュを、以下のように選択する。
つまり、まず、重心地点情報取得手段242は、各メッシュの重心地点の情報を取得する。次に、重心地点情報取得手段242は、重心地点の情報を用いて、各メッシュ内の地点情報であり、重心地点から最も近い地点情報(重心地点情報)を取得する。この際、重心地点情報取得手段242は、地図情報が有する位置情報を参照する。そして、重心地点情報取得手段242は、図20に示すような重心地点情報管理表を得る。
次に、重心距離算出手段251は、各メッシュについて、隣接するメッシュとの重心距離を算出する。なお、二地点の位置情報から距離を算出する処理は公知技術である。ここで、隣接するメッシュとは、上下左右のメッシュだけではなく、ここでは、斜め右前、斜め左前、斜め右下、斜め左下のメッシュも含む、とする。なお、図21は、重心距離算出手段251が算出する重心距離の概念を示す図である。なお、重心距離算出手段251は、地図情報が地点間距離を含む場合、重心距離を地図情報管理表(地図情報格納部12)から読み出しても良い。
次に、メッシュ選択手段252は、算出した重心距離を用いて、始点から目的地点までの最短経路(仮最短経路)を決定し、取得する。なお、重心地点情報をノードとし、ノード間の距離を取得しているので、最短経路を取得する処理は公知技術である。この公知技術とは、例えば、ダイクストラ法、A*法などである。
そして、メッシュ選択手段252は、仮最短経路が通過するメッシュの識別情報の列を、記録媒体に蓄積する。かかるメッシュの識別情報の列は、図13である。
次に、図13のメッシュ識別情報列から、メッシュ直線化手段261は、移動の必要のあるメッシュを移動し、一直線に並ぶメッシュ列を得る。かかる概念図は、図19である。なお、メッシュ直線化手段261は、移動の必要のあるメッシュ内の地点情報が有する位置情報を変換し、一時格納する。
次に、メッシュ直線化手段261が座標変換した位置情報を用いて、最短経路情報取得手段262は、始点から目的地点までの最短経路を取得する。かかる最短経路取得アルゴリズムは、ダイクストラ法、A*法などである。そして、最短経路情報取得手段262は、最短経路を構成する地点IDの列を得る。
最短経路情報出力部17は、得られた地点IDの列から、最短経路情報を出力する。地点IDの列から、最短経路情報を出力する処理は以下である。地点IDをキーとして、図7に示す地点情報管理表を検索し、経路を構成する地点の位置情報を得る。そして、当該経路を、視覚的に、他の道路と比較して、目立つような態様で出力する。かかる出力例は、図14である。
以上、本実施の形態によれば、直線に並べ替えたデータに対して探索を実施するので、開始位置と目的位置の位置関係に関係なく、同じ探索結果が選ばれる。また、本実施の形態によれば、短時間で、精度高く、始点から目的地点までの最短経路を出力することができる。
なお、本実施の形態における直列化処理を、実施の形態1の地図情報処理装置に適用しても良いことは言うまでもない。
さらに、本実施の形態における地図情報処理装置を実現するソフトウェアは、以下のようなプログラムである。つまり、このプログラムは、記憶媒体に、地点の位置を示す情報である位置情報を2以上有する地図情報と、地図情報に対応する領域を2以上の部分領域に分割した領域であるメッシュに関するメッシュ情報とが格納されており、コンピュータを、始点を特定する始点情報および目的地点を特定する目的地点情報を受け付ける受付部と、前記2以上のメッシュ情報を用いて、前記始点情報に対応する始点を含むメッシュから前記目的地点情報に対応する目的地点を含むメッシュであり、前記始点から前記目的地点までの最短経路を含む2以上のメッシュを選択するメッシュ選択部と、前記メッシュ選択部により選択された2以上の各メッシュに対して、始点から始点を含むメッシュと次のメッシュとの境界辺に進行する際の最短経路に関する情報であるメッシュ内最短経路情報、または前のメッシュとの境界辺から次のメッシュとの境界辺に進行する際の最短経路に関する情報であるメッシュ内最短経路情報、または目的地点を含むメッシュと前のメッシュとの境界辺から目的地点に進行する際の最短経路に関する情報であるメッシュ内最短経路情報を取得する最短経路情報取得部と、前記最短経路情報取得部が取得した2以上のメッシュ内最短経路情報を出力する最短経路情報出力部として機能させるためのプログラム、である。
また、上記プログラムにおいて、コンピュータを、前記地図情報を2以上のメッシュに分割し、当該2以上の各メッシュに対応するメッシュ情報を2以上取得するメッシュ情報取得部としてさらに機能させ、前記メッシュ情報は、前記メッシュ情報取得部が取得したメッシュ情報であるプログラムであることは好適である。
また、上記プログラムにおいて、前記メッシュ情報取得部は、前記地図情報に対応する領域を2以上の部分領域であるメッシュに分割するメッシュ分割手段と、当該2以上のメッシュごとに、メッシュの重心に最も近い地点の位置を示す位置情報である重心地点情報を、前記地図情報格納部から取得する重心地点情報取得手段とを具備し、前記メッシュ選択部は、前記2以上のメッシュ間の2以上の重心地点情報を用いて、前記2以上のメッシュの間の距離である2以上の重心距離を算出する重心距離算出手段と、前記2以上の重心距離を用いて、前記始点情報に対応する始点を含むメッシュから前記目的地点情報に対応する目的地点を含むメッシュであり、前記始点から前記目的地点までの最短経路を含む2以上のメッシュを選択するメッシュ選択手段とを具備するものとして、コンピュータを機能させるためのプログラムであることは好適である。
また、上記プログラムにおいて、前記最短経路情報取得部は、前記メッシュ選択部により選択された2以上の各メッシュが仮想的に直線上に並ぶように、前のメッシュに対して上および下に存在するメッシュ、または前のメッシュに対して左および右に存在するメッシュを回転し、仮想的な直線のメッシュ群の情報を取得するメッシュ直線化手段と、前記仮想的な直線のメッシュ群の情報に含まれる2以上の位置情報を用いて、前記始点から前記目的地点までの最短経路の情報を取得する最短経路情報取得手段とを具備し、前記最短経路情報出力部は、前記最短経路情報取得手段が取得した最短経路の情報を出力するものとして、コンピュータを機能させるためのプログラムであることは好適である。
また、上記プログラムにおいて、前記最短経路情報取得手段は、前記2以上の位置情報からダイクストラ法を用いて、前記始点から前記目的地点までの最短経路の情報を取得するものとして、コンピュータを機能させるためのプログラムであることは好適である。
また、上記プログラムにおいて、前記地図情報は、前記位置情報と、当該位置情報に対応する地点が存在する道路の種類を示す道路種類情報とを対に有する地点情報を2以上有し、前記メッシュ選択部は、一の道路種類情報と対になる位置情報が示す地点を含むメッシュ、または一の道路種類情報と対にならない位置情報が示す地点を含むメッシュを、他のメッシュと比較して優先して選択するものとして、コンピュータを機能させるためのプログラムであることは好適である。
さらに、上記プログラムにおいて、一の道路種類情報を受け付ける受付部として、コンピュータをさらに機能させ、前記メッシュ選択部は、前記受付部が受け付けた一の道路種類情報と対になる位置情報が示す地点を含むメッシュ、または前記受付部が受け付けた一の道路種類情報と対にならない位置情報が示す地点を含むメッシュを、他のメッシュと比較して優先して選択するものとして、コンピュータを機能させるためのプログラムであることは好適である。
また、図22は、本明細書で述べたプログラムを実行して、上述した実施の形態の地図情報処理装置等を実現するコンピュータの外観を示す。上述の実施の形態は、コンピュータハードウェア及びその上で実行されるコンピュータプログラムで実現され得る。図22は、このコンピュータシステム340の概観図であり、図23は、コンピュータシステム340のブロック図である。
図22において、コンピュータシステム340は、FDドライブ、CD−ROMドライブを含むコンピュータ341と、キーボード342と、マウス343と、モニタ344とを含む。
図23において、コンピュータ341は、FDドライブ3411、CD−ROMドライブ3412に加えて、MPU3413と、CD−ROMドライブ3412及びFDドライブ3411に接続されたバス3414と、ブートアッププログラム等のプログラムを記憶するためのROM3415と、MPU3413に接続され、アプリケーションプログラムの命令を一時的に記憶するとともに一時記憶空間を提供するためのRAM3416と、アプリケーションプログラム、システムプログラム、及びデータを記憶するためのハードディスク3417とを含む。ここでは、図示しないが、コンピュータ341は、さらに、LANへの接続を提供するネットワークカードを含んでも良い。
コンピュータシステム340に、上述した実施の形態の地図情報処理装置等の機能を実行させるプログラムは、CD−ROM3501、またはFD3502に記憶されて、CD−ROMドライブ3412またはFDドライブ3411に挿入され、さらにハードディスク3417に転送されても良い。これに代えて、プログラムは、図示しないネットワークを介してコンピュータ341に送信され、ハードディスク3417に記憶されても良い。プログラムは実行の際にRAM3416にロードされる。プログラムは、CD−ROM3501、FD3502またはネットワークから直接、ロードされても良い。
プログラムは、コンピュータ341に、上述した実施の形態の地図情報処理装置等の機能を実行させるオペレーティングシステム(OS)、またはサードパーティープログラム等は、必ずしも含まなくても良い。プログラムは、制御された態様で適切な機能(モジュール)を呼び出し、所望の結果が得られるようにする命令の部分のみを含んでいれば良い。コンピュータシステム340がどのように動作するかは周知であり、詳細な説明は省略する。
また、上記プログラムを実行するコンピュータは、単数であってもよく、複数であってもよい。すなわち、集中処理を行ってもよく、あるいは分散処理を行ってもよい。
また、上記各実施の形態において、一の装置に存在する2以上の通信手段(端末情報送信部、端末情報受信部など)は、物理的に一の媒体で実現されても良いことは言うまでもない。
また、上記各実施の形態において、各処理(各機能)は、単一の装置(システム)によって集中処理されることによって実現されてもよく、あるいは、複数の装置によって分散処理されることによって実現されてもよい。
本発明は、以上の実施の形態に限定されることなく、種々の変更が可能であり、それらも本発明の範囲内に包含されるものであることは言うまでもない。