以下、この発明の実施の形態を、図面を参照しながら詳細に説明する。
実施の形態1.
図1は、この発明の実施の形態1に係る地図情報処理装置の構成を示すブロック図である。この地図情報処理装置は、入力部1、位置検出部2、更新情報取得部3、地図情報記憶部4、プロセッサ5および出力部6を備えている。
入力部1は、使用者の操作による指示に応じて指示信号を生成し、プロセッサ5に送る。この入力部1は、例えば、使用者の音声を認識して指示信号を生成する音声認識装置、使用者の手動操作に応じて指示信号を生成する操作ボタン、および、その他の入力装置のうちの少なくとも1つから構成されている。
位置検出部2は、例えばGPS(Global Positioning System)受信機(図示は省略する)を用いて当該地図情報処理装置が搭載された車両の現在位置を検出する。なお、位置検出部2は、GPS受信機に代えて、または、GPS受信機と併用して、車速センサおよび角速度センサ(いずれも図示は省略する)を用いて現在位置を検出するように構成できる。この位置検出部2で検出された現在位置を示す位置情報は、プロセッサ5に送られる。
更新情報取得部3は、例えばメモリカードリーダから構成されており、メモリカードに記憶されている更新情報を読み取ってプロセッサ5に送る。また、更新情報取得部3は、メモリカードが挿入された旨の信号をプロセッサ5に送る。更新情報の詳細については後述する。なお、更新情報取得部3は、更新用の地図情報を管理しているサーバから通信によって更新情報を取得する通信装置から構成することもできる。
地図情報記憶部4は、例えば、記憶媒体としてハードディスクを用いたハードディスクドライブから構成されており、地図情報を記憶している。この地図情報記憶部4に記憶される地図情報の詳細は後述する。この地図情報記憶部4に記憶されている地図情報は、プロセッサ5によって読み出される。
プロセッサ5は、地図情報処理部51と更新部52を備えている。地図情報処理部51は、入力部1から送られてくる指示信号、位置検出部2から送られてくる位置情報および地図情報記憶部4から読み込んだ地図情報を用いて地図情報処理を実行する。地図情報処理には、位置検出部2から得られた位置情報と地図情報記憶部4から読み出した地図情報とに基づいて車両の現在位置を推定するマップマッチング処理、出発地から目的地までの経路を算出する経路計算処理(経路探索処理)、経路計算処理によって得られた好適な経路の候補を道路地図とともに出力部6に含まれる表示装置(後述する)の画面に表示する経路表示処理、好適な経路の候補から選択された経路に従って出発地から目的地までの案内を行う経路誘導処理、現在位置周辺の地図を表示する表示処理、あるいは、施設、住所または電話番号などの各種情報を検索する検索処理などが含まれる。
更新部52は、入力部1から送られてくる指示信号、位置検出部2から送られてくる位置情報および更新情報取得部3から送られてくる更新情報を用いて、地図情報記憶部4に記憶されている地図情報を更新するとともに、更新の不適正、開始または終了などのメッセージを表すデータを出力部6に送る。
出力部6は、プロセッサ5から送られてくるデータに従って、使用者に種々の情報を提示する。この出力部6は、図示は省略するが、表示装置および音声発生装置の少なくとも1つから構成されている。表示装置は、プロセッサ5から送られてくるデータに含まれる表示データに従って、地図情報に基づく地図、地図上での車両の現在位置、経路探索処理によって得られた地図上の好適な経路の候補、好適な経路の候補から選択された1つの経路に従って出発地から目的地までの案内を行うための案内情報、または、検索によって得られた各種情報などを表示する。音声発生装置は、プロセッサ5から送られてくるデータに含まれる音声データに従って、表示装置に表示された内容と同様または関連する内容を音声で出力し、使用者に対する指示または案内を行う。
以上のように構成された実施の形態1に係る地図情報処理装置によれば、使用者が例えば目的地周辺の道路状況を確認したいと考えた場合、使用者が入力部1を用いて表示すべき範囲を指示することにより、地図情報処理装置は、指示された範囲の地図を出力部6の表示装置に表示する。したがって、使用者は、表示装置を見ることによって目的地周辺の道路状況を確認することができる。
また、使用者が例えば目的地に至るまでの地図情報を更新しようと考えた場合、使用者は、まず、目的地を含む地域の更新情報が記憶されたメモリカードを更新情報取得部3にセットする。次に、使用者が入力部1を用いて地図情報の更新を指示することにより、地図情報処理装置は、メモリカードから読み出した更新情報に基づいて地図情報記憶部4に記憶された地図情報を更新する。その結果、使用者は、目的地に至るまでの最新バージョンの地図情報を利用することができる。
また、地図情報処理装置は、位置検出部2から使用者が乗車している車両の現在位置を示す位置情報を用いて当該車両の現在位置から目的地までの地図を表示するために必要な地図情報を得ることができる。その結果、使用者は、出力部6の表示装置を見ることによって現在位置から目的地までの経路を案内するための案内情報を知ることができる。
次に、実施の形態1に係る地図情報処理装置で使用される地図情報について説明する。地図情報の作成範囲は、所定間隔の緯線と経線により囲まれた矩形によって規定される。また、地図情報は、情報の詳細さの度合いによって階層化されており、地図情報の作成範囲は、階層毎に、所定間隔の緯線と経線とによって囲まれた矩形領域であるメッシュに区画されて管理される。このメッシュに区画された地図情報を「メッシュ情報」と呼ぶ。
図2は、各階層のメッシュの例を示す図である。この例では、レベル0、レベル1およびレベル2といった3階層に階層化されており、レベル2→レベル1→レベル0の順に詳細さの度合いが増している。レベル0では、作成範囲は、16×16個のメッシュに区画され、レベル1では、8×8個のメッシュに区画され、レベル2では、4×4個のメッシュに区画されている。
したがって、作成範囲の左端の経度をWxmin、右端の経度をWxmax、下端の緯度をWymin、上端の緯度をWymax、作成範囲の経度方向の幅をWxおよび緯度方向の幅をWyとするとき、Wx=Wxmax−Wxmin、Wy=Wymax−Wyminとなり、レベル0のメッシュの経度方向の幅はWx/16、緯度方向の幅はWy/16となり、レベル1のメッシュの経度方向の幅はWx/8、緯度方向の幅はWy/8となり、レベル2のメッシュの経度方向の幅はWx/4、緯度方向の幅はWy/4となる。
また、メッシュを特定するために、各メッシュにはメッシュ座標(X,Y)が付与されている。左右方向のメッシュ座標Mxとして、左端のメッシュから右端のメッシュに向かって順に0、1、2、・・・が付与され、上下方向のメッシュ座標Myとして、下端のメッシュから上端のメッシュに向かって順に0、1、2、・・・が付与されている。例えば、図2のレベル2で網掛けされたメッシュのメッシュ座標は(2,1)である。
地図情報記憶部4に記憶された地図情報を部分的に更新するために、作成範囲は幾つかの領域に別けられており、その分けられた領域を単位として更新が行われる。この更新が行われる領域を「更新領域」と呼ぶ。図3は、更新領域の例を示す図である。この例では、作成範囲内にA、BおよびCといった3つの更新領域が設けられており、地図情報の更新は、更新領域A、BまたはCを単位として行われる。
なお、図3に示す例では、説明の簡単化のために、単純な形状の更新領域を示しているが、更新領域として、例えば国、州、都道府県または市区町村といった行政区域、または、行政区域ではないが社会的に認知されている地域名、例えば関東地方または近畿地方などの地方区域などを用いることもできる。このような更新領域については、使用者は、日常の中で慣れ親しんで認識しているので、地図情報の更新の範囲を容易に理解することができる。
メッシュは、更新領域との関係により、内部メッシュと境界メッシュとに分類されている。内部メッシュは、1つの更新領域のみに含まれるメッシュである。境界メッシュは、更新領域の境界に位置し、1つの更新領域と、その更新領域に隣接する他の更新領域とに含まれるメッシュである。
また、地図情報記憶部4に記憶される地図情報を格納するファイルを「地図ファイル」と呼び、地図ファイルには「固有地図ファイル」と「共有地図ファイル」が存在する。固有地図ファイルは、更新領域に対応して設けられ、その更新領域の内部メッシュのメッシュ情報を格納している。共有地図ファイルは、隣接する更新領域の組(3つ以上の更新領域が隣接する場合を含む)に対応して設けられ、更新領域の境界に位置し、隣接する更新領域の組を構成する複数の更新領域の各々に含まれるメッシュのメッシュ情報を格納している。なお、このような、地図ファイルに格納されるメッシュ情報のメッシュを「地図ファイルに対応するメッシュ」と言う。
図4は、図2に示すレベル2の階層において、図3に示す更新領域が存在する場合の固有地図ファイルおよび共有地図ファイルの例を示す。ファイルAは、更新領域Aに対する固有地図ファイルであり、更新領域Aの内部メッシュであるメッシュ(0,0)、(0,1)、(1,0)および(1,1)のメッシュ情報が格納される。なお、メッシュ(0,2)のように、更新領域Aの境界に位置しているが、メッシュ(0,2)を含む隣接する更新領域が存在しない場合は、そのメッシュのメッシュ情報は更新領域Aに対する固有地図ファイルに格納される。ファイルBは、更新領域Bに対する固有地図ファイルであり、更新領域Bの内部メッシュであるメッシュ(1,3)のメッシュ情報が格納される。ファイルCは、更新領域Cに対する固有地図ファイルであり、更新領域Cの内部メッシュであるメッシュ(3,0)、(3,1)、(3,2)および(3,3)のメッシュ情報が格納される。
ファイルABは、更新領域Aと更新領域Bの組に対応する共有地図ファイルであり、更新領域Aと更新領域Bの境界に位置し、更新領域Aと更新領域Bのいずれにも属するメッシュ(1,2)のメッシュ情報が格納される。ファイルACは、更新領域Aと更新領域Cの組に対応する共有地図ファイルであり、更新領域Aと更新領域Cの境界に位置し、更新領域Aと更新領域Cのいずれにも属するメッシュ(2,0)および(2,1)のメッシュ情報が格納される。ファイルBCは、更新領域Bと更新領域Cの組に対応する共有地図ファイルであり、更新領域Bと更新領域Cの境界に位置し、更新領域Bと更新領域Cのいずれにも属するメッシュ(2,3)のメッシュ情報が格納される。
ファイルABCは、更新領域A、更新領域Bおよび更新領域Cの組に対応する共有地図ファイルであり、更新領域A、更新領域Bおよび更新領域Cの境界に位置し、更新領域A、更新領域Bおよび更新領域Cのいずれにも属するメッシュ(2,2)のメッシュ情報が格納される。
上述したように、作成範囲の各メッシュは、1つの更新領域または隣接する更新領域の組に属し、作成範囲の各メッシュのメッシュ情報は、1つの地図ファイルに格納され、複数の地図ファイルに重複して格納されることがないため、地図情報記憶部4に記憶するデータ量を削減できる。
なお、或る階層より下層のレベルでは、その階層のメッシュに包含される下層のレベルのメッシュのメッシュ情報は、その階層のメッシュのメッシュ情報が格納されている地図ファイルに格納される。以下では、或る階層を最上位の階層として説明するが、或る階層は最上位の階層でなくてもよい。
図5は、図2に示すレベル1の階層において、図3に示す更新領域が存在する場合の固有地図ファイルおよび共有地図ファイルの例を示す図である。例えば、レベル1のメッシュ(0,0)は、図4に示すレベル2のメッシュ(0,0)に包含されるため、レベル1のメッシュ(0,0)のメッシュ情報はファイルAに格納される。レベル1のメッシュ(3,6)は、図4に示すレベル2のメッシュ(1,3)に包含されるため、レベル1のメッシュ(3,6)のメッシュ情報はファイルBに格納される。レベル1のメッシュ(4,0)は、図4に示すレベル2のメッシュ(2,0)に包含されるため、レベル1のメッシュ(4,0)のメッシュ情報はファイルACに格納される。このように、図5に示すレベル1の各メッシュのメッシュ情報は、そのメッシュを包含するレベル2のメッシュのメッシュ情報が格納されている地図ファイルに格納される。
図6は、図2に示すレベル0の階層において、図3に示す更新領域が存在する場合の固有地図ファイルおよび共有地図ファイルの例を示す図である。例えば、レベル0のメッシュ(0,0)は、図4に示すレベル2のメッシュ(0,0)に包含されるため、レベル0のメッシュ(0,0)のメッシュ情報はファイルAに格納される。レベル0のメッシュ(4,12)は、図4に示すレベル2のメッシュ(1,3)に包含されるため、レベル0のメッシュ(4,12)のメッシュ情報はファイルBに格納される。レベル0のメッシュ(8,0)は、図4に示すレベル2のメッシュ(2,0)に包含されるため、レベル0のメッシュ(8,0)のメッシュ情報はファイルACに格納される。このように、図6に示すレベル0の各メッシュのメッシュ情報は、そのメッシュを包含するレベル2のメッシュのメッシュ情報が格納されている地図ファイルに格納される。
上述したように、1つの地図ファイルに全階層の地図情報が格納されるので、地図ファイルを最新のバージョンに置き換えるだけで、全階層の地図情報をまとめて更新することができる。
図7は、地図情報記憶部4に格納される地図情報の例を示す図である。地図情報に含まれるメッシュ管理情報は、作成範囲の各メッシュのメッシュ情報が格納されている地図ファイルを示す情報であり、地図ファイル(固有地図ファイルおよび共有地図ファイル)とともにあらかじめ地図情報記憶部4に記憶される。
図8は、図7に示すメッシュ管理情報の例を示す図である。メッシュ管理情報は、メッシュ管理情報ヘッダと、最上位レベルのメッシュに対応して設けられたメッシュ管理レコードとから構成されている。
メッシュ管理情報ヘッダは、作成範囲、階層数および階層管理レコードからなる。作成範囲は、地図情報の作成範囲である矩形の左端経度Wxmin、右端経度Wxmax、下端緯度Wyminおよび上端緯度Wymaxを表す情報からなる。階層数は、地図情報の階層の数を表す情報からなる。階層管理レコードは、各階層に対応して設けられ、各階層のメッシュ数、メッシュの経度方向の幅およびメッシュの緯度方向の幅を表す情報からなる。
メッシュ管理レコードは、メッシュ座標および所属更新領域情報からなる。メッシュ座標は、当該メッシュ管理レコードに対応するメッシュのメッシュ座標を表す情報からなる。所属更新領域情報は、メッシュ管理レコードに対応するメッシュのメッシュ情報が格納されている地図ファイルに対応する更新領域または隣接する更新領域の組を表し、領域を識別するための領域識別子である領域コードを用いて表される。この領域コードを「メッシュの領域コード」と呼ぶ。
図9は、領域コードの例を示す図であり、更新領域および隣接する更新領域の組に対し、一連の番号が予め設定されている。例えば、図4に示すメッシュに対し、メッシュ(0,0)の領域コードは0、メッシュ(1,3)の領域コードは1、メッシュ(3,0)の領域コードは2、メッシュ(1,2)の領域コードは3、メッシュ(2,0)の領域コードは4、メッシュ(2,3)の領域コードは5、メッシュ(2,2)の領域コードは6と設定されている。
メッシュ(0,3)のように、更新領域が未設定の場合は、領域コードが無効であることを示す値として例えば「−1」が設定される。なお、検索を容易にするため、メッシュ管理レコードは、メッシュ座標によりソートされている。
図10は、地図ファイルの構造を示す図である。地図ファイルは、ファイルヘッダ、ファイル内メッシュ管理情報および各レベルのメッシュ情報からなる。ファイルヘッダは、バージョン情報、ファイル領域コードおよびファイル内メッシュ管理情報のデータサイズからなる。バージョン情報は、地図ファイルに格納されている地図情報のバージョンを表す。ファイル領域コードは、地図ファイルに格納されているメッシュの領域コードを表す。例えば、ファイルA、ファイルAB、ファイルACおよびファイルABCのファイル領域コードは、それぞれ図9に示す領域コード0、3、4および6となる。
図11は、ファイル内メッシュ管理情報の例を示す図である。ファイル内メッシュ管理情報は、ファイル内メッシュ管理情報ヘッダとファイル内メッシュ管理レコードからなる。ファイル内メッシュ管理レコードは、地図ファイルに格納されたメッシュ情報を管理する。このファイル内メッシュ管理レコードは、管理するメッシュ情報のレベルによりソートされる。
ファイル内メッシュ管理情報ヘッダは、レベル管理レコード数とレベル管理レコードからなる。レベル管理レコード数は、ファイル内メッシュ管理情報ヘッダに設けられるレベル管理レコードの数を示す。レベル管理レコードは、地図ファイルに格納されるメッシュ情報のレベルに対応して設けられ、対応レベル、先頭ファイル内メッシュ管理レコード番号およびファイル内メッシュ管理レコード数からなる。対応レベルは、対応するレベルを表す。先頭ファイル内メッシュ管理レコード番号は、対応するレベルの先頭のファイル内メッシュ管理レコードのレコード番号を示す。ファイル内メッシュ管理レコード数は、対応するレベルのファイル内メッシュ管理レコードの数を示す。
上述したレコード番号は、ファイル内メッシュ管理レコードの並びの順番である。なお、ファイル内メッシュ管理レコード数は、当該地図ファイルに格納された対応レベルのメッシュ情報の数に一致する。
ファイル内メッシュ管理レコードは、メッシュ座標、メッシュ情報オフセットおよびメッシュ情報サイズからなる。メッシュ座標は、当該メッシュのメッシュ座標を示す。メッシュ情報オフセットは、当該メッシュのメッシュ情報の格納位置を表し、当該地図ファイルの先頭から当該メッシュ情報の先頭へ至るバイト数、すなわちオフセットを示す。メッシュ情報サイズは、当該メッシュのメッシュ情報のデータサイズを示す。
図12は、メッシュ情報の例を示す図である。このメッシュ情報は、マップマッチングおよび道路の表示に使用される道路データ、河川および海などといった地図の背景を表示するための背景データ、地名などの名称を表示するための名称データ、経路誘導のための経路誘導データ、経路計算のための経路計算データ、施設などを検索するための検索データなどを含み、これら各データの所在、データサイズおよび当該メッシュ情報のデータサイズなどを示すヘッダを含んでいる。
地図ファイルのファイル名としては、地図ファイルのファイル領域コードを含む文字列が付与される。例えば、ファイルA、ファイルAB、ファイルACおよびファイルABCのファイル名としては、それぞれ図9に示す領域コード0、3、4および6を含む文字列MAP0、MAP3、MAP4およびMAP6が付与される。
地図ファイルのファイル名を上述したように定めることにより、メッシュ管理情報のメッシュ管理レコードから所望のメッシュの領域コードが分かり、その領域コードから地図ファイルのファイル名を容易に生成することができるので、ファイル名をメッシュ管理情報に含める必要がなくメッシュ管理情報のデータ量を削減できる。
次に、実施の形態1に係る地図情報処理装置で使用される更新情報の詳細について説明する。更新情報は、地図情報記憶部4に記憶された地図情報のうちの、利用者が所望する更新領域を更新するために使用される情報であり、メモリカードに格納されて提供される。
更新情報は、例えば図13に示すように、更新情報ヘッダ、更新の対象とする更新領域の固有地図ファイルおよび更新領域の境界メッシュのメッシュ情報を格納した共有地図ファイルからなる。
更新情報ヘッダは、更新バージョン、更新対象領域コード、ファイル数および格納ファイル情報からなる。更新バージョンは、更新情報による更新により得られる地図情報のバージョンを表す。更新対象領域コードは、更新情報によって更新される更新領域の領域コードを表す。ファイル数は、更新情報に格納されている地図ファイルの数を表す。格納ファイル情報は、更新情報に格納されている各地図ファイルのファイル領域コードを表す。
図13は、更新領域Aを更新するための更新情報の例を示している。固有地図ファイルとしてファイルAが格納され、共有地図ファイルとしてファイルAB、ファイルACおよびファイルABCが格納されている。更新情報ヘッダの格納ファイル情報として、ファイルA、ファイルAB、ファイルACおよびファイルABCに対応して、図9の領域コード0、3、4および6が格納されている。更新情報に格納される地図ファイルのファイル名は、地図情報記憶部4に記憶されている対応する地図ファイルのファイル名と同一である。
上述したように、更新の対象とする更新領域の固有地図ファイルおよび更新領域の境界メッシュのメッシュ情報を格納した共有地図ファイルを更新情報として提供することにより、利用者が所望する更新領域に含まれるすべてのメッシュ、すなわち、更新領域内部および更新領域境界上のメッシュの地図情報の更新が可能となる。
次に、この発明の実施の形態1に係る地図情報処理装置の動作を、図14に示すフローチャートを参照しながら説明する。地図情報処理装置が起動されると、まず、更新用のメモリカードが挿入されたかどうかが調べられる(ステップST10)。すなわち、プロセッサ5の更新部52は、更新情報取得部3からメモリカードが挿入された旨の信号が送られてきているかどうかを調べる。このステップST10において、更新用のメモリカードが挿入されていないことが判断されると、シーケンスはステップST12に進む。
一方、ステップST10において、更新用のメモリカードが挿入されたことが判断されると、地図更新処理が実行される(ステップST11)。すなわち、プロセッサ5の更新部52は、更新情報取得部3に挿入された更新用のメモリカードに記憶されている更新情報を読み取り、この読み取った更新情報を用いて地図情報記憶部4に記憶されている地図情報を更新する。この地図更新処理については、後に、詳細に説明する。その後、シーケンスはステップST12に進む。
ステップST12においては、入力処理が行われる。すなわち、使用者は、入力部1を操作して地図情報処理装置に指示、例えば、地図の表示縮尺、目的地または経路計算の開始指示などを入力する。入力部1は、使用者の操作による指示に応じて指示信号を生成しプロセッサ5に送る。
次いで、現在位置が取得される(ステップST13)。すなわち、位置検出部2は、当該地図情報処理装置が搭載された車両の現在位置を検出し、位置情報としてプロセッサ5に送る。プロセッサ5は、位置検出部2から送られてくる位置情報を取得し、内部に記憶する。
次いで、地図情報取得処理が実行される(ステップST14)。すなわち、プロセッサ5は、ステップST12で入力された指示と、ステップST13で取得された現在位置によって定まる所要の階層の所要範囲のメッシュのメッシュ情報を地図情報記憶部4から取得する。この地図情報取得処理については、後に、さらに詳細に説明する。
次いで、地図情報処理が行われる(ステップST15)。すなわち、プロセッサ5は、ステップST14で取得したメッシュ情報を用いて、ステップST12で入力された指示と、ステップST13で取得された現在位置によって定まる地図情報処理を行う。その後、シーケンスはステップST10へ戻り、上述した処理が繰り返される。
次に、上述したステップST11で実行される地図更新処理の詳細を、図15に示すフローチャートを参照しながら説明する。この地図更新処理は、更新情報によって更新の対象とされる更新領域の大きさに変化がない場合には、主に、プロセッサ5の更新部52において実行される。
地図更新処理では、まず、更新情報ヘッダが取得される(ステップST20)。すなわち、更新部52は、更新情報取得部3に挿入されたメモリカードから更新情報に含まれる更新情報ヘッダを読み取る。
次いで、地図ファイルヘッダが取得される(ステップST21)。すなわち、更新部52は、ステップST20で取得された更新情報ヘッダの更新対象領域コードに対応する固有地図ファイルのファイルヘッダを地図情報記憶部4から取得する。
次いで、更新情報が適正であるかどうかが調べられる(ステップST22)。すなわち、更新部52は、ステップST21で取得した固有地図ファイルヘッダのバージョン情報と、ステップST20で取得した更新情報ヘッダの更新バージョンとを比較し、更新バージョンが固有地図ファイルのバージョンと同じ場合、または、更新バージョンが固有地図ファイルのバージョンより古い場合は、更新情報は適正でないと判断し、そうでない場合は、更新情報は適正であると判断する。
上記ステップST22において、更新情報が適正でないことが判断されると、不適正通知が行われる(ステップST23)。すなわち、更新部52は、更新情報が適正でない旨のメッセージを表すデータを出力部6に送る。これにより、出力部6は、更新情報が適正でない旨のメッセージを出力する。その後、地図更新処理は終了する。
一方、上記ステップST22において、更新情報が適正であることが判断されると、更新開始通知が行われる(ステップST24)。すなわち、更新部52は、更新が開始された旨のメッセージを表すデータを出力部6に送る。これにより、出力部6は、更新が開始された旨のメッセージを出力する。
次いで、固有地図ファイルが置き換えられる(ステップST25)。すなわち、更新部52は、更新情報取得部3に挿入されたメモリカードから固有地図ファイルを読み取り、この固有地図ファイルと同一のファイル名を有する地図情報記憶部4に記憶されている固有地図ファイルを、読み取った固有地図ファイルで置き換える。このステップST25の処理により、例えば、地図情報記憶部4に記憶されているファイル名MAP0の固有地図ファイルが、メモリカードから読み込んだファイル名MAP0の固有地図ファイルで置き換えられる。
次いで、共有地図ファイルが置き換えられる(ステップST26)。すなわち、更新部52は、更新情報取得部3に挿入されたメモリカードから共有地図ファイルを読み取り、この共有地図ファイルと同一ファイル名を有する地図情報記憶部4に記憶されている共有地図ファイルを、読み取った共有地図ファイルで置き換える。このステップST26の処理により、例えば、地図情報記憶部4に記憶されているファイル名がMAP3の共有地図ファイル、MAP4の共有地図ファイルおよびMAP6の共有地図ファイルが、それぞれメモリカードから読み込んだファイル名がMAP3の共有地図ファイル、MAP4の共有地図ファイルおよびMAP6の共有地図ファイルで置き換えられる。これにより、更新領域Aの境界メッシュの地図情報が格納されたすべての共有地図ファイルが更新され、ステップST25の処理と相俟って、更新領域Aのすべてのメッシュの地図情報が更新される。
次いで、更新終了通知が行われる(ステップST27)。すなわち、更新部52は、更新が終了した旨のメッセージを表すデータを出力部6に送る。これにより、出力部6は、更新が終了された旨のメッセージを出力する。その後、地図更新処理は終了する。
上述したように、地図情報記憶部4に記憶されている地図ファイルをメモリカードから取得した更新情報を含む地図ファイルで置き換えることにより、簡単に地図更新が可能である。また、地図ファイルはすべての階層の地図情報を有するため、どの階層の地図情報も同時に最新バージョンとなり、階層間のバージョンの不一致による不整合は発生しない。また、地図更新においては、メッシュ管理情報の更新は不要であるので、地図更新に要する処理時間をより短縮できる。
次に、上述したステップST14で実行される地図情報取得処理の詳細を、図16に示すフローチャートを参照しながら説明する。
地図情報取得処理では、まず、所要メッシュの特定が行われる(ステップST30)。すなわち、地図情報処理部51は、ステップST12で入力された指示と、ステップST13で取得した現在位置によって定まる所要階層の所要範囲に存在するメッシュを、地図情報記憶部4に記憶されているメッシュ管理情報のメッシュ管理情報ヘッダに含まれる作成範囲、所要階層のメッシュの経度方向の幅、緯度方向の幅を基に、所要メッシュとして特定し、該所要メッシュのメッシュ座標を求める。その後、所要メッシュ毎にステップST31以降の処理が行われる。
図17は、レベル2およびレベル0の階層のメッシュを示している。例えば、入力部1から指示された縮尺の地図表示を行う場合に、図17に示すように、地図表示の中心の経度Xc、緯度Ycが下記の時であって、
Xc=Wxmin+(Wx/16)*4
Yc=Wymin+(Wy/16)*8
所要階層がレベル0で、所要範囲の経度、緯度がそれぞれ
Xc−(Wx/16)〜Xc+(Wx/16)
Yc−(Wy/16)〜Yc+(Wy/16)
である場合において、図8のメッシュ管理情報ヘッダの作成範囲、レベル0の階層管理レコード#2を参照し、所要範囲の経度および緯度から、それぞれ左端経度Wxminおよび下端緯度Wxminを減じ、メッシュの経度方向の幅Wx/16、メッシュの緯度方向の幅Wy/16で除す(余りは切捨て)ことにより、図17に示すように、所要メッシュのメッシュ座標として、(3,7)、(4,7)、(3,8)および(4,8)が得られる。
上述した所要メッシュの特定が完了すると、次いで、最上位層の包含メッシュ座標が算出される(ステップST31)。すなわち、地図情報処理部51は、地図情報記憶部4に記憶されているメッシュ管理情報のメッシュ管理情報ヘッダにおける所要階層のメッシュの経度方向の幅、緯度方向の幅、最上位階層のメッシュの経度方向の幅および緯度方向の幅を基に、ステップST30で得られた所要階層における所要のメッシュ座標のメッシュを包含する最上位階層のメッシュのメッシュ座標を求める。
例えば、図17に示すように、ステップST30で特定された所要階層がレベル0の所要のメッシュ座標(3,7)のメッシュを包含する最上位階層のレベル2のメッシュのメッシュ座標として(0,1)が求められる。同様に、レベル0の所要のメッシュ座標(4,7)に対してレベル2のメッシュ座標(1,1)が、レベル0の所要のメッシュ座標(3,8)に対してレベル2のメッシュ座標(0,2)が、レベル0の所要のメッシュ座標(4,8)に対してレベル2のメッシュ座標(1,2)がそれぞれ求められる。
次いで、メッシュ管理レコードが取得される(ステップST32)。すなわち、地図情報処理部51は、地図情報記憶部4に記憶されているメッシュ管理情報を検索し、ステップST31で求めた最上位階層のメッシュ座標を有するメッシュ管理レコードを取得する。例えば、レベル2のメッシュ座標(0,1)に対して、図8に示すメッシュ管理レコード#4が取得される。同様に、レベル2のメッシュ座標(1,1)に対してメッシュ管理レコード#5が、レベル2のメッシュ座標(0,2)に対してメッシュ管理レコード#8が、レベル2のメッシュ座標(1,2)に対してメッシュ管理レコード#9がそれぞれ取得される。
次いで、地図ファイル名が決定される(ステップST33)。すなわち、地図情報処理部51は、ステップST32で取得されたメッシュ管理レコードの所属更新領域情報を元に、メッシュ管理レコードに対応するメッシュを格納する地図ファイルのファイル名を決定する。例えば、メッシュ管理レコード#4に対し、その所属更新領域情報の領域コードが0であり、レベル2のメッシュ座標(0,1)のメッシュ情報を含む地図ファイルのファイル名として、文字列「MAP」に領域コードを付してMAP0とする。同様に、メッシュ管理レコード#5に対し、その領域コードが0であり、レベル2のメッシュ座標(1,1)のメッシュ情報を含む地図ファイルのファイル名をMAP0とし、メッシュ管理レコード#8に対し、その領域コードが3であり、レベル2のメッシュ座標(0,2)のメッシュ情報を含む地図ファイルのファイル名をMAP3とし、メッシュ管理レコード#9に対し、その領域コードが3であり、レベル2のメッシュ座標(1,2)のメッシュ情報を含む地図ファイルのファイル名をMAP3とする。
このようにメッシュ管理レコードの領域コードからファイル名を生成することにより、メッシュ管理レコードにファイル名を格納する必要がなく、メッシュ管理情報のデータ量を削減できる。
次いで、ファイル内メッシュ管理レコードが取得される(ステップST34)。すなわち、地図情報処理部51は、ステップST33で決定されたファイル名を有する地図ファイルのファイル内メッシュ管理情報を読み取り、ステップST30で特定された所要階層のファイル内メッシュ管理レコードの中からステップST30で特定された所要メッシュのメッシュ座標を有するファイル内メッシュ管理レコードを取得する。
例えば、レベル0のメッシュ座標(3,7)に対し、ファイル名がMAP0の地図ファイルのファイル内メッシュ管理情報を読み取り、図11のレベル管理レコード#2が示すレベル0のファイル内メッシュ管理レコードの中からメッシュ座標(3,7)を有するものを見つける。同様に、レベル0の所要のメッシュ座標(4,7)に対して、ファイル名がMAP0の地図ファイルのファイル内メッシュ管理情報を読み取り、レベル0の所要のメッシュ座標(4,7)を有するファイル内メッシュ管理レコードを見つける。同様に、レベル0の所要のメッシュ座標(3,8)に対して、ファイル名がMAP3の地図ファイルのファイル内メッシュ管理情報を読み取り、レベル0の所要のメッシュ座標(3,8)を有するファイル内メッシュ管理レコードを見つける。同様に、レベル0の所要のメッシュ座標(4,8)に対して、ファイル名がMAP3の地図ファイルのファイル内メッシュ管理情報を読み取り、レベル0の所要のメッシュ座標(4,8)を有するファイル内メッシュ管理レコードを見つける。
次いで、メッシュ情報が取得される(ステップST35)。すなわち、地図情報処理部51は、ステップST33で求められたファイル名を有する地図ファイルから、ステップST34で求められたファイル内メッシュ管理レコードが示す格納位置にあるメッシュ情報を読み取る。例えば、レベル0の所要のメッシュ座標(3,7)に対し、ファイル名がMAP0の地図ファイルからそのメッシュ情報を読み取り、レベル0の所要のメッシュ座標(4,7)に対して、ファイル名がMAP0の地図ファイルからそのメッシュ情報を読み取り、レベル0の所要のメッシュ座標(3,8)に対して、ファイル名がMAP3の地図ファイルからそのメッシュ情報を読み取り、レベル0の所要のメッシュ座標(4,8)に対して、ファイル名がMAP3の地図ファイルからそのメッシュ情報を読み取る。
次いで、所要メッシュ情報の取得が終了したかどうかが調べられる(ステップST36)。すなわち、地図情報処理部51は、ステップST30で特定された所要階層の所要のメッシュのすべてに対してステップST31〜ステップST35の処理が実行されたか否かを調べる。このステップST36において、所要メッシュ情報の取得が終了していないことが判断されると、シーケンスはステップST31に戻り、上述した処理が繰り返される。一方、ステップST36において、所要メッシュ情報の取得が終了したことが判断されると、所要階層の所要のメッシュのすべてのメッシュ情報が得られたと認識され、地図情報取得処理は終了する。この終了の時点では、例えば、レベル0のメッシュ座標(3,7)、(4,7)、(3,8)、(4,8)の各メッシュについてステップST31〜ステップST35が実行され、所要のメッシュのメッシュ情報が取得される。
上述したように、地図情報記憶部4に記憶されているメッシュ管理情報および地図ファイルに含まれるファイル内メッシュ管理情報を参照することにより、所要のメッシュのメッシュ情報を地図情報記憶部4から容易に取得することができる。
以上説明したように、この発明の実施の形態1に係る地図情報処理装置によれば、ファイル名が同じ地図ファイルを置き換えるだけで更新が可能であり、更新処理が簡単で処理時間も短縮できる。また、更新領域の境界上のメッシュの地図情報は重複して記憶されないため地図情報記憶部4に記憶するデータ量を削減できる。
また、ファイル内メッシュ管理情報を固有地図ファイル内および共有地図ファイル内に格納したので、地図情報の更新に際し、メッシュ管理情報の更新が不要になり、地図情報の更新が容易になる。
また、メッシュ管理情報に格納された更新領域または隣接する更新領域の組を表す情報からファイル名を生成するため、メッシュ管理情報にファイル名を格納する必要がなく、メッシュ管理情報のデータ容量を削減できる。
実施の形態2.
この発明の実施の形態2に係る地図情報処理装置は、実施の形態1に係る地図情報処理装置において更新領域が変更された場合であっても地図情報を更新できるようにしたものである。この実施の形態2に係る地図情報処理装置の構成は、図1に示した実施の形態1に係る地図情報処理装置の構成と同じである。
実施の形態2に係る地図情報処理装置で使用されるメッシュ管理情報は、図8に示す実施の形態1のメッシュ管理情報におけるメッシュ管理レコード内の所属更新領域情報が、バージョンの変化に対する当該メッシュの所属領域の変更履歴を表すように変更されて構成されている。
図18は、実施の形態2に係る地図情報処理装置で使用される所属更新領域情報の例を示す図である。所属更新領域情報は、領域レコードと、その数を示す領域レコード数からなる。領域レコードは、変化バージョンと変化領域コードからなる。変化バージョンは、メッシュ管理レコードに対応するメッシュの所属領域が変化したときの当該メッシュ情報のバージョンを表す。変化領域コード(領域識別子に対応)は、メッシュ管理レコードに対応するメッシュの所属領域が変化した場合の変化後の当該メッシュの領域コードを表す。すなわち、変化領域コードは、作成範囲内のメッシュの地図情報が格納されたことがある固有地図ファイルに対応する更新領域の領域コードまたは共有地図ファイルに対応する隣接する更新領域の組の領域コードを表す。
メッシュ管理レコードに対応するメッシュの所属領域が、初期バージョンから変化していないときは、所属更新領域情報は、1つの領域レコードを有し、変化バージョンとして初期バージョンが設定され、変化領域コードとして初期バージョンの当該メッシュの領域コードが設定される。
図19は、バージョン2の更新領域の例を示す図である。この例では、図3に示した初期バージョン(バージョン1)に対し、更新領域Bが拡大され、更新領域Aが縮小されている。図20は、バージョン3の更新領域の例を示す図である。この例では、図19に示したバージョン2に対し、更に更新領域Bが拡大され、更新領域Aが縮小されている。図21は、バージョン4の更新領域の例を示す図である。この例では、図20に示したバージョン3に対し、新たに更新領域Dが追加されて設けられている。
図22は、図19に示したバージョン2の更新領域に対する固有地図ファイルおよび共有地図ファイルを示す図である。図23は、図20に示したバージョン3の更新領域に対する固有地図ファイルおよび共有地図ファイルを示す図である。図24は、図21に示したバージョン4の更新領域に対する固有地図ファイルおよび共有地図ファイルを示す図である。
図24において、バージョン3におけるファイルAは、メッシュ(0,0)および(0,1)の地図情報が格納された固有地図ファイルとメッシュ(0,2)の地図情報が格納された共有地図ファイルとに分割されていない。このように、更新領域が新設された場合は、既存の地図ファイルを変更しないことにより、既存の地図ファイルの更新情報が不要となり、更新情報のデータ量を削減できる。
図25は、バージョン1に対する所属更新領域情報の設定例を示す図である。メッシュ(0,3)を除き、領域レコード数は1、変化バージョンは1である。変化領域コードは、図4に示すメッシュの所属領域を表す。メッシュ座標(0,3)のメッシュは所属する領域がないため領域レコードを持たない。初期状態では、図4に示す地図ファイルとともに、図25に示す所属更新領域情報が設定されたメッシュ管理情報が地図情報記憶部4に記憶されている。
図26は、バージョン2に対する所属更新領域情報の設定例を示す図である。例えば、メッシュ座標(0,0)のメッシュは1つの領域レコード#0を持ち、領域レコード#0はバージョン1で領域コードが0の領域に属することを示す。メッシュ座標(1,1)のメッシュは2つの領域レコード#0および#1を持ち、領域レコード#0はバージョン1で領域コードが0の領域に属し、領域レコード#1はバージョン2で領域コードが3の領域に属するようになったことを示す。
図27は、バージョン3に対する所属更新領域情報の設定例を示す図である。例えば、メッシュ座標(1,0)のメッシュは2つの領域レコード#0および#1を持ち、領域レコード#0はバージョン1で領域コードが0の領域に属し、領域レコード#1はバージョン3で領域コードが3の領域に属するようになったことを示す。メッシュ座標(2,1)のメッシュは3つの領域レコード#0〜#2を持ち、領域レコード#0はバージョン1で領域コードが4の領域に属し、領域レコード#1はバージョン2で領域コードが6の領域に属し、領域レコード#3はバージョン3で領域コードが5の領域に属するようになったことを示す。
図28は、バージョン4に対する所属更新領域情報の設定例を示す図である。例えば、メッシュ座標(0,2)のメッシュは2つの領域レコード#0および#1を持ち、領域レコード#0はバージョン1で領域コードが0の領域に属し、領域レコード#1はバージョン4で領域コードが8の領域に属するようになったことを示す。メッシュ座標(0,3)のメッシュは1つの領域レコード#0を持ち、領域レコード#0はバージョン4で領域コードが7の領域に属するようになったことを示す。図29は、バージョン4で使用される領域コードを示す図であり、図9に示す領域コードに、領域コード7および8が追加されている。
実施の形態2に係る地図情報処理装置においては、地図情報記憶部4に記憶されている地図ファイルを示すためのファイル管理情報が地図情報記憶部4に記憶される。図30はファイル管理情報の例を示す図である。ファイル管理情報は、地図情報記憶部4に記憶された地図ファイルに対応して設けられたファイル管理レコードと、その数を表すファイル管理レコード数からなる。
ファイル管理レコードは、格納バージョンと格納領域コードからなる。格納バージョンは、対応する地図ファイルのバージョンを示す。格納領域コードは、対応する地図ファイルのファイル領域コードを表す。図31は、初期状態において地図情報記憶部4に記憶されている地図ファイル(図4に示す)に対するファイル管理レコードの設定例を示す図である。
実施の形態2に係る地図情報処理装置では、実施の形態1に係る地図情報処理装置と同様に、地図ファイルのファイル名として、その地図ファイルのファイル領域コードを含み、更に地図ファイルのバージョンが付加された文字列が付与される。
例えば、図22に示すバージョン2のファイルのファイル名は、図9に示す領域コードと、バージョンの番号である「2」を含む文字列が付与されて下記のように決定される。
ファイルAのファイル名:MAP0_2
ファイルABのファイル名:MAP3_2
ファイルACのファイル名:MAP4_2
ファイルABCのファイル名:MAP6_2
上述したように地図ファイルのファイル名を定めることにより、ファイル名の生成が容易になるとともに、メッシュ管理情報に含まれるメッシュ管理レコードからメッシュの領域コードおよびバージョンが分かり、その領域コードおよびバージョンから地図ファイルのファイル名を生成することができるので、ファイル名をメッシュ管理情報に含める必要がなく、メッシュ管理情報のデータ量を削減できる。
次に、実施の形態2に係る地図情報処理装置で使用される更新情報について説明する。図32は、実施の形態2に係る地図情報処理装置で使用される更新情報の例を示す図である。この更新情報は、実施の形態1で使用される更新情報に、メッシュ管理情報とファイル操作情報が追加されるとともに、更新情報ヘッダに、メッシュ管理情報、ファイル操作情報の格納位置およびデータサイズを示す情報およびバージョン間操作情報を管理する情報(いずれも図示は省略する)が追加されて構成されている。
更新情報によって更新される更新領域の内部メッシュおよび境界メッシュの所属領域が、バージョン1から更新情報によって提供される地図情報のバージョンに至るまでの間に変化したときにのみ更新情報はメッシュ管理情報を有し、そうでないときは、メッシュ管理情報を更新する必要がないため、更新情報はメッシュ管理情報を有せず、更新情報ヘッダのメッシュ管理情報の格納位置には無効を表す値が設定され、データサイズは0とされる。この構成により、更新領域の大きさが変化してもメッシュ管理情報の更新を容易にする更新情報が得られるとともに、不要なメッシュ管理情報は更新情報に含まれないので、更新情報のデータ量を削減できる。
ファイル操作情報は、更新情報によって提供される地図情報のバージョンをVとするとき、バージョン間操作情報#1、バージョン間操作情報#2、・・・、バージョン間操作情報#V−1からなり、バージョン間操作情報#v(v=1,2,・・・,V−1)は、更新情報が更新対象とする地図情報記憶部4に記憶されている更新領域の地図ファイルのバージョンがvの場合に、その更新情報による更新に必要なファイル操作を指定する情報である。これにより、地図情報記憶部4に記憶されている、更新の対象となる更新領域の地図ファイルのバージョンに関わらず、更新情報による更新が可能となる。
図33は、バージョン間操作情報の例を示す図である。バージョン間操作情報は、操作レコードと、この操作レコードの数を表す操作レコード数からなる。操作レコードは、操作コード、ファイル領域コードおよびファイルバージョンからなる。操作コードは、書き換え、追加または削除を意味するコードであり、例えばそれぞれ0、1または2が割り当てられている。ファイル領域コードは、操作対象となる地図ファイルのファイル領域コードを示す。ファイルバージョンは、削除する地図ファイルのバージョンを示す。操作コードが削除以外のときは無効値(例えば−1)が設定される。
バージョン間操作情報は、操作コードが置き換えのときは、ファイル領域コードが示す地図情報記憶部4に記憶されている地図ファイルをファイル領域コードが示す更新情報内の地図ファイルで置き換えることを示し、操作コードが追加のときは、ファイル領域コードが示す更新情報内の地図ファイルを地図情報記憶部4に追加することを示し、操作コードが削除のときは、ファイル領域コードおよびファイルバージョンが示す地図情報記憶部4に記憶されている地図ファイルを削除することを示す。
図34は、地図情報記憶部4に格納されたバージョン1の地図情報(図4参照)を更新する更新情報の例であり、更新領域Bをバージョン2へ更新するために使用される。この図34に示すメッシュ管理情報の所属更新領域情報は、図26に示す設定となっている。また、図34に示すファイル操作情報は、更新領域Bをバージョン1からバージョン2へ更新するバージョン間操作情報#1からなり、バージョン間操作情報#1は操作レコード#0〜操作レコード#3からなり、これらの操作レコードは、地図情報記憶部4に記憶されているバージョン1の図4における更新領域Bの固有地図ファイルであるファイルB(ファイル名MAP1_1)と、共有地図ファイルであるファイルAB(ファイル名MAP3_1)、ファイルBC(ファイル名MAP5_1)およびファイルABC(ファイル名MAP6_1)を、それぞれ、更新情報内のバージョン2の図22における更新領域Bの固有地図ファイルであるファイルB(ファイル名MAP1_2)と、共有地図ファイルであるファイルAB(ファイル名MAP3_2)、ファイルBC(ファイル名MAP5_2)およびファイルABC(ファイル名MAP6_2)に置き換えることを示している。
図38は、上述したファイル操作情報に従って、地図情報記憶部4に格納された、図4に示すバージョン1の地図情報を更新した後の、地図情報記憶部4に記憶されている地図ファイルを示す図である。
更新情報内のバージョン2の地図ファイルに対応するメッシュ全体と置き換えの対象となったバージョン1の地図ファイルに対応するメッシュ全体とが一致するため、つまり、更新情報が更新の対象とする更新領域の地図情報記憶部4に記憶された地図ファイルに対応するメッシュ全体が更新情報に含まれる地図ファイルに対応するメッシュ全体に含まれるため、更新情報により地図情報を更新しても、地図ファイルから地図情報を取得できないメッシュは発生しない。
なお、更新情報内のバージョン2の地図ファイルに対応するメッシュ全体が置き換えの対象となったバージョン1の地図ファイルに対応するメッシュ全体を包含する場合も、更新情報により地図情報を更新しても、取得できないメッシュは発生しないため、上記と同様のファイル操作情報が用いられる。
図35は、地図情報記憶部4に格納された更新領域Bの地図ファイルをバージョン3へ更新する更新情報の例を示す図である。この図35に示すメッシュ管理情報の所属更新領域情報は図27に示す設定となっている。また、図35に示すファイル操作情報は、更新領域Bの地図ファイルをバージョン1からバージョン3へ更新するバージョン間操作情報#1、バージョン2からバージョン3へ更新するバージョン間操作情報#2からなる。
例えば、バージョン間操作情報#2は操作レコード#0〜操作レコード#6からなり、操作レコード#0〜操作レコード#2は、地図情報記憶部4に記憶されているバージョン2の図22における更新領域Bの固有地図ファイルであるファイルB(ファイル名MAP1_2)と、共有地図ファイルであるファイルAB(ファイル名MAP3_2)およびファイルBC(ファイル名MAP5_2)を、それぞれ、更新情報内のバージョン3の図23における更新領域Bの固有地図ファイルであるファイルB(ファイル名MAP1_3)と、共有地図ファイルであるファイルAB(ファイル名MAP3_3)およびファイルBC(ファイル名MAP5_3)に置き換えることを示し、操作レコード#3は、バージョン1の図4における更新領域Bの共有地図ファイルであるファイルAC(ファイル名MAP4_1)が地図情報記憶部4に記憶されていれば、そのファイルを削除することを示し、操作レコード#4は、バージョン1の図4における更新領域Bの共有地図ファイルであるファイルABC(ファイル名MAP6_1)が地図情報記憶部4に記憶されていれば、そのファイルを削除することを示し、操作レコード#5は、バージョン2の図22における更新領域Bの共有地図ファイルであるファイルAC(ファイル名MAP4_2)が地図情報記憶部4に記憶されていれば、そのファイルを削除することを示し、操作レコード#6は、バージョン2の図22における更新領域Bの共有地図ファイルであるファイルABC(ファイル名MAP6_2)が地図情報記憶部4に記憶されていれば、そのファイルを削除することを示している。
図39は、上述したファイル操作情報に従って、図38に示された地図ファイルを更新した後に、地図情報記憶部4に記憶されている地図ファイルを示す。バージョン1のファイルAC(ファイル名MAP4_1)に対応するメッシュ(2、0)および(2,1)、ファイルABC(ファイル名MAP6_1)に対応するメッシュ(2、2)、バージョン2のファイルAC(ファイル名MAP4_2)に対応するメッシュ(2、0)、ファイルABC(ファイル名MAP6_2)に対応するメッシュ(2,1)は、バージョン3のファイルBC(ファイル名MAP5_3)に対応するメッシュ(2、0)、(2,1)、(2、2)および(2,3)に包含されるため、当該更新情報による更新後は不要となり、削除される。
図36は、地図情報記憶部4に格納された地図情報に更新領域Dを新規に追加し、バージョン4に更新する更新情報である。この図36に示すメッシュ管理情報の所属更新領域情報は図28に示す設定となっている。図36に示すファイル操作情報は、更新領域Dを、バージョン1からバージョン4に更新するバージョン間操作情報#1、バージョン2からバージョン4に更新するバージョン間操作情報#2およびバージョン3からバージョン4に更新するバージョン間操作情報#3からなり、例えば、バージョン間操作情報#3は操作レコード#0および操作レコード#1からなり、これらの操作レコードは、更新情報の図24における更新領域Dの固有地図ファイルであるファイルD(ファイル名MAP7_4)および更新領域Dの共有地図ファイルであるファイルAD(ファイル名MAP8_4)を追加することを示している。
図40は、上述したファイル操作情報に従って、図39に示された地図ファイルを更新した後に、地図情報記憶部4に記憶されている地図ファイルを示す図である。図40から分かるように、バージョン4で更新領域Dが新設されたときに、バージョン1のファイルA(ファイル名MAP0_1)を固有地図ファイルと共有地図ファイルに別けることなく地図情報を更新できる。
図37は、地図情報記憶部4に格納された図4のバージョン1の地図情報を更新する更新情報の例であり、更新領域Aをバージョン3へ更新するために使用される。この図37のメッシュ管理情報の所属更新領域情報は図27に示す設定となっている。図37のファイル操作情報は、更新領域Aを、バージョン1からバージョン3に更新するバージョン間操作情報#1およびバージョン2からバージョン3に更新するバージョン間操作情報#2からなり、例えば、バージョン間操作情報#1は操作レコード#0と操作レコード#1からなり、操作レコード#0は、地図情報記憶部4に記憶されているバージョン1の図4における更新領域Aの固有地図ファイルであるファイルA(ファイル名MAP0_1)を、更新情報内のバージョン2の図22における更新領域Aの固有地図ファイルであるファイルA(ファイル名MAP0_2)で置き換えることを示し、操作レコード#1は、更新情報内のバージョン2の図22における更新領域Aの共有地図ファイルであるファイルAB(ファイル名MAP3_2)を地図情報記憶部4に追加して記憶することを示している。
図41は、上述したファイル操作情報に従って、地図情報記憶部4に格納された図4に示すバージョン1の地図情報を更新した後に地図情報記憶部4に記憶されている地図ファイルを示す図である。図41に示すように、バージョン1のファイルAB(ファイル名MAP3_1)はメッシュ(1,2)の地図情報を有し、バージョン2のファイルAB(ファイル名MAP3_3)はメッシュ(1,0)および(1,1)の地図情報を有し、ファイルABをバージョン1からバージョン2へ置き換えると、メッシュ(1,2)の地図情報は地図情報記憶部4から無くなることになる。
このため、上述したファイル操作情報のように、更新対象とする更新領域のバージョン1のファイルAB(ファイル名MAP3_1)に対応するメッシュの中に、更新情報内のバージョン2の地図ファイルに対応するメッシュに含まれないものが存在する場合、更新情報内のバージョン2のファイルAB(ファイル名MAP3_2)を追加し、バージョン1のファイルAB(ファイル名MAP3_1)を残すことにより、メッシュ(1,2)の地図情報を地図情報記憶部4に記憶しておくことができる。
次に、この発明の実施の形態2に係る地図情報処理装置の動作を説明する。この地図情報処理装置の動作は、地図情報更新処理および地図情報取得処理を除き、図14のフローチャートに示した実施の形態1に係る地図情報処理装置の動作と同じである。
以下では、図4に示すバージョン1の地図情報が地図情報記憶部4に記憶されている状態から、更新例1として、更新領域Bを図34に示す更新情報によりバージョン2へ更新し、更新例2として、更に更新領域Bを図35に示す更新情報によりバージョン3へ更新し、更新例3として、更に更新領域Dを図36に示す更新情報によりバージョン4へ更新する場合と、更新例4として、図4に示すバージョン1の地図情報が地図情報記憶部4に記憶された状態から、更新領域Aを図37に示す更新情報によりバージョン3へ更新する場合について説明する。
図42は、図14に示すフローチャートのステップST11で実行される地図更新処理の詳細を示すフローチャートである。なお、図15のフローチャートに示した実施の形態1に係る地図更新処理と同じ処理を行うステップには、図15で使用した符号と同じ符号を付して説明を簡略化する。
地図更新処理では、まず、更新情報ヘッダが取得される(ステップST20)。次いで、地図ファイルヘッダが取得される(ステップST21)。次いで、更新情報が適正であるかどうかが調べられる(ステップST22)。このステップST22において、更新情報が適正でないことが判断されると、不適正通知が行われる(ステップST23)。一方、上記ステップST22において、更新情報が適正であることが判断されると、更新開始通知が行われる(ステップST24)。
次いで、メッシュ管理情報の置き換えが行われる(ステップST100)。すなわち、更新部52は、ステップST20で取得した更新情報ヘッダを参照し、メッシュ管理情報が更新情報に存在すれば、更新情報からメッシュ管理情報を読み取り、地図情報記憶部4に記憶されているメッシュ管理情報を、この読み取ったメッシュ管理情報で置き換える。
更新例1では、図34に示す更新情報により更新された結果、図26に示すように、メッシュ(1,1)、(1,2)、(2,1)および(2,2)の所属領域が変化するため、図34に示すように、更新情報はメッシュ管理情報を有しており、地図情報記憶部4に記憶されているバージョン1のメッシュ管理情報は、図34に示す更新情報のメッシュ管理情報で置き換えられる。
更新例2では、更新例1で置き換えられた地図情報記憶部4に記憶されているメッシュ管理情報が、図35に示す更新情報のメッシュ管理情報で置き換えられる。更新例3では、更新例2で置き換えられた地図情報記憶部4に記憶されているメッシュ管理情報が、図36に示す更新情報のメッシュ管理情報で置き換えられる。更新例4では、地図情報記憶部4に記憶されているバージョン1のメッシュ管理情報が、図37に示す更新情報のメッシュ管理情報で置き換えられる。
上述したように更新領域の大きさが変化した場合に、メッシュ管理レコードを個別に書き換えることなく、メッシュ管理情報を置き換えるという簡単な処理でメッシュ管理情報を更新できる。
次いで、バージョン間操作情報が取得される(ステップST101)。すなわち、更新部52は、ファイル管理情報を検索し、ステップST20で取得された更新情報ヘッダの更新対象領域コードと同じ格納領域コードを持つファイル管理レコードであって格納バージョンが最も新しいものを見つける。この検索により見つけられたファイル管理レコードの格納バージョンは、地図情報記憶部4に記憶されている更新対象領域コードをファイル領域コードとする地図ファイルの中で最も新しいバージョンのものを示している。
次に、更新情報の地図ファイル操作情報から、検索により見つけられたファイル管理レコードの格納バージョンから更新情報ヘッダの更新バージョンへ更新するためのバージョン間操作情報が読み取られる。
図44は、更新例1、更新例2および更新例3における更新後のファイル管理情報を示す図である。なお、図44において、格納バージョンが−1のファイル管理レコードは無効なファイル管理レコードであること示している。
更新例1では、図31に示すファイル管理情報において、図34に示す更新対象領域コード(=1)と同じ格納領域コードを有するファイル管理レコードが検索され、ファイル管理レコード#1が見つけられる。ファイル管理レコード#1の格納バージョンが1で、図34の更新情報ヘッダの更新バージョンが2であるから、図34の更新情報からバージョン1からバージョン2へ更新するためのバージョン間操作情報#1が読み取られる。
更新例2では、図44に示す更新例1のファイル管理情報において、図35に示す更新対象領域コード(=1)と同じ格納領域コードを有するファイル管理レコードが検索され、ファイル管理レコード#1が見つけられる。ファイル管理レコード#1の格納バージョンが2、図35に示す更新情報ヘッダの更新バージョンが3であるから、図35に示す更新情報からバージョン2からバージョン3へ更新するためのバージョン間操作情報#2が読み取られる。
更新例3では、図44に示す更新例2のファイル管理情報において、図36に示す更新対象領域コード(=1)と同じ格納領域コードを有するファイル管理レコードが検索され、ファイル管理レコード#1が見つけられる。ファイル管理レコード#1の格納バージョンが3、図36に示す更新情報ヘッダの更新バージョンが4であるから、図35に示す更新情報からバージョン3からバージョン4へ更新するためのバージョン間操作情報#3が読み取られる。
更新例4では、図31に示すファイル管理情報で、図37に示す更新対象領域コード(=0)と同じ格納領域コードを有するファイル管理レコードが検索され、ファイル管理レコード#0が見つけられる。ファイル管理レコード#0の格納バージョンが1、図34に示す更新情報ヘッダの更新バージョンが3であるから、図37に示す更新情報よりバージョン1からバージョン3へ更新するためのバージョン間操作情報#1が読み取られる。
このステップST101の処理により、地図情報記憶部4に記憶されている更新の対象領域の地図ファイルで、最も新しいバージョンから更新情報が提供する地図ファイルのバージョンへの更新に必要なバージョン間操作情報を取得することができる。
次いで、地図ファイル操作が行われる(ステップST102)。すなわち、更新部52は、ステップST101で取得したバージョン間操作情報の操作レコードに従い、地図情報記憶部4に記憶されている地図ファイルの更新情報に含まれる地図ファイルへの置き換え、更新情報の地図ファイルの地図情報記憶部4への追加または地図情報記憶部4に記憶されている地図ファイルの削除を行う。
なお、置き換えの対象となる地図情報記憶部4に記憶された地図ファイルのファイル名は、操作レコードのファイル領域コードとステップST101で見つけられたファイル管理レコードの格納バージョンとから生成され、削除の対象となる地図情報記憶部4に記憶された地図ファイルのファイル名は、操作レコードのファイル領域コードとファイルバージョンとから生成される。
更新例1では、ステップST101で取得された図34に示すバージョン間操作情報#1の地図ファイル操作情報に従って、地図情報記憶部4に記憶されているバージョン1の図4における更新領域Bの固有地図ファイルであるファイルB(ファイル名MAP1_1)と、更新領域Bの共有地図ファイルであるファイルAB(ファイル名MAP3_1)、ファイルBC(ファイル名MAP5_1)およびファイルABC(ファイル名MAP6_1)が、それぞれ、図35に示す更新情報内のバージョン2の図22における更新領域Bの固有地図ファイルであるファイルB(ファイル名MAP1_2)と、共有地図ファイルであるファイルAB(ファイル名MAP3_2)、ファイルBC(ファイル名MAP5_2)およびファイルABC(ファイル名MAP6_2)に置き換えられる。
この場合、地図情報記憶部4に記憶されているファイルBのファイル名として、ステップST101で見つけられた図31に示すファイル管理レコード#1の格納バージョンである1と、図34の操作レコード#0のファイル領域コードである1とからMAP1_1が生成される。他の置き換えの対象となる地図ファイルについても同様に生成される。以下の置き換えの対象となる地図ファイルについても同様である。上述した更新により、地図情報記憶部4に記憶されている地図ファイルは図38に示すようになる。
更新例2では、ステップST101で取得された図35に示すバージョン間操作情報#2の地図ファイル操作情報に従って、地図情報記憶部4に記憶されている図38における更新領域Bの固有地図ファイルであるファイルB(ファイル名MAP1_2)と、共有地図ファイルであるファイルAB(ファイル名MAP3_2)およびファイルBC(ファイル名MAP5_2)が、それぞれ、図37に示す更新情報内のバージョン3の図23における更新領域Bの固有地図ファイルであるファイルB(ファイル名MAP1_3)と、共有地図ファイルであるファイルAB(ファイル名MAP3_3)およびファイルBC(ファイル名MAP5_3)に置き換えられる。
更新領域A、Cは更新されていないため地図情報記憶部4にはバージョン1の図4における更新領域A、Cの共有地図ファイルであるファイルAC(ファイル名MAP4_1)が記憶されており、図35に示す操作レコード#3の指示に従ってファイルAC(ファイル名MAP4_1)が削除され、更新例1の更新により、地図情報記憶部4には図38における更新領域Bの共有地図ファイルであるファイルABC(ファイル名MAP6_2)が記憶されており、図35に示す操作レコード#6の指示に従ってファイルABC(ファイル名MAP6_2)が削除される。
この場合、削除の対象となるファイルACのファイル名として、図35に示す操作レコード#3のファイル領域コードである4とファイルバージョンである1とからMAP4_1が生成される。ファイルABCのファイル名についても同様に生成される。上述した更新により、地図情報記憶部4に記憶されている地図ファイルは図39に示すようになる。
更新例3では、ステップST101で取得された図36に示すバージョン間操作情報#3の地図ファイル操作情報に従って、図36に示す更新情報内のバージョン4の図24における更新領域Dの固有地図ファイルであるファイルD(ファイル名MAP7_4)および更新領域Dの共有地図ファイルであるファイルAD(ファイル名MAP8_4)が地図情報記憶部4に追加して記憶される。上述した更新により、地図情報記憶部4に記憶している地図ファイルは図40に示すようになる。
更新例4では、ステップST101で取得された図37のバージョン間操作情報#1の地図ファイル操作情報に従って、地図情報記憶部4に記憶されているバージョン1の図4における更新領域Aの固有地図ファイルであるファイルA(ファイル名MAP0_1)が、図37に示す更新情報内のバージョン3の図23における更新領域Aの固有地図ファイルであるファイルA(ファイル名MAP0_3)に置き換えられ、図37に示す更新情報内のバージョン2の図23における更新領域Aの共有地図ファイルであるファイルAB(ファイル名MAP3_3)が地図情報記憶部4に追加して記憶される。上述した更新により、地図情報記憶部4に記憶している地図ファイルは図41に示すようになる。
上述したようにバージョン間操作情報に従って地図ファイルの置き換え、追加または削除を行うことにより地図情報の更新が容易にできる。
次いで、ファイル管理情報の更新が行われる(ステップST103)。すなわち、更新部52は、ステップST102で行ったファイル操作の結果に従い、地図情報記憶部4に記憶されているファイル管理情報を更新する。
更新例1では、格納領域コードが1、3、5、6の地図ファイルのバージョンが2となるため、図44に示すように、ファイル管理レコード#1、#3、#5、#6の格納バージョンが2に変更される。更新例2では、格納領域コードが1、3、5の地図ファイルのバージョンが3となるため、図44に示すように、ファイル管理レコード#1、#3、#5の格納バージョンが3に変更され、格納領域コードが4、6の地図ファイルが削除されるためファイル管理レコード#4、#6の格納バージョンが無効値(−1)に変更される。
更新例3では、格納領域コードが7、8の地図ファイルが追加されるため、ファイル管理レコード#7、#8が追加される。更新例4では、図31に示すファイル管理情報が図45に示すファイル管理情報のように更新され、格納領域コードが0の地図ファイルのバージョンが3となるため、図45に示すように、ファイル管理レコード#0の格納バージョンが3に変更され、バージョンが3でファイル領域コードが3の地図ファイルが追加されるため、ファイル管理レコード#7が追加される。
このステップST103の処理により、どの地図ファイルが地図情報記憶部4に記憶されているかを、ファイル管理情報を参照することにより知ることができる。
図43は、図14に示すフローチャートのステップST14で実行される地図更新処理の詳細を示すフローチャートである。なお、図16のフローチャートに示した実施の形態1に係る地図更新処理と同じ処理を行うステップには、図16で使用した符号と同じ符号を付して説明を簡略化する。
地図情報取得処理では、まず、所要メッシュの特定が行われる(ステップST30)。次いで、最上位層の包含メッシュ座標が算出される(ステップST31)。次いで、メッシュ管理レコードが取得される(ステップST32)。
次いで、領域コードが検索される(ステップST200)。すなわち、更新部52は、ステップST32で取得したメッシュ管理レコードの所属更新領域情報から変化バージョンの新しい順に領域レコードを取得し、その変化バージョンと変化領域コードの組と同じである格納バージョンと格納領域コードとの組を持つファイル管理レコードをファイル管理情報から見つける。
変化バージョンの新しい順に検索されるので、見つけられたファイル管理レコードは、地図情報記憶部4に記憶されている中で、メッシュ管理レコードに対応するメッシュの地図情報が格納された最も新しいバージョンの地図ファイルを示しており、最も新しいバージョンのファイルを特定できる。
地図情報記憶部4の地図情報が更新されていない状態では、例えばメッシュ(0,0)のメッシュ管理レコードがステップST32で取得されたとき、その所属更新領域情報から図25に示すメッシュ(1,1)の領域レコード#0が取得され、その変化バージョンが1、変化領域コードが0であるから、図31に示すファイル管理情報から格納バージョンが1、格納領域コードが0であるファイル管理レコード#0が見つけられる。このファイル管理レコード#0により、メッシュ(0,0)の地図情報はファイル領域コードが0でバージョン1の地図ファイルに格納されていることが分かる。
更新例1では、例えばメッシュ(1,2)のメッシュ管理レコードがステップST32で取得されたとき、その所属更新領域情報から図26に示すメッシュ(1,2)の領域レコード#1が取得され、その変化バージョンが2、変化領域コードが1であるから図44に示す更新例1のファイル管理レコードが検索され、格納バージョンが2、格納領域コードが1であるファイル管理レコード#1が見つけられる。このファイル管理レコード#1により、メッシュ(1,2)の地図情報はファイル領域コードが1でバージョン2の地図ファイルに格納されていることが分かる。
メッシュ(1,2)は、図19に示すように、バージョン2で更新領域Bを拡張した箇所に含まれ、上述したように更新領域を拡張しても、所要のメッシュの地図情報を含む最も新しいバージョンの地図ファイルを特定でき、更新が可能になる。
更新例2では、例えばメッシュ(2,0)のメッシュ管理レコードがステップST32で取得されたとき、その所属更新領域情報から図27に示すメッシュ(2,0)の領域レコード#1が取得され、その変化バージョンが3、変化領域コードが5であるから図44に示す更新例2のファイル管理レコードが検索され、格納バージョンが3、格納領域コードが5であるファイル管理レコード#5が見つけられる。このファイル管理レコード#5により、メッシュ(2,0)の地図情報はファイル領域コードが5でバージョン3の地図ファイルに格納されていることが分かる。
メッシュ(2,0)の地図情報は、更新領域Bの1回目の更新後までは、図4または図38に示すファイルACに格納され、更新領域Bの2回目の更新時にステップST102で削除されている。このように不要な地図ファイルを削除した場合であっても、所要のメッシュの最も新しいバージョンの地図情報を含む地図ファイルを特定でき、更新が可能になる。
更新例3では、例えばメッシュ(0,3)のメッシュ管理レコードがステップST32で取得されたとき、その所属更新領域情報から図28に示すメッシュ(0,3)の領域レコード#0が取得され、その変化バージョンが4、変化領域コードが7であるから、図44に示す更新例3のファイル管理レコードが検索され、格納バージョンが4、格納領域コードが7であるファイル管理レコード#7が見つけられる。このファイル管理レコード#7により、メッシュ(0,3)の地図情報はファイル領域コードが7でバージョン4の地図ファイルに格納されていることが分かる。
メッシュ(0,3)は、図21に示すように新規に追加された更新領域Dのメッシュである。また、メッシュ(0,2)のメッシュ管理レコードがステップST32で取得されたとき、その所属更新領域情報から図28に示すメッシュ(0,2)の領域レコード#1が取得され、その変化バージョンが4、変化領域コードが8であるから、図44に示す更新例3のファイル管理レコードが検索され、格納バージョンが4、格納領域コードが8であるファイル管理レコード#8が見つけられる。このファイル管理レコード#8により、メッシュ(0,2)の地図情報はファイル領域コードが8でバージョン4の地図ファイルに格納されていることが分かる。
なお、更新領域Aは更新されていないため、メッシュ(0,2)の地図情報は、図40に示すファイルAにも格納されているが、図28に示すメッシュ(0,2)の領域レコード#0よりも新しい変化バージョンを持つ領域レコード#1を先に取得するため、図44の更新例3のファイルAを示すファイル管理レコード#0が見つけられることはなく、メッシュ(0,2)の地図情報を格納する最も新しい地図ファイルが分かる。
上述したように更新領域を新規に追加した場合であっても、所要のメッシュの最も新しいバージョンの地図情報を含む地図ファイルを特定でき、更新が可能になる。
更新例4では、例えばメッシュ(1,2)のメッシュ管理レコードがステップST32で取得されたとき、その所属更新領域情報から図27に示すメッシュ(1,2)の領域レコード#1が取得され、その変化バージョンが2、変化領域コードが1であるから、格納バージョンが2、格納領域コードが1のファイル管理レコードを見つけるため、図45に示すファイル管理情報が検索されるが、このようなファイル管理レコードを見つけることができない。これは、更新例4では更新領域Bはバージョン1のままであるため、図41に示すようにバージョン2のファイルB(MAP1_2)が地図情報記憶部4に記憶されていないことによる。
次に、上述した変化バージョンの次に新しい変化バージョンを持つ図27に示すメッシュ(1,2)の領域レコード#0が取得され、その変化バージョンが1、変化領域コードが3であるから、図45のファイル管理情報が検索され、格納バージョンが1、格納領域コードが3のファイル管理レコード#3が見つけられる。このファイル管理レコード#3により、メッシュ(1,2)の地図情報はファイル領域コードが3でバージョン1の地図ファイルに格納されていることが分かる。
メッシュ(1,2)は、図20に示すように、更新領域Aが縮小されて更新領域Aに含まれなくなり、更新領域Bが拡大されて更新領域Bに含まれるようになったメッシュであり、更新領域が縮小または拡大された場合であっても、所要のメッシュの地図情報記憶部4に記憶された最も新しいバージョンの地図情報を含む地図ファイルを特定でき、更新が可能になる。この場合、旧バージョンの地図ファイルは残されるので縮小された箇所のメッシュ情報も取得できる。
次いで、地図ファイル名が決定される(ステップST33)。すなわち、ステップST200で見つけたファイル管理レコードの格納バージョンと格納領域コードとからファイル名が生成される。例えば、図44に示す更新例1のファイル管理レコード#1がステップST200で見つかった場合は、その格納バージョンの2および格納領域コードの1を用いて、ファイル名がMAP2_1とされる。
このようにファイル管理レコードの格納バージョンと格納領域コードからファイル名を生成することにより、ファイル名をメッシュ管理レコードおよびファイル管理レコードに含める必要がなく、データ容量を削減できる。
次いで、ファイル内メッシュ管理レコードが取得される(ステップST34)。次いで、メッシュ情報が取得される(ステップST35)。次いで、所要メッシュ情報の取得が終了したかどうかが調べられる(ステップST36)。このステップST36において、所要メッシュ情報の取得が終了していないことが判断されると、シーケンスはステップST31に戻り、上述した処理が繰り返される。一方、ステップST36において、所要メッシュ情報の取得が終了したことが判断されると、所要階層の所要のメッシュのすべてのメッシュ情報が得られたと認識され、地図情報取得処理は終了する。
なお、上述した実施の形態1または実施の形態2に係る地図情報処理装置において、更新情報の記憶媒体としてメモリカードを使用したが、メモリカードに限定されず、他の記憶媒体を用いることもできる。
また、同一階層において、メッシュはすべて同じ大きさとしたが、地図情報のデータサイズが所定値を超えるメッシュでは、更に小さなメッシュに分割するように構成することもできる。
また、1つの記憶媒体に1つの更新領域を更新対象とする更新情報を記憶したが、1つの記憶媒体に複数の更新領域を更新対象とする更新情報を記憶するように構成することもできる。
また、地図ファイルにすべての階層の地図情報を格納したが、階層毎に地図ファイルを設けることもでき、更新情報も階層毎に設けるように構成することもできる。
また、更新情報の地図ファイルに格納するメッシュ情報として提供するバージョンのメッシュ情報を格納したが、上述したメッシュ情報の代わりに、地図情報記憶部4に記憶しているバージョンのメッシュ情報と更新情報として供するバージョンのメッシュ情報との差分を表すメッシュ差分情報を格納し、上述したメッシュ差分情報を用いて該当する地図情報記憶部4に記憶しているメッシュ情報を差分更新するように構成することもできる。
また、実施の形態2に係る地図情報処理装置において、更新情報にファイル操作情報を設けたが、ファイル操作情報を設けずに、更新情報のメッシュ管理情報と地図情報記憶部4に記憶しているメッシュ管理情報とをメッシュ単位で比較し、地図ファイルの置き換え、追加または削除を決定するように構成することもできる。