地図更新システム及び地図更新プログラム
【課題】限られた容量のメモリを効率的に利用してキャッシュ領域を確保することにより、地図の更新処理に要する時間を短縮することが可能な地図更新システムを提供する。
【解決手段】更新処理に必要なデータを、当該データがメモリ50のキャッシュ領域51にあればキャッシュ領域51から読み出し、当該データがキャッシュ領域51になければ地図データベース80から読み出して、更新処理を行う更新処理手段40と、更新処理手段40により読み出されたデータをキャッシュ領域51に格納するキャッシュ格納手段22と、更新処理の対象となる地図データ81の内容に基づいて、更新処理用領域52として必要なメモリ50の容量である処理用メモリ容量を決定する処理用メモリ容量決定手段31と、処理用メモリ容量に基づいて、キャッシュ領域51として割り当てるメモリ50の容量であるキャッシュ容量を決定するキャッシュ容量決定手段33と、を備える。
【解決手段】更新処理に必要なデータを、当該データがメモリ50のキャッシュ領域51にあればキャッシュ領域51から読み出し、当該データがキャッシュ領域51になければ地図データベース80から読み出して、更新処理を行う更新処理手段40と、更新処理手段40により読み出されたデータをキャッシュ領域51に格納するキャッシュ格納手段22と、更新処理の対象となる地図データ81の内容に基づいて、更新処理用領域52として必要なメモリ50の容量である処理用メモリ容量を決定する処理用メモリ容量決定手段31と、処理用メモリ容量に基づいて、キャッシュ領域51として割り当てるメモリ50の容量であるキャッシュ容量を決定するキャッシュ容量決定手段33と、を備える。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、地図データが格納された地図データベースを備え、更新用データの提供を受けて前記地図データベースの更新処理を行う地図更新システム、及びそのような地図データベースの更新処理を行うための地図更新プログラムに関する。
【背景技術】
【0002】
一般的に、地図は、刻々と変化する道路や施設等の現実の状態を正確に表していることが望まれる。そこで、例えばナビゲーション装置等に用いられるような、電子データとしての地図データを格納した地図データベースでは、通信ネットワークやデータ記録媒体等を介して更新用データを適宜提供し、当該更新用データを用いて地図データベースの更新を行うシステムが既に知られている。このような地図データベースの更新システムとして、例えば、下記の特許文献1には、以下のような更新システムが記載されている。
【0003】
すなわち、この更新システムは、所定の動作プログラムに従って動作するナビゲーション装置等の端末装置と、更新用データとしての差分データファイルを提供するサーバ装置とを有して構成される。端末装置は、差分データファイルによる差分更新を行うための更新用データ形式の地図データを格納したローカル保存データベースと、動作プログラムにより参照される参照用データ形式の地図データを格納した参照データベースとを備えている。そして、端末装置は、差分データファイルの提供を受けてローカル保存データベース内の更新用データ形式の地図データの差分更新を行い、当該更新後の地図データを参照用データ形式の地図データに変換して参照データベースに格納する処理を行う。これにより、動作プログラムにより参照される参照データベース内の地図データが更新される。
【0004】
【特許文献1】特開2007−328739号公報(第17−21頁、第1図)
【発明の開示】
【発明が解決しようとする課題】
【0005】
上記のような地図データベースの更新システムでは、差分データファイルによりローカル保存データベース内の地図データの差分更新を行う際や、更新後のローカル保存データベース内の地図データを参照用データ形式の地図データに変換する際等に、必要なデータを読み出すために、ローカル保存データベース等の地図データベースに対して多量のファイルアクセスが行われる。そのため、地図データベースの更新処理に要する時間の内、このファイルアクセスのための時間が非常に大きい割合を占めている。このようなファイルアクセスの時間を短縮するためには、一度読み出されたデータをメモリのキャッシュ領域に格納し、再度同じデータを読み出す際に当該キャッシュ領域から読み出す構成とすることも、有効な解決策の一つである。
【0006】
しかしながら、コストやサイズの制約から大容量のメモリを端末装置に搭載することができない等の理由により、大きなキャッシュ領域の容量を確保することが困難な場合がある。特に、車載用のナビゲーション装置等のような端末装置では、パーソナルコンピュータ等の据え置き型の端末装置と比べて、サイズ等の制約が大きいために、大容量のメモリを搭載することが困難であった。したがって、メモリ内に大きなキャッシュ領域の容量を確保することも困難であった。そのため、キャッシュ領域に多くのデータを格納することができず、ファイルアクセスに占めるキャッシュの利用割合を高くすることができないために、ファイルアクセス時間の大幅な短縮を図ることができなかった。
【0007】
本発明は、上記の課題に鑑みてなされたものであり、その目的は、限られた容量のメモリを効率的に利用してキャッシュ領域を確保することにより、地図データベースの更新処理に要する時間を短縮することが可能な地図更新システム及び地図更新プログラムを提供することにある。
【課題を解決するための手段】
【0008】
上記目的を達成するための本発明に係る、地図データが格納された地図データベースを備え、更新用データの提供を受けて前記地図データベースの更新処理を行う地図更新システムの特徴構成は、前記更新処理に用いられる更新処理用領域と、キャッシュとして用いられるキャッシュ領域とを有するメモリと、前記更新処理に必要なデータを、当該データが前記キャッシュ領域にあれば前記キャッシュ領域から読み出し、当該データが前記キャッシュ領域になければ前記地図データベースから読み出して、前記更新処理を行う更新処理手段と、前記更新処理手段により読み出されたデータを前記キャッシュ領域に格納するキャッシュ格納手段と、前記更新処理の対象となる前記地図データの内容に基づいて、前記更新処理用領域として必要な前記メモリの容量である処理用メモリ容量を決定する処理用メモリ容量決定手段と、前記処理用メモリ容量に基づいて、前記キャッシュ領域として割り当てる前記メモリの容量であるキャッシュ容量を決定するキャッシュ容量決定手段と、を備える点にある。
【0009】
この特徴構成によれば、更新処理に必要なデータの読み出しにメモリが有するキャッシュ領域を用いるので、同じデータを複数回読み出す際に、全てのデータを地図データベースから直接読み出す場合と比べて、読み出し処理を高速化することができる。また、この特徴構成によれば、このような読み出し処理に際して利用されるキャッシュ領域に割り当てるメモリの容量であるキャッシュ容量を、更新処理の対象となる地図データの内容に基づいて決定される処理用メモリ容量に基づいて決定することになる。したがって、更新処理の対象となる地図データの内容に応じて適切な処理用メモリ容量を可変設定し、当該処理用メモリ容量の設定に応じてキャッシュ容量を可変設定することにより、処理用メモリ容量が少なくて済む場合にはその分キャッシュ容量を増加させることが可能となる。よって、キャッシュ容量を固定する場合に比べて、限られた容量のメモリを効率的に利用してキャッシュ領域を比較的大きく確保することが可能となるので、地図の更新処理に要する時間を短縮することができる。
【0010】
ここで、前記キャッシュ容量決定手段は、前記メモリの全体の容量から前記処理用メモリ容量を差し引いた容量に基づいて定まる余剰メモリ容量を、前記キャッシュ容量として決定する構成とすると好適である。
【0011】
この構成によれば、更新処理用領域として必要な処理用メモリ容量を確保した上で、更新処理の対象となる地図データの内容に応じて決定される当該処理用メモリ容量の変化に応じて、適宜キャッシュ容量を最大限に確保することができる。
【0012】
また、前記処理用メモリ容量決定手段は、前記更新処理の対象となる地図データに含まれる道路数及び交差点数の一方又は双方に基づいて、前記処理用メモリ容量を決定する構成とすると好適である。
【0013】
この構成によれば、更新処理用領域として必要なメモリ容量に大きな影響を与える地図データの内容である道路数及び交差点数の一方又は双方に応じて処理用メモリ容量を決定するので、当該地図データの更新処理に際して必要な処理用メモリ容量を適切に決定することができる。
【0014】
また、前記地図データは、交差点に対応する複数のノードと各ノード間を接続する道路に対応する複数のリンクとにより構成される道路ネットワークデータを含み、前記処理用メモリ容量決定手段は、前記更新処理の対象となる地図データに含まれるリンク数及びノード数の一方又は双方に基づいて、前記処理用メモリ容量を決定する構成とすると好適である。
【0015】
この構成によれば、地図データがノード及びリンクにより構成される道路ネットワークデータを含む場合において、更新処理用領域として必要なメモリ容量に大きな影響を与える地図データの内容であるリンク数及びノード数の一方又は双方に応じて処理用メモリ容量を決定するので、当該地図データの更新処理に際して必要な処理用メモリ容量を適切に決定することができる。
【0016】
また、前記処理用メモリ容量決定手段は、前記更新処理の対象となる地図データのデータ量に基づいて、前記処理用メモリ容量を決定する構成とすると好適である。
【0017】
この構成によれば、更新処理用領域として必要なメモリ容量に大きな影響を与える地図データの内容である当該地図データのデータ量に応じて処理用メモリ容量を決定するので、当該地図データの更新処理に際して必要な処理用メモリ容量を適切に決定することができる。
【0018】
また、前記地図データベースには、対象地域を複数の区画に分割してなる複数の区画毎の地図データが格納され、前記更新処理手段は、前記各区画の地図データを前記更新処理の対象とする構成とすると好適である。
【0019】
この構成によれば、区画毎の地図データを順次更新処理の対象とし、適切に更新処理を行うことができる。
【0020】
また、前記処理用メモリ容量決定手段は、前記更新処理の対象が次の区画の地図データに移行する際に、当該次の区画の地図データの内容に基づいて前記処理用メモリ容量を新たに決定する構成とすると好適である。
【0021】
この構成によれば、一つの更新対象の区画の地図データの更新が終了し、次の更新対象の区画の地図データの更新処理が行われる際に、当該次の地図データの内容に応じた処理用メモリ容量を適切に決定することができる。したがって、各時点で更新処理の対象となる地図データの内容に応じて適切な処理用メモリ容量を可変設定し、当該処理用メモリ容量の設定に応じてキャッシュ容量を適切に設定することができる。
【0022】
また、所定のナビゲーション処理を行うナビゲーション処理手段と、前記ナビゲーション処理として実行される処理内容に基づいて、当該ナビゲーション処理に用いられる前記メモリの領域として必要な容量であるナビゲーション用メモリ容量を決定するナビゲーション用メモリ容量決定手段と、を更に備え、前記キャッシュ容量決定手段は、前記処理用メモリ容量及び前記ナビゲーション用メモリ容量に基づいて、前記キャッシュ容量を決定する構成とすると好適である。
【0023】
この構成によれば、読み出し処理に際して利用されるキャッシュ領域に割り当てるメモリの容量であるキャッシュ容量を、更新処理の対象となる地図データの内容に基づいて決定される処理用メモリ容量と、ナビゲーション処理として実行される処理内容に基づいて決定されるナビゲーション用メモリ容量との双方に基づいて決定することになる。したがって、更新処理の対象となる地図データの内容に応じて適切な処理用メモリ容量を可変設定するとともに、ナビゲーション処理として実行される処理内容に応じて適切なナビゲーション用メモリ容量を可変設定し、当該処理用メモリ容量及びナビゲーション用メモリ容量の設定に応じてキャッシュ容量を可変設定することにより、処理用メモリ容量及びナビゲーション用メモリ容量が少なくて済む場合にはその分キャッシュ容量を増加させることが可能となる。よって、キャッシュ容量を固定する場合及び処理用メモリ容量のみに基づいてキャッシュ容量を可変設定する場合に比べて、限られた容量のメモリを効率的に利用してキャッシュ領域を比較的大きく確保することが可能となるので、地図の更新処理に要する時間を更に短縮することができる。
【0024】
ここで、前記キャッシュ容量決定手段は、前記メモリの全体の容量から前記処理用メモリ容量及び前記ナビゲーション用メモリ容量を差し引いた容量に基づいて定まる余剰メモリ容量を、前記キャッシュ容量として決定する構成とすると好適である。
【0025】
この構成によれば、更新処理用領域として必要な処理用メモリ容量及びナビゲーション処理用領域として必要なナビゲーション用メモリ容量を確保した上で、更新処理の対象となる地図データの内容に応じて決定される当該処理用メモリ容量、及びナビゲーション処理として実行される処理内容に応じて決定されるナビゲーション用メモリ容量の変化に応じて、適宜キャッシュ容量を最大限に確保することができる。
【0026】
また、前記ナビゲーション用メモリ容量決定手段は、前記ナビゲーション処理として実行中のアプリケーション処理の種類及び数の一方又は双方に基づいて、前記ナビゲーション用メモリ容量を決定する構成とすると好適である。
【0027】
この構成によれば、ナビゲーション処理用領域として必要なメモリ容量に大きな影響を与える実行中のアプリケーション処理の種類及び数の一方又は双方に応じてナビゲーション用メモリ容量を決定するので、ナビゲーション処理手段の動作状態に応じて必要なナビゲーション用メモリ容量を適切に決定することができる。
【0028】
また、前記ナビゲーション用メモリ容量決定手段は、前記各アプリケーション処理の実行が開始又は終了した際に、前記ナビゲーション用メモリ容量を新たに決定する構成とすると好適である。
【0029】
この構成によれば、ナビゲーション処理としての各アプリケーション処理の実行が開始又は終了する毎に、その時点でのアプリケーション処理の実行状況に応じたナビゲーション用メモリ容量を適切に決定することができる。したがって、各時点でのアプリケーション処理の実行状況に応じて適切なナビゲーション用メモリ容量を可変設定し、当該ナビゲーション用メモリ容量の設定に応じてキャッシュ容量を適切に設定することができる。
【0030】
また、前記キャッシュ格納手段は、前記キャッシュ領域に新たにデータを格納する際に、先に格納されたデータから順に削除する構成とすると好適である。
【0031】
この構成によれば、再度読み出される可能性が比較的低いデータを削除して新たなデータをキャッシュ領域に格納することができるので、限られたキャッシュ領域内に適切にデータを格納することができる。
【0032】
また、前記キャッシュ領域に格納された各データを、当該データを含む前記地図データベース中のファイルのアドレスと関連付けて管理するキャッシュ管理手段を更に備える構成とすると好適である。
【0033】
この構成によれば、更新処理に必要なデータを含むファイルのアドレスを指定して当該データの読み出しが行われる場合にも、当該データをキャッシュ領域から容易に読み出すことが可能となる。したがって、データの読み出し処理の更なる高速化を図ることができる。
【0034】
また、前記地図データベースは、前記更新用データにより更新するための更新用地図データが格納された更新用データベースと、前記地図データを利用するアプリケーション処理において参照するための参照用地図データが格納された参照用データベースを備え、前記更新処理手段は、前記更新用データにより前記更新用地図データを更新した後、当該更新後の更新用地図データを変換して更新後の参照用地図データを生成し、前記参照用データベースに格納する構成とすると好適である。
【0035】
この構成によれば、更新用データベースに格納された更新用の地図データを更新用データにより更新するので、更新用データによる地図データの更新処理を容易かつ迅速に行うことが可能となる。そして、このような更新後の更新用地図データをアプリケーション処理において参照するための参照用地図データに変換する構成としたことにより、アプリケーション処理からは参照に適した形式の地図データを参照して動作することが可能となる。したがって、更新用データによる地図データの更新を容易かつ迅速に行うことを可能としつつ、アプリケーション処理の動作性能の低下も抑制することができる。
【0036】
本発明に係る地図更新システムのもう一つの特徴構成は、地図データが格納された地図データベースを備え、更新用データの提供を受けて前記地図データベースの更新処理を行う地図更新システムであって、所定のナビゲーション処理を行うナビゲーション処理手段と、前記ナビゲーション処理に用いられるナビゲーション処理用領域と、キャッシュとして用いられるキャッシュ領域とを有するメモリと、前記更新処理に必要なデータを、当該データが前記キャッシュ領域にあれば前記キャッシュ領域から読み出し、当該データが前記キャッシュ領域になければ前記地図データベースから読み出して、前記更新処理を行う更新処理手段と、前記更新処理手段により読み出されたデータを前記キャッシュ領域に格納するキャッシュ格納手段と、前記ナビゲーション処理として実行される処理内容に基づいて、前記ナビゲーション処理用領域として必要な前記メモリの容量であるナビゲーション用メモリ容量を決定するナビゲーション用メモリ容量決定手段と、前記ナビゲーション用メモリ容量に基づいて、前記キャッシュ領域として割り当てる前記メモリの容量であるキャッシュ容量を決定するキャッシュ容量決定手段と、を備える点にある。
【0037】
この特徴構成によれば、更新処理に必要なデータの読み出しにメモリが有するキャッシュ領域を用いるので、同じデータを複数回読み出す際に、全てのデータを地図データベースから直接読み出す場合と比べて、読み出し処理を高速化することができる。また、この特徴構成によれば、このような読み出し処理に際して利用されるキャッシュ領域に割り当てるメモリの容量であるキャッシュ容量を、ナビゲーション処理として実行される処理内容に基づいて決定されるナビゲーション用メモリ容量に基づいて決定することになる。したがって、ナビゲーション処理として実行される処理内容に応じて適切なナビゲーション用メモリ容量を可変設定し、当該ナビゲーション用メモリ容量の設定に応じてキャッシュ容量を可変設定することにより、ナビゲーション用メモリ容量が少なくて済む場合にはその分キャッシュ容量を増加させることが可能となる。よって、キャッシュ容量を固定する場合に比べて、限られた容量のメモリを効率的に利用してキャッシュ領域を比較的大きく確保することが可能となるので、地図の更新処理に要する時間を短縮することができる。
【0038】
以上の各構成を備えた本発明に係る地図更新システムの技術的特徴は、地図更新方法や地図更新プログラムにも適用可能であり、そのため、本発明は、そのような方法やプログラムも権利の対象とすることができる。
【0039】
その場合における、更新用データの提供を受けて、地図データが格納された地図データベースの更新処理を行うための地図更新プログラムの特徴構成は、前記更新処理に必要なデータを、当該データがメモリのキャッシュ領域にあれば当該キャッシュ領域から読み出し、当該データが前記キャッシュ領域になければ前記地図データベースから読み出して、前記更新処理を行う更新処理機能と、前記更新処理機能の実行に際して読み出されたデータを前記キャッシュ領域に格納するキャッシュ格納機能と、前記更新処理の対象となる前記地図データの内容に基づいて、前記メモリにおける前記更新処理に用いられる更新処理用領域として必要な前記メモリの容量である処理用メモリ容量を決定する処理用メモリ容量決定機能と、前記処理用メモリ容量に基づいて、前記キャッシュ領域として割り当てる前記メモリの容量であるキャッシュ容量を決定するキャッシュ容量決定機能と、をコンピュータに実現させる点にある。
【0040】
また、更新用データの提供を受けて、地図データが格納された地図データベースの更新処理を行うための地図更新プログラムのもう一つの特徴構成は、所定のナビゲーション処理を行うナビゲーション処理機能と、前記更新処理に必要なデータを、当該データがメモリのキャッシュ領域にあれば当該キャッシュ領域から読み出し、当該データが前記キャッシュ領域になければ前記地図データベースから読み出して、前記更新処理を行う更新処理機能と、前記更新処理機能の実行に際して読み出されたデータを前記キャッシュ領域に格納するキャッシュ格納機能と、前記ナビゲーション処理として実行される処理内容に基づいて、前記メモリにおける前記ナビゲーション処理に用いられるナビゲーション処理用領域として必要な前記メモリの容量であるナビゲーション用メモリ容量を決定するナビゲーション用メモリ容量決定機能と、前記ナビゲーション用メモリ容量に基づいて、前記キャッシュ領域として割り当てる前記メモリの容量であるキャッシュ容量を決定するキャッシュ容量決定機能と、をコンピュータに実現させる点にある。
【0041】
当然ながら、これらの地図更新プログラムも上述した地図更新システムに係る作用効果を得ることができ、更に、その好適な構成の例として挙げたいくつかの付加的技術を組み込むことが可能である。
【発明を実施するための最良の形態】
【0042】
本発明の実施形態について図面に基づいて説明する。本実施形態においては、本発明に係る地図更新システムを、車両に搭載される車載端末装置としてのナビゲーション装置1に適用する場合を例として説明する。図1は、本実施形態に係るナビゲーション装置1の機能的な構成を模式的に示すブロック図である。このナビゲーション装置1は、地図データ3としての参照用地図データ71及び更新用地図データ81がそれぞれ格納された、地図データベース2としての参照用データベース70及びローカル保存データベース80を備えている。そして、ナビゲーション装置1は、サーバ装置5から更新用データファイル4の提供を受けて参照用地図データ71及び更新用地図データ81の更新処理を行う。この際、ナビゲーション装置1は、地図の更新処理やナビゲーション処理によって必要とされるメモリ50の容量に応じてキャッシュ領域51(図4及び図5参照)の容量を可変設定することができる構成を有している。これにより、このナビゲーション装置1は、限られた容量のメモリ50を効率的に利用してキャッシュ領域51を確保することにより、参照用データベース70及びローカル保存データベース80の更新処理に要する時間を短縮することが可能となっている。
【0043】
図1に示すナビゲーション装置1の機能部である、ファイルアクセス管理部10、更新処理部40、及びナビゲーション処理部60は、互いに共通の或いはそれぞれ独立のCPU等の演算処理装置を中核部材として、入力されたデータに対して種々の処理を行うための機能部がハードウェア又はソフトウェア(プログラム)或いはその両方により実装されて構成されている。また、同じくナビゲーション装置1の機能部である、送受信部91及び記録媒体再生部92についても、当該機能を果たすための構成が、ハードウェア又はハードウェアとソフトウェア(プログラム)の組み合わせにより実現されている。そして、これらの各機能部は、図1に矢印で示すように各種の情報やデータを受け渡し可能に接続されている。メモリ50は、各機能部を構成する演算処理装置により比較的高速に読み出し及び書き込みが可能な記憶装置であり、例えば、DRAM(Dynamic RAM)やSRAM(Static RAM)等の揮発性メモリにより構成されている。また、参照用データベース70及びローカル保存データベース80は、例えば、ハードディスクドライブやEEPROM等の不揮発性半導体メモリなどのような、データを書き換え可能に記録する記録媒体とその駆動手段とを有する装置をハードウェア構成として備えている。以下、このナビゲーション装置1の各部の構成について順に説明する。
【0044】
〔ナビゲーション処理部〕
ナビゲーション処理部60は、ナビゲーション装置1の機能としてのナビゲーション処理を実行する処理部である。本実施形態においては、このナビゲーション処理部60が本発明におけるナビゲーション処理手段に相当する。図示は省略するが、このナビゲーション処理部60には、自位置検出部、操作部、表示部、及び音声出力部等が各種の情報やデータを受け渡し可能に接続されている。ここで、自位置検出部は、ナビゲーション装置1の現在位置を検出するための機能部であり、例えば、GPS受信機、方位センサ、及び距離センサ等を備える。操作部は、例えばタッチパネル、操作スイッチ、リモートコントロールユニット等を有して構成され、使用者が操作して情報の入力や選択を行う。表示部は、例えば液晶表示装置等を有して構成され、地図や案内経路等のナビゲーション処理に関する各種情報を表示する。音声出力部は、例えばスピーカ等を有して構成され、経路案内等のナビゲーション処理に関する各種情報を音声により出力する。
【0045】
そして、本実施形態においては、ナビゲーション処理部60は、表示処理部61、マップマッチング処理部62、経路探索処理部63、及び経路案内処理部64を備えている。これらは、ナビゲーション処理としての各アプリケーション処理を実行するアプリケーション処理部に相当する。これらの各アプリケーション処理部61〜64は、通常、演算処理装置と、当該演算処理装置に対して演算処理を行わせるためのプログラムにより構成される。ここで、表示処理部61は、表示部を用いて、地図表示、当該地図上への自位置表示、案内経路の表示等、ナビゲーション処理に関する各種情報の表示のための処理を行う。マップマッチング処理部62は、自位置検出部により検出された自位置を地図の道路上に合わせるマップマッチング処理を行う。経路探索処理部63は、例えば自位置等の出発地から操作部により入力された目的地までの案内経路等を探索する処理を行う。経路案内処理部64は、経路探索処理部63により探索された目的地までの経路に従って、表示部による案内表示や音声出力部による音声案内等を用い、使用者に対して適切な進路を案内する処理を行う。なお、これらの各処理部61〜64により実行される各種のナビゲーション処理の具体的内容は公知であるので詳細な説明は省略する。本実施形態においては、各アプリケーション処理部61〜64により実行される、表示処理、マップマッチング処理、経路探索処理、及び経路案内処理の各処理が、本発明におけるアプリケーション処理に相当する。そして、各アプリケーション処理部61〜64は、アプリケーション処理を実行するに際して、参照用データベース70の参照用地図データ71を参照する。
【0046】
また、各アプリケーション処理部61〜64は、各アプリケーション処理の実行に際してメモリ50を利用する。そのため、メモリ50内には、図4及び図5に示すように、ナビゲーション処理部60によるナビゲーション処理に用いられるメモリ50の領域であるナビゲーション処理用領域53が設定される。ここでは、このナビゲーション処理用領域53として、ナビゲーション処理部60の各アプリケーション処理部61〜64により実行される各アプリケーション処理に対応して、表示処理領域54、マップマッチング処理領域55、経路探索処理領域56、及び経路案内処理領域57が設定され得る。本実施形態においては、後述するメモリ管理部30により、各アプリケーション処理部61〜64による各アプリケーション処理の実行状況に応じて、実行中の処理に対応する領域のみが、ナビゲーション処理用領域53として設定される。これにより、ナビゲーション処理用領域53のメモリ容量が可変設定される。
【0047】
〔参照用データベース〕
参照用データベース70は、地図データを利用する上記各アプリケーション処理を実行する際に、各アプリケーション処理部61〜64により参照される参照用地図データ71が格納されたデータベースである。ここで、参照用地図データ71は、各アプリケーション処理部61〜64により参照されるのに適した参照用データ形式の地図データとされている。すなわち、参照用地図データ71は、例えば、各アプリケーション処理部61〜64が共通して参照する共通地図データと、表示処理部61及びマップマッチング処理部62が参照する表示・マップマッチング用地図データと、経路探索処理部63が参照する経路探索用地図データと、経路案内処理部64が参照する経路案内用地図データと、を有して構成される。これらの参照用地図データ71を構成する各地図データは、それぞれの地図データを参照するアプリケーション処理部61〜64により参照されるのに適したデータ形式とされている。このようなデータ形式としては、例えば、各アプリケーション処理部61〜64が、各種データを処理する順序と同じ順序で各種データが配列されているデータ形式等が該当する。
【0048】
このような参照用地図データ71を構成する各地図データは、後述する更新用地図データ81(図2参照)と同様に、対象地域を複数の区画Pに分割してなる複数の区画P毎の地図データとなっている。更に、各地図データは、後述する更新用地図データ81と同様に、各区画P内に存在する複数の交差点のそれぞれに対応する複数のノードNと、各ノードN間を接続する道路に対応する複数のリンクLとにより構成される道路ネットワークデータを含んでいる。また、参照用地図データ71は、道路ネットワークデータの他に、表示処理部61による表示処理に必要な各種の情報を有する描画情報、経路案内処理部64による経路案内処理に必要な各種の案内情報等を含んでいる。ここで、描画情報には、道路形状、建物、河川等を表示するために必要な背景情報、市町村名や道路名等を表示するために必要な文字情報などが含まれる。また、案内情報には、交差点の詳細情報から成る交差点情報などが含まれる。
【0049】
〔ローカル保存データベース〕
ローカル保存データベース80は、更新用データファイル4により更新するための更新用地図データ81が格納されたデータベースである。本実施形態においては、このローカル保存データベース80が本発明における更新用データベースに相当する。ここで、更新用地図データ81は、更新用データファイル4を用いて更新するのに適した更新用データ形式の地図データとされている。このような更新用データ形式としては、例えば、地図データを構成する各種データを、そのデータ種別毎にまとめて配列したデータ形式等が該当する。このようなデータ種別としては、例えば、道路に対応するリンクに関する各種データである道路データ、交差点に対応するノードに関する各種データである交差点データ、各リンクの形状に関する各種データである形状データ、各ノードに接続するリンクに関する各種データである接続データ等がある。
【0050】
また、図2に示すように、更新用地図データ81は、対象地域を複数の区画Pに分割してなる複数の区画P毎の地図データとなっている。ここでは、各区画Pは、互いに同じ大きさの矩形となるように分割されている。例えば、日本全土の対象地域とする場合、ローカル保存データベース80には、日本全土を含む範囲の地図データをm×n(m、nは自然数)分割してなる複数の区画P毎の更新用地図データ81が格納されている。また、各更新用地図データ81は、各区画P内に存在する複数の交差点のそれぞれに対応する複数のノードNと、各ノードN間を接続する道路に対応する複数のリンクLとにより構成される道路ネットワークデータを含んでいる。
【0051】
ここで、ノードNは現実の道路における交差点に対応し、リンクLは、各交差点間を結ぶ道路に対応している。各ノードNは、緯度及び経度で表現された地図上の位置(座標)の情報を有している。また、ノードNは、ノード属性情報として、通行規制、信号の有無等の情報を有している。各リンクLは、リンク属性情報として、道路長、道路種別、道路幅、レーン数、リンク形状を表現するための形状補間点等の情報を有している。ここで、道路種別は、例えば、高速道路、国道、県道、一般道、細街路、導入路等のように、道路を複数の種別に区分した際の道路種別の情報である。なお、図2においては、一つの区画Pの道路ネットワークデータのみを図示し、他の区画Pについては省略している。また、更新用地図データ81は、参照用地図データ71に変換された後に、表示処理部61による表示処理に必要な各種の情報を有する描画情報、経路案内処理部64による経路案内処理に必要な各種の案内情報等を含んでいる。上記のとおり、描画情報には、道路形状、建物、河川等を表示するために必要な背景情報、市町村名や道路名等を表示するために必要な文字情報などが含まれる。また、案内情報には、交差点の詳細情報から成る交差点情報などが含まれる。
【0052】
〔送受信部・記録媒体再生部〕
本実施形態に係るナビゲーション装置1は、更新用データファイル4の提供を受けるための手段として、送受信部91及び記録媒体再生部92を備えている。送受信部91は、無線基地局等のサーバ装置5との間で無線通信によりデータの送受信を行うものであり、この無線通信により更新用データファイル4を受信することが可能に構成されている。このような無線通信方法としては、例えば携帯電話網や無線LAN(Local Area Network)等の公知の通信網を用いることができる。また、記録媒体再生部92は、光ディスクや磁気ディスク等の記録媒体8を再生し、当該記録媒体8に記録された更新用データファイル4を読み出すことが可能に構成されている。このような記録媒体8は、例えば、図1に示すように、使用者が、サーバ装置5からインターネット等の通信ネットワーク6を介して自らの所有するパーソナルコンピュータ等の端末装置に更新用データファイル4をダウンロードして取得し、それを記録媒体8に記録することにより生成される。
【0053】
ここで取得される更新用データファイル4は、ローカル保存データベース80に格納されている更新用地図データ81に変更を加えて更新すべき内容を表す各種のデータを一つにまとめたファイルである。ここでは、更新用データファイル4は、ローカル保存データベース80に格納されている更新用地図データ81の内容を基準として、現実に変更があった道路や施設等の変更内容を差分として表す差分データのファイルとなっている。そして、この更新用データファイル4には、更新用地図データ81に対応して、更新対象となる一又は二以上の区画P毎の更新用データが含まれる。更に、本実施形態においては、更新用データファイル4は、更新用地図データ81に対する追加、変更、削除等の更新態様毎に分けられるとともに、各更新態様についての更新内容のデータを、更新用地図データ81と同様にデータ種別毎にまとめて配列したデータ形式を有している。上記のとおり、このようなデータ種別としては、例えば、道路データ、交差点データ、形状データ、及び接続データ等がある。
【0054】
〔更新処理部〕
更新処理部40は、更新用データファイル4を用いてローカル保存データベース80及び参照用データベース70の更新処理を実行する処理部である。本実施形態においては、更新処理部40は、差分合成部41、参照用データ変換部42、及びファイル名−アドレステーブル43を備えている。そして、更新処理部40は、まず、差分合成部41により、更新用データファイル4を用いてローカル保存データベース80に格納された更新用地図データ81を更新する。その後、参照用データ変換部42により、当該更新後の更新用地図データ81を変換して更新後の参照用地図データ71を生成し、それを参照用データベース70に格納する。これにより、ローカル保存データベース80及び参照用データベース70が更新される。本実施形態においては、この更新処理部40が本発明における更新処理手段に相当する。
【0055】
差分合成部41は、送受信部91又は記録媒体再生部92により取得した更新用データファイル4を用いて、ローカル保存データベース80に格納された更新用地図データ81を更新する処理を行う処理部である。上記のとおり、更新用地図データ81は区画P毎のデータとされており、更新用データファイル4に含まれる更新用データも区画P毎のデータとなっている。そこで、差分合成部41は、更新用データファイル4に含まれる更新用データが更新対象とする一又は二以上の区画Pの中から一つの区画Pを選択して更新対象区画として決定する。そして、当該更新対象区画の更新用地図データ81を、当該区画Pについての更新用データにより更新する。更新用データファイル4に複数の区画Pについての更新用データが含まれる場合には、各区画Pの更新用地図データ81の更新が終了する毎に、順次更新対象区画を変更して区画P毎に更新処理を行う。
【0056】
また、上記のとおり、更新用データファイル4は、ローカル保存データベース80に格納されている更新用地図データ81の内容を基準とした差分データのファイルとなっている。したがって、差分合成部41は、更新用データファイル4に含まれる各区画Pの更新用の差分データを更新用地図データ81に合成する差分合成により、更新用地図データ81の差分更新を行う。具体的には、差分合成部41は、追加、変更、削除等の更新態様に従って、更新用地図データ81に対して差分データの内容を追加し、更新用地図データ81の内容を差分データの内容に変更し、或いは更新用地図データ81から差分データに示される内容のデータを削除する等の更新処理を行う。更新後の更新用地図データ81は、ローカル保存データベース80に戻されて格納される。
【0057】
参照用データ変換部42は、差分合成部41による更新後の更新用地図データ81を、参照用地図データ71に変換する処理を行う処理部である。上記のとおり、差分合成部41は、区画P毎に更新用地図データ81を更新する。そこで、参照用データ変換部42は、差分合成部41による更新が終了した更新用地図データ81を順次対象とし、当該更新後の更新用地図データ81を、区画P毎に順次変換して参照用地図データ71を生成する。これにより、更新用地図データ81の更新及び当該更新後の更新用地図データ81に基づく更新後の参照用地図データ71の生成を、更新対象区画として決定された区画P毎に一貫して行うことができる。
【0058】
ここで、参照用データ変換部42は、更新用データ形式の更新用地図データ81を、各アプリケーション処理部61〜64により参照されるのに適した参照用データ形式の参照用地図データ71に変換する処理を行う。上記のとおり、参照用地図データ71は、各アプリケーション処理部61〜64による参照に適するように、共通地図データ、表示・マップマッチング用地図データ、経路探索用地図データ、及び経路案内用地図データ等の複数の地図データを有して構成されている。そこで、参照用データ変換部42は、一つの更新用地図データ81を変換して、これら複数の地図データを生成する処理を行う。この参照用データ変換部42により生成された更新後の参照用地図データ71は、参照用データベース70に格納される。この際、更新後の参照用地図データ71に対応する更新前の参照用地図データ71は参照用データベース70から削除される。
【0059】
以上のようにして、更新用データファイル4に基づいて、ローカル保存データベース80に格納された更新用地図データ81及び参照用データベース70に格納された参照用地図データ71が更新される。更新処理部40は、このような更新処理に際して、ローカル保存データベース80から必要なデータを読み出すが、この際、データの読み出し処理の高速化を図るため、メモリ50内に設定されたキャッシュ領域51をキャッシュとして用いる。すなわち、更新処理部40は、更新処理に必要なデータを、当該データがメモリ50のキャッシュ領域51にあれば当該キャッシュ領域51から読み出し、当該データがキャッシュ領域51になければローカル保存データベース80から読み出して、更新処理を行う。このような更新処理部40が必要とするデータの読み出し処理は、後述するファイルリード部20が行う。本実施形態においては、更新処理部40は、ファイルリード部20に対して更新処理に必要なファイルのアドレスを指定することにより、ファイルリード部20に、当該ファイルを構成するデータの読み出し処理を行わせる。
【0060】
ところで、更新処理部40の差分合成部41及び参照用データ変換部42は、それぞれにおける処理(更新処理)に必要なファイルをファイル名で取り扱う。そこで、更新処理部40は、更新処理に必要なファイルのファイル名から当該ファイルのアドレスを特定するためのファイル名−アドレステーブル43を備えている。ここで、各ファイルのアドレスは、ローカル保存データベース80内における当該ファイルが格納されている場所を示す情報(アドレス情報)である。すなわち、ファイル名−アドレステーブル43は、ローカル保存データベース80に格納されている全てのファイルに関して、各ファイルのファイル名とアドレスとを関連付けたテーブルである。
【0061】
更新処理部40の差分合成部41及び参照用データ変換部42は、それぞれにおける処理の実行に際してメモリ50を利用する。そのため、メモリ50内には、図4及び図5に示すように、更新処理部40による更新処理に用いられるメモリ50の領域である更新処理用領域52が設定される。本実施形態においては、後述するメモリ管理部30により、更新処理部40が更新処理の対象とする更新用地図データ81の内容に応じて、更新処理用領域52のメモリ容量が可変設定される。
【0062】
〔ファイルアクセス管理部〕
ファイルアクセス管理部10は、更新処理部40が更新処理に必要なデータを読み出す際の読み出し処理や、当該読み出し処理に際してキャッシュとして機能するメモリ50の管理等、更新処理部40からローカル保存データベース80やメモリ50へのファイルアクセスに関する管理を行う処理部である。本実施形態においては、ファイルアクセス管理部10は、ファイルリード部20とメモリ管理部30とを有している。このファイルアクセス管理部10の構成が、本発明の特徴をなす部分となっている。以下、このファイルアクセス管理部10を構成するファイルリード部20及びメモリ管理部30の構成について、詳細に説明する。
【0063】
〔ファイルリード部〕
ファイルリード部20は、更新処理部40による更新処理に必要なデータを読み出す際の読み出しに関する処理を行う処理部である。本実施形態においては、ファイルリード部20は、このような読み出しに関する各処理を担当する機能部として、読み出し処理部21、キャッシュ格納部22、及びキャッシュ管理部23を有している。後述するように、データの読み出しに際して利用されるキャッシュは、メモリ50内にキャッシュ領域51として設定される。また、このメモリ50内には、このキャッシュ領域51の他に、更新処理部40により利用される更新処理用領域52と、ナビゲーション処理部60により利用されるナビゲーション処理用領域53とを有している。
【0064】
読み出し処理部21は、更新処理部40から指定された更新処理に必要なファイルを構成するデータをメモリ50内に設けられたキャッシュ領域51又はローカル保存データベース80から読み出す読み出し処理を行う処理部である。この読み出し処理部21は、更新処理に必要なファイルを構成するデータを、当該データがメモリ50のキャッシュ領域51にあればキャッシュ領域51から読み出し、当該データがキャッシュ領域51になければローカル保存データベース80から読み出す処理を行う。すなわち、読み出し処理部21は、まず、キャッシュ領域51内に更新処理に必要なファイルを構成するデータが存在するか否かを検索し、存在する場合には当該データをキャッシュ領域51から読み出す。一方、更新処理に必要なファイルを構成するデータがキャッシュ領域51内に存在しない場合には、当該データをローカル保存データベース80から読み出す。
【0065】
この際、更新処理部40からの更新処理に必要なファイルの指定は、当該ファイルのアドレスにより行われる。したがって、読み出し処理部21は、当該ファイルのアドレスに基づいて、キャッシュ領域51又はローカル保存データベース80から当該ファイルを構成するデータを検索し、読み出す処理を行う。ところで、更新処理部40から読み出し処理部21に対して指定されるファイルのアドレスは、ローカル保存データベース80内における当該ファイルが格納されている場所を示すアドレスである。したがって、ファイルリード部20は、指定されたファイルをローカル保存データベース80から読み出すことは、当該アドレスに基づいて直接的に行うことができる。しかし、指定されたファイルを構成するデータがキャッシュ領域51に格納されているか否かを検索し或いは読み出すことは、当該アドレスに基づいて直接的に行うことは困難である。そこで、読み出し処理部21は、キャッシュ領域51に対するデータの検索及び読み出しに際しては、キャッシュ管理部23の管理情報を利用する。このキャッシュ管理部23は、キャッシュ領域51に格納された各データを、当該データを含むローカル保存データベース80中のファイルのアドレスと関連付けて管理する管理情報を有している。本実施形態においては、このキャッシュ管理部23が、本発明におけるキャッシュ管理手段に相当する。
【0066】
図3は、キャッシュ管理部23の構成を示す模式図である。この図に示すように、メモリ50内のキャッシュ領域51は、複数のセルに分割されており、各セルは所定の単位データ量(例えば64〔kbyte〕や128〔kbyte〕等)を有するデータの格納領域とされている。図示の例では、キャッシュ領域51は、n個のセルに分割されている。後述するように、キャッシュ領域51のメモリ容量は可変設定されるので、当該キャッシュ領域51のメモリ容量に応じて単位データ量を有するセルの数も可変設定されることになる。キャッシュ管理部23は、キャッシュ領域51が有する各セルに関連付けて、各セル内に格納されているデータのアドレスを示す情報を管理情報として有している。具体的には、図示するように、キャッシュ管理部23は、キャッシュ領域51の各セル内の各データを、当該データを含むファイルのアドレスad001〜ad003、及び各アドレスからのオフセットof001〜of006に関連付けて管理する管理情報を有している。
【0067】
ここで、アドレスad001〜ad003は、各セル内の各データについて、当該データを含むファイルのローカル保存データベース80内でのアドレスを示す情報となっている。より詳しくは、アドレスad001〜ad003は、ローカル保存データベース80内における、当該データを含むファイルを構成する全データの先頭位置の格納場所を示す情報となっている。また、オフセットof001〜of006は、各セル内の各データについてのアドレスad001〜ad003からのオフセット量を示す情報となっている。このオフセットof001〜of006は、各ファイルを構成するデータがキャッシュ領域51の各セル内に細分化されて格納されることから設けられている情報であり、各データのファイル内での位置を、アドレスad001〜ad003として示されるファイルの先頭位置からのオフセットで表す情報となっている。キャッシュ管理部23は、このオフセットof001〜of006の情報を有することにより、一つのファイルを構成するデータの全部又は一部が細分化され、キャッシュ領域51内に分離されて格納されている場合にも、各セル内の各データと、当該データを含むファイルのアドレスとを関連付けて管理することが可能となっている。ここで、オフセットof001〜of006は、アドレスad001〜ad003からのオフセット量を、例えば、64〔kbyte〕や256〔kbyte〕等のデータ長として示す情報とすることができる。
【0068】
図1に戻り、キャッシュ格納部22は、読み出し処理部21により読み出したデータをキャッシュ領域51に格納する処理を行う処理部である。本実施形態においては、キャッシュ格納部22は、読み出し処理部21によりローカル保存データベース80から読み出したデータを、新たにキャッシュ領域51に格納する処理を行う。言い換えれば、キャッシュ格納部22は、読み出し処理部21によりキャッシュ領域51からデータを読み出した場合には、当該データを更にキャッシュ領域51に格納する処理は行わない。そして、図3に示すように、キャッシュ格納部22は、読み出し処理部21により読み出したデータを、キャッシュ領域51の各セルに対応する単位データ量毎に分割して各セル内に格納する。この際、キャッシュ格納部22は、新たに格納するデータのデータ量に相当するデータ量の古いデータを、キャッシュ領域51から削除する処理も併せて行う。ここでは、キャッシュ格納部22は、先にキャッシュ領域51に格納されたデータ、すなわち格納時期が最も古いデータから順に削除する処理を行う。このような構成を実現するため、キャッシュ領域51は、例えば、先入れ先出し(FIFO:First-In First-Out)方式のメモリ構造とすると好適である。或いは、キャッシュ領域51の各セル内のデータにそれぞれ格納時期を示すデータを付与し、当該格納時期の古いものから先に削除する構成としても好適である。本実施形態においては、このキャッシュ格納部22が、本発明におけるキャッシュ格納手段に相当する。
【0069】
また、本実施形態においては、キャッシュ格納部22は、更新処理部40の差分合成部41による更新用地図データ81の更新処理の結果、更新後にローカル保存データベース80に格納された更新用地図データ81と、当該更新後の更新用地図データ81のファイルに対応するキャッシュ領域51内に格納されたデータとの間で内容的に不一致が生じることを回避するために、キャッシュデータ保証処理を行う。このキャッシュデータ保証処理は、差分合成部41による更新後の更新用地図データ81を構成するファイルがローカル保存データベース80に書き込まれることを検出し、当該書き込まれるファイルと同じアドレス(すなわち同じファイル)のデータがキャッシュ領域51内にある場合には、当該データをキャッシュ領域51から削除する処理である。このキャッシュデータ保証処理を行うことにより、読み出し処理部21が、更新後の更新用地図データ81を構成するファイルのデータを読み出すつもりで、誤って更新前の古い更新用地図データ81の対応するファイルのデータをキャッシュ領域51から読み出すことを回避できる。
【0070】
以上のように、読み出し処理部21がメモリ50内のキャッシュ領域51をキャッシュとして用いることにより、同じデータを複数回読み出す際に、ローカル保存データベース80からではなくキャッシュ領域51から読み出すことになる。したがって、全てのデータをローカル保存データベース80から直接読み出す場合と比べて、読み出し処理を高速化することができる。本実施形態においては、同じデータが複数回読み出される状況は、特に参照用データ変換部42により更新後の更新用地図データ81を参照用地図データ71に変換する際に多く発生する。その理由は、例えば以下のようなものである。すなわち、参照用データ変換部42は、一つの更新用地図データ81に基づいて、共通地図データ、表示・マップマッチング用地図データ、経路探索用地図データ等の複数種類の地図データを参照用地図データ71として変換生成するため、同じ更新用地図データ81の内容が複数回読み出される。また、各区画Pの参照用地図データ71は、区画Pの境界付近における表示、探索、案内等の便宜のために、隣接する区画Pの情報を含んだデータとなっているため、それら隣接する区画Pの情報を取得するために、同じ更新用地図データ81の内容が複数回読み出される。したがって、本実施形態に係るナビゲーション装置1においては、特に参照用データ変換部42から指定されたファイルのデータを読み出す際に、キャッシュ領域51を用いることにより、処理の高速化を図ることが可能となっている。
【0071】
〔メモリ管理部〕
図1に戻り、メモリ管理部30は、更新処理部40による更新処理及びナビゲーション処理部60による各アプリケーション処理の実行に際して利用され、更には、ファイルリード部20によるデータの読み出し処理に際してキャッシュとして利用されるメモリ50の管理を行う処理部である。本実施形態においては、メモリ管理部30は、処理用メモリ容量決定部31、ナビゲーション用メモリ容量決定部32、キャッシュ容量決定部33、及びメモリ領域決定部34を有している。ここで、処理用メモリ容量決定部31が本発明における処理用メモリ容量決定手段に相当し、ナビゲーション用メモリ容量決定部32が本発明におけるナビゲーション用メモリ容量決定手段に相当し、キャッシュ容量決定部33が本発明におけるキャッシュ容量決定手段に相当する。
【0072】
図4及び図5は、このメモリ管理部30による管理対象となるメモリ50の内部の領域設定の具体例を示す図である。これらの図に示すように、メモリ50内には、ファイルリード部20によるデータの読み出し処理に際してキャッシュとして用いられるキャッシュ領域51と、更新処理部40による更新処理に用いられる更新処理用領域52と、ナビゲーション処理部60によるナビゲーション処理に用いられるナビゲーション処理用領域53とが設定される。図示の例では、ナビゲーション処理用領域53として、表示処理領域54、マップマッチング処理領域55、経路探索処理領域56、及び経路案内処理領域57の全部又は一部が設定され得る。
【0073】
処理用メモリ容量決定部31は、更新処理部40による更新処理の対象となる更新用地図データ81の内容に基づいて、更新処理用領域52として必要な前記メモリの容量である処理用メモリ容量を決定する処理を行う処理部である。本実施形態においては、処理用メモリ容量決定部31は、更新処理の対象となる更新対象区画の更新用地図データ81に含まれる道路数及び交差点数に基づいて、処理用メモリ容量を決定する。上記のとおり、ローカル保存データベース80に格納されている更新用地図データ81は、各更新用地図データ81が対象とする区画P内に存在する複数の交差点のそれぞれに対応する複数のノードNと、各ノードN間を接続する道路に対応する複数のリンクLとにより構成される道路ネットワークデータを含んでいる(図2参照)。そこで、処理用メモリ容量決定部31は、更新対象区画内の道路数を代表するものとして更新用地図データ81に含まれるリンクLの数であるリンク数を用い、更新対象区画内の交差点数を代表するものとして更新用地図データ81に含まれるノードNの数であるノード数を用いる。すなわち、処理用メモリ容量決定部31は、本実施形態においては、更新対象区画の更新用地図データ81に含まれるリンク数及びノード数に基づいて、処理用メモリ容量を決定する。
【0074】
具体的には、処理用メモリ容量決定部31は、下記の式(1)に従って処理用メモリ容量を決定する。
〔処理用メモリ容量〕=〔リンク数〕×D1+〔ノード数〕×D2+C ・・・(1)
この式において、D1は1リンクあたりに必要となる更新処理用領域52のメモリ容量であり、D2は1ノードあたりに必要となる更新処理用領域52のメモリ容量である。また、Cは固定値であり、リンク数及びノード数に関係なく必要となる更新処理用領域52のメモリ容量である。ここで、D1、D2、及びCの値は、リンク数及びノード数が様々に異なる更新用地図データ81を用いた更新処理を行う際に必要であった処理用メモリ容量に基づいて、実験的に求めることができる。
【0075】
以上により、処理用メモリ容量決定部31は、例えば都市部に対応する区画Pについての更新用地図データ81のように、リンク数(道路数)及びノード数(交差点数)が多く、道路密度が高い区画Pの更新用地図データ81を更新処理の対象とする際には、処理用メモリ容量を大きい値に決定する。この場合、図4(a)に示すように、メモリ領域決定部34は、メモリ50内に更新処理用領域52を比較的大きく設定する。一方、処理用メモリ容量決定部31は、例えば都市部以外の地域に対応する区画Pについての更新用地図データ81のように、リンク数(道路数)及びノード数(交差点数)が少なく、道路密度が低い区画Pの更新用地図データ81を更新処理の対象とする際には、処理用メモリ容量を小さい値に決定する。この場合、図4(b)に示すように、メモリ領域決定部34は、メモリ50内に更新処理用領域52を比較的小さく設定する。
【0076】
また、処理用メモリ容量決定部31は、一つの更新対象区画の更新用地図データ81の更新処理が終了し、更新処理の対象が次の更新対象区画の更新用地図データ81に移行する際に、当該次の更新対象区画の更新用地図データ81のリンク数(道路数)及びノード数(交差点数)に基づいて、処理用メモリ容量を新たに決定する。これにより、各時点での更新対象区画の更新用地図データ81の内容に応じて、適切な処理用メモリ容量を適宜決定することができる。したがって、メモリ領域決定部34により、各時点での更新対象区画の更新用地図データ81の内容に応じて、適切な大きさの更新処理用領域52をメモリ50内に可変設定することが可能となる。
【0077】
ナビゲーション用メモリ容量決定部32は、ナビゲーション処理部60によりナビゲーション処理として実行される処理内容に基づいて、ナビゲーション処理用領域53として必要なメモリ50の容量であるナビゲーション用メモリ容量を決定する処理を行う処理部である。本実施形態においては、ナビゲーション用メモリ容量決定部32は、ナビゲーション処理として実行中のアプリケーション処理の種類に基づいて、ナビゲーション用メモリ容量を決定する。上記のとおり、ナビゲーション処理部60は、表示処理部61、マップマッチング処理部62、経路探索処理部63、及び経路案内処理部64を備えており、これらの各アプリケーション処理部61〜64により実行される、表示処理、マップマッチング処理、経路探索処理、及び経路案内処理のそれぞれが、アプリケーション処理である。そこで、ナビゲーション用メモリ容量決定部32は、それぞれのアプリケーション処理毎に、当該アプリケーション処理の実行に際して必要なメモリ50の容量を決定する。具体的には、ナビゲーション用メモリ容量決定部32は、表示処理に必要な表示処理用メモリ容量、マップマッチング処理に必要なマップマッチング処理用メモリ容量、経路探索処理に必要な経路探索処理用メモリ容量、経路案内処理に必要な経路案内処理用メモリ容量をそれぞれ決定する。そして、ナビゲーション用メモリ容量決定部32は、各アプリケーション処理の実行状態の情報を取得し、実行中のアプリケーション処理に必要なメモリ容量の合計に基づいて、ナビゲーション用メモリ容量を決定する。
【0078】
具体的には、ナビゲーション用メモリ容量決定部32は、表示処理用メモリ容量、マップマッチング処理用メモリ容量、経路探索処理用メモリ容量、経路案内処理用メモリ容量のそれぞれを、固定値として予め設定している。そして、ナビゲーション用メモリ容量決定部32は、実行中の全てのアプリケーション処理についての前記メモリ容量を加算した合計を、ナビゲーション用メモリ容量として決定する。言い換えれば、実行中でないアプリケーション処理についての前記メモリ容量は、ナビゲーション用メモリ容量としては加算されない。ここで、固定値として予め設定される、表示処理用メモリ容量、マップマッチング処理用メモリ容量、経路探索処理用メモリ容量、及び経路案内処理用メモリ容量の値は、いずれも各アプリケーション処理の一般的な動作状況に基づいて実験的に求めることができる。
【0079】
以上により、ナビゲーション用メモリ容量決定部32は、実行中のアプリケーション処理の数が多い場合、及び実行中の各アプリケーション処理に必要なメモリ容量が大きい場合には、ナビゲーション用メモリ容量を大きい値に決定する。この場合、例えば図5(a)に示すように、メモリ領域決定部34は、メモリ50内にナビゲーション処理用領域53を比較的大きく設定する。一方、ナビゲーション用メモリ容量決定部32は、実行中のアプリケーション処理の数が少ない場合、及び実行中の各アプリケーション処理に必要なメモリ容量が小さい場合には、ナビゲーション用メモリ容量を小さい値に決定する。この場合、例えば図5(b)に示すように、メモリ領域決定部34は、メモリ50内にナビゲーション処理用領域53を比較的小さく設定する。ここで、図5(a)には、表示処理、マップマッチング処理、経路探索処理、及び経路案内処理の全てのアプリケーション処理が実行中の場合におけるメモリ50内の各領域の設定の例を示している。この図に示す例では、ナビゲーション処理用領域53として、表示処理領域54、マップマッチング処理領域55、経路探索処理領域56、及び経路案内処理領域57が全て設定されており、ナビゲーション処理用領域53は最大に設定されている。一方、図5(b)には、アプリケーション処理の一部、具体的には、表示処理及びマップマッチング処理のみが実行中の場合におけるメモリ50内の各領域の設定の例を示している。この図に示す例では、ナビゲーション処理用領域53として、表示処理領域54及びマップマッチング処理領域55のみが設定されており、ナビゲーション処理用領域53は比較的小さく設定されている。なお、図5(a)は、案内経路が設定されている時の状態に相当し、図5(b)は、案内経路が設定されておらず地図上への自位置表示のみが行われている時の状態に相当する。
【0080】
また、ナビゲーション用メモリ容量決定部32は、各アプリケーション処理の実行が開始又は終了した際に、ナビゲーション用メモリ容量を新たに決定する。すなわち、ナビゲーション用メモリ容量決定部32は、いずれかのアプリケーション処理の実行が新たに開始された際、又は実行中のいずれかのアプリケーション処理の実行が終了した際に、当該アプリケーション処理の実行の開始又は終了を考慮した新たなナビゲーション用メモリ容量を決定する。これにより、各時点でのアプリケーション処理の実行状況に応じて、適切なナビゲーション用メモリ容量を適宜決定することができる。したがって、メモリ領域決定部34により、各時点でのアプリケーション処理の実行状況に応じて、適切な大きさのナビゲーション処理用領域53をメモリ50内に可変設定することが可能となる。
【0081】
キャッシュ容量決定部33は、処理用メモリ容量決定部31により決定された処理用メモリ容量、及びナビゲーション用メモリ容量決定部32により決定されたナビゲーション用メモリ容量に基づいて、キャッシュ領域51として割り当てるメモリ50の容量であるキャッシュ容量を決定する処理を行う処理部である。本実施形態においては、キャッシュ容量決定部33は、メモリ50の全体の容量から処理用メモリ容量及びナビゲーション用メモリ容量を差し引いた容量に基づいて定まる余剰メモリ容量を、キャッシュ容量として決定する。したがって、キャッシュ容量決定部33は、処理用メモリ容量及びナビゲーション用メモリ容量の合計が大きい程キャッシュ容量を小さく決定し、処理用メモリ容量及びナビゲーション用メモリ容量の合計が小さい程キャッシュ容量を大きく決定する。
【0082】
そして、メモリ領域決定部34は、処理用メモリ容量に応じた更新処理用領域52、及びナビゲーション用メモリ容量に応じたナビゲーション処理用領域53を設定した後の余剰のメモリ容量であるキャッシュ容量に応じて、メモリ50内にキャッシュ領域51を設定する。したがって、メモリ領域決定部34は、更新処理用領域52及びナビゲーション処理用領域53の合計が大きい程キャッシュ領域51を小さく設定し、更新処理用領域52及びナビゲーション処理用領域53の合計が小さい程キャッシュ領域51を大きく設定する。ところで、本実施形態の構成とは異なり、キャッシュ領域51の大きさを可変設定しない場合には、更新処理部40による更新処理に必要な最大のメモリ容量に基づいて更新処理用領域52を設定し、ナビゲーション処理部60によるナビゲーション処理の実行に必要な最大のメモリ容量に基づいてナビゲーション処理用領域53を設定する必要がある。その場合、キャッシュ領域51のメモリ容量は最も小さい容量で固定されることになり、更新処理の高速化を図ることが困難である。しかし、本実施形態の構成によれば、更新処理に必要なメモリ容量、及びナビゲーション処理の実行に必要なメモリ容量を確保した上で、適宜キャッシュ領域51のメモリ容量を最大限に確保することができるため、更新処理の高速化を図ることができる。
【0083】
〔地図更新処理〕
次に、更新処理部40により実行される地図更新処理の手順について、図6に示すフローチャートに基づいて説明する。更新処理部40は、更新用データファイル4を取得した場合に(ステップ#01:Yes)、更新処理を開始する(ステップ#02)。この更新処理の開始により、更新処理フラグがオンされ、メモリ管理部30等の他の処理部も更新処理が開始したことを認識可能な状態となる。次に、差分合成部41は、更新対象区画を決定する(ステップ#03)。この更新対象区画の決定は、更新用データファイル4に含まれる更新用データが更新対象とする一又は二以上の区画Pの中から一つの区画Pを選択することにより行う。その後、差分合成部41は、取得した更新用データファイル4に含まれる更新用データとの差分合成により、更新対象区画の更新用地図データ81を更新する(ステップ#04)。この際、差分合成部41は、更新対象である更新用地図データ81を構成するファイルを読み出す際に、当該ファイルのアドレスをファイルリード部20に対して指定する。これにより、ファイルリード部20は後述するファイル読み出し処理を実行し、指定されたアドレスのデータをメモリ50のキャッシュ領域51又はローカル保存データベース80から読み出す。そして、差分合成部41は、更新後の更新用地図データ81を、ローカル保存データベース80に格納する(ステップ#05)。これにより、ローカル保存データベース80が更新される。
【0084】
次に、参照用データ変換部42は、更新後の更新用地図データ81をローカル保存データベース80から読み出し、参照用地図データ71に変換して更新後の参照用地図データ71を生成する(ステップ#06)。この際、参照用データ変換部42は、変換処理の対象とする更新後の更新用地図データ81を構成するファイルを読み出す際に、当該ファイルのアドレスをファイルリード部20に対して指定する。これにより、ファイルリード部20は後述するファイル読み出し処理を実行し、指定されたアドレスのデータをメモリ50のキャッシュ領域51又はローカル保存データベース80から読み出す。そして、参照用データ変換部42は、更新後の参照用地図データ71を参照用データベース70に格納する。これにより、参照用データベース70が更新される。次に、更新処理部40は、取得した更新用データファイル4に係る全ての区画Pの更新処理が終了したか否かを判定する(ステップ#08)。全ての区画Pの更新処理が終了していない場合には(ステップ#08:No)、処理はステップ#03へ戻り、差分合成部41により次の新たな更新対象区画を決定する。そして、上記と同様の処理により、当該新たな更新対象区画の更新用地図データ81及び参照用地図データ71を更新する(ステップ#04〜#07)。一方、取得した更新用データファイル4に係る全ての区画Pの更新処理が終了した場合には(ステップ#08:Yes)、更新処理部40は、更新処理を終了する(ステップ#09)。この更新処理の終了により、更新処理フラグがオフされ、メモリ管理部30等の他の処理部も更新処理が終了したことを認識可能な状態となる。以上で地図更新処理の手順が終了する。
【0085】
〔ファイル読み出し処理〕
次に、ファイルリード部20により実行されるファイル読み出し処理の手順について、図7に示すフローチャートに基づいて説明する。読み出し処理部21は、更新処理部40から読み出し対象のファイルのアドレスが指定された場合に(ステップ#11:Yes)、まず、当該指定されたアドレスのデータをキャッシュ管理部23から検索する(ステップ#12)。キャッシュ管理部23には、メモリ50のキャッシュ領域51内に格納されているデータを、当該データを含むローカル保存データベース80中のファイルのアドレスと関連付けて管理する管理情報が格納されている。したがって、指定されたアドレスのデータがキャッシュ管理部23から検索されれば、指定されたファイルの少なくとも一部のデータがキャッシュ領域51に格納されていると判断することができる。そこで、読み出し処理部21は、キャッシュ管理部23に指定されたアドレスのデータがあれば(ステップ#13:Yes)、当該指定されたアドレスのデータをメモリ50のキャッシュ領域51から読み出す(ステップ#14)。
【0086】
一方、キャッシュ管理部23に指定されたアドレスのデータがなければ(ステップ#13:No)、読み出し処理部21は、当該指定されたアドレスのデータをローカル保存データベース80から読み出す(ステップ#15)。そして、キャッシュ格納部22は、キャッシュ領域51内の古いデータを削除し、ステップ#15において新たに読み出したデータをキャッシュ領域51に格納する(ステップ#16)。この際、キャッシュ格納部22は、新たに格納するデータのデータ量に相当するデータ量の古いデータを、格納時期が最も古いものから順に削除する。以上でファイル読み出し処理の手順が終了する。
【0087】
〔キャッシュデータ保証処理〕
次に、キャッシュ格納部22により実行されるキャッシュデータ保証処理の手順について、図8に示すフローチャートに基づいて説明する。キャッシュ格納部22は、図6のステップ#05の差分合成部41による更新後の更新用地図データ81のローカル保存データベース80への書き込みがあったか否かを判定する(ステップ#21)。そして、更新後のデータの書き込みがあった場合には(ステップ#21:Yes)、キャッシュ格納部22は、当該書き込まれるデータを構成するファイルと同じアドレスのデータをキャッシュ管理部23から検索する(ステップ#22)。ここで、ローカル保存データベース80へ書き込まれる更新後の更新用地図データ81を構成するファイルと同じアドレスのデータがキャッシュ管理部23から検索されれば、当該更新後のデータに対応する更新前の古いデータがキャッシュ領域51に格納されていると判断することができる。そこで、キャッシュ格納部22は、当該同じアドレスのデータがキャッシュ管理部23にあった場合には(ステップ#23:Yes)、キャッシュ領域51内の当該同じアドレスのデータをキャッシュ領域51から削除する(ステップ#24)。これにより、更新用地図データ81の更新処理によりローカル保存データベース80に格納された更新後の更新用地図データ81とキャッシュ領域51に格納されたデータとの不一致が生じることを回避することができる。
【0088】
〔メモリ管理処理〕
次に、メモリ管理部30により実行されるメモリ管理処理の手順について、図9に示すフローチャートに基づいて説明する。メモリ管理部30は、まず、更新処理が開始されたか否かについて判定する(ステップ#31)。この判定は、上述した図6のステップ#02により、更新処理フラグがオンされたか否かに基づいて行う。そして、更新処理が開始された場合には(ステップ#31:Yes)、キャッシュ容量決定部33は、処理用メモリ容量決定部31により決定される処理用メモリ容量を取得する(ステップ#32)。この処理用メモリ容量決定部31による処理用メモリ容量決定処理については、後に図10のフローチャートに基づいて詳細に説明する。また、キャッシュ容量決定部33は、ナビゲーション用メモリ容量決定部32により決定されるナビゲーション用メモリ容量も取得する(ステップ#33)。このナビゲーション用メモリ容量決定部32によるナビゲーション用メモリ容量決定処理については、後に図11のフローチャートに基づいて詳細に説明する。その後、キャッシュ容量決定部33は、ステップ#32で取得された処理用メモリ容量及びステップ#33で取得されたナビゲーション用メモリ容量に基づいて、キャッシュ容量を決定する(ステップ#34)。以上により、処理用メモリ容量、ナビゲーション用メモリ容量、及びキャッシュ容量が決定されるので、メモリ領域決定部34は、メモリ50内に、処理用メモリ容量に応じた更新処理用領域52、ナビゲーション用メモリ容量に応じたナビゲーション処理用領域53、及びキャッシュ容量に応じたキャッシュ領域51を設定する(ステップ#35)。
【0089】
ところで、後に図10及び図11のフローチャートによっても説明するように、処理用メモリ容量決定部31は、新たな更新対象区画が決定される毎に新たな処理用メモリ容量を決定し、ナビゲーション用メモリ容量決定部32は、いずれかのアプリケーション処理の実行が開始又は終了する毎に新たなナビゲーション用メモリ容量を決定する。そこで、キャッシュ容量決定部33は、このような処理用メモリ容量又はナビゲーション用メモリ容量の変更があれば、そのような変更に応じてキャッシュ容量を新たに決定する。これにより、各時点で必要とされる処理用メモリ容量及びナビゲーション用メモリ容量に応じて適宜キャッシュ容量を変更し、各時点で確保可能な最大のキャッシュ容量をキャッシュ領域51に設定することが可能となっている。
【0090】
そのため、キャッシュ容量決定部33は、処理用メモリ容量が新たに決定されたか否かを判定する(ステップ#36)。処理用メモリ容量が新たに決定された場合には(ステップ#36:Yes)、当該新たな処理用メモリ容量を取得する(ステップ#37)。そして、処理はステップ#34へ戻り、キャッシュ容量決定部33は、新たな処理用メモリ容量に基づいて、新たなキャッシュ容量を決定する。また、処理用メモリ容量が新たに決定されていない場合には(ステップ#36:No)、ナビゲーション用メモリ容量が新たに決定されたか否かを判定する(ステップ#38)。ナビゲーション用メモリ容量が新たに決定された場合には(ステップ#38:Yes)、当該新たなナビゲーション用メモリ容量を取得する(ステップ#39)。そして、処理はステップ#34へ戻り、キャッシュ容量決定部33は、新たなナビゲーション用メモリ容量に基づいて、新たなキャッシュ容量を決定する。なお、新たに決定されたキャッシュ容量が、以前のキャッシュ容量と異なる場合には、メモリ領域決定部34が、所定の単位メモリ容量毎に、キャッシュ領域51のメモリ容量を取り付け又は取り外す処理を行う構成とすると好適である。
【0091】
処理用メモリ容量及びナビゲーション用メモリ容量が新たに決定されていない場合には(ステップ#38:No)、メモリ管理部30は、更新処理が終了したか否かについて判定する(ステップ#40)。この判定は、上述した図6のステップ#09により、更新処理フラグがオフされたか否かに基づいて行う。更新処理が終了していない場合には(ステップ#40:No)、処理はステップ#36へ戻る。そして、更新処理が終了した場合には(ステップ#40:Yes)、メモリ管理処理の手順を終了する。
【0092】
〔処理用メモリ容量決定処理〕
次に、処理用メモリ容量決定部31により実行される処理用メモリ容量決定処理の手順について、図10に示すフローチャートに基づいて説明する。処理用メモリ容量決定部31は、まず、更新対象区画が決定されたか否かについて判定する(ステップ#51)。この判定は、上述した図6のステップ#03により、更新対象区画が決定されたか否かに基づいて行う。そして、更新対象区画が決定された場合には(ステップ#51:Yes)、処理用メモリ容量決定部31は、決定された更新対象区画の更新用地図データ81からリンク数及びノード数を取得する(ステップ#52)。そして、処理用メモリ容量決定部31は、ステップ#52で取得したリンク数及びノード数に基づいて処理用メモリ容量を決定する(ステップ#53)。以上のように、処理用メモリ容量決定部31は、更新対象区画が決定される毎に、当該更新対象区画の更新用地図データ81に対応する処理用メモリ容量を決定する。したがって、各時点で更新処理の対象としている更新用地図データ81に応じた適切な処理用メモリ容量を適宜設定することができる。
【0093】
〔ナビゲーション用メモリ容量決定処理〕
次に、ナビゲーション用メモリ容量決定部32により実行されるナビゲーション用メモリ容量決定処理の手順について、図11に示すフローチャートに基づいて説明する。ナビゲーション用メモリ容量決定部32は、まず、いずれかのアプリケーション処理の実行が開始又は終了したか否かについて判定する(ステップ#61)。この判定は、ナビゲーション用メモリ容量決定部32が、ナビゲーション処理部60の表示処理部61、マップマッチング処理部62、経路探索処理部63、及び経路案内処理部64による各アプリケーション処理の実行状況を監視することにより行う。そして、いずれかのアプリケーション処理の実行が開始又は終了した場合には(ステップ#61:Yes)、ナビゲーション用メモリ容量決定部32は、現時点で実行中のアプリケーション処理の種類を取得する(ステップ#62)。そして、ナビゲーション用メモリ容量決定部32は、ステップ#62で取得した実行中のアプリケーション処理の種類に基づいてナビゲーション用メモリ容量を決定する(ステップ#63)。以上のように、ナビゲーション用メモリ容量決定部32は、いずれかのアプリケーション処理の実行が開始又は終了する毎に、その時点で実行中のアプリケーション処理の種類に応じたナビゲーション用メモリ容量を決定する。したがって、各時点で実行中のアプリケーション処理の種類に応じた適切なナビゲーション用メモリ容量を適宜設定することができる。
【0094】
〔その他の実施形態〕
(1)上記の実施形態では、処理用メモリ容量決定部31が、更新処理の対象となる更新用地図データ81に含まれる道路数(リンク数)及び交差点数(ノード数)の双方に基づいて、処理用メモリ容量を決定する場合を例として説明した。しかし、本発明の実施形態はこれに限定されない。したがって、処理用メモリ容量決定部31が、更新処理の対象となる更新用地図データ81に含まれる道路数及び交差点数のいずれか一方、又はリンク数及びノード数のいずれか一方に基づいて処理用メモリ容量を決定する構成とすることも、本発明の好適な実施形態の一つである。この場合、上記の式(1)におけるリンク数又はノード数に関する項を削除し、係数D1又はD2の値を適切に設定することにより、上記の実施形態と同様に処理用メモリ容量を決定することが可能である。
【0095】
(2)また、処理用メモリ容量決定部31が、道路数(リンク数)や交差点数(ノード数)以外の更新用地図データ81の内容に基づいて処理用メモリ容量を決定する構成とすることも、本発明の好適な実施形態の一つである。このような更新用地図データ81の内容としては、例えば、更新処理の対象となる(更新対象区画の)更新用地図データ81のデータ量を用いることができる。この場合、処理用メモリ容量決定部31は、例えば、当該更新用地図データ81のデータ量に比例するように処理用メモリ容量を決定すると好適である。
【0096】
(3)上記の実施形態では、ナビゲーション用メモリ容量決定部32が、実行中のアプリケーション処理の種類に基づいてナビゲーション用メモリ容量を決定する場合を例として説明した。しかし、本発明の実施形態はこれに限定されない。したがって、ナビゲーション用メモリ容量決定部32が、実行中のアプリケーション処理の数に基づいてナビゲーション用メモリ容量を決定し、或いは、実行中のアプリケーション処理の種類及び数の双方に基づいてナビゲーション用メモリ容量を決定する構成とすることも、本発明の好適な実施形態の一つである。実行中のアプリケーション処理の数に基づいてナビゲーション用メモリ容量を決定する場合には、ナビゲーション用メモリ容量決定部32は、例えば、実行中のアプリケーション処理の数に応じて予め定められたメモリ容量をナビゲーション用メモリ容量として決定する構成とすることができる。
【0097】
(4)また、ナビゲーション用メモリ容量決定部32が、実行中のアプリケーション処理の種類や数以外のナビゲーション処理として実行される処理内容に基づいてナビゲーション用メモリ容量を決定する構成とすることも、本発明の好適な実施形態の一つである。このようなナビゲーション処理として実行される処理内容としては、例えば、実行中の全てのアプリケーション処理により参照用データベース70から読み出されている参照用地図データ71のデータ量等を用いることができる。この場合、ナビゲーション用メモリ容量決定部32は、読み出されている参照用地図データ71のデータ量に比例するようにナビゲーション用メモリ容量を決定すると好適である。
【0098】
(5)上記の実施形態では、地図更新システムとしてのナビゲーション装置1が、処理用メモリ容量決定部31及びナビゲーション用メモリ容量決定部32の双方を備え、キャッシュ容量決定部33が、これらにより決定される処理用メモリ容量及びナビゲーション用メモリ容量の双方に基づいてキャッシュ容量を決定する場合を例として説明した。しかし、本発明の実施形態はこれに限定されるものではない。したがって、例えば、ナビゲーション処理部60により利用されるメモリが、更新処理に利用されるメモリ50から独立して設けられている場合等には、地図更新システムが、ナビゲーション用メモリ容量決定部32を備えず、キャッシュ容量決定部33が、処理用メモリ容量決定部31により決定される処理用メモリ容量に基づいてキャッシュ容量を決定する構成とすることも、本発明の好適な実施形態の一つである。この場合、キャッシュ容量決定部33は、メモリ50の全体の容量から処理用メモリ容量を差し引いた容量に基づいて定まる余剰メモリ容量を、キャッシュ容量として決定すると好適である。
【0099】
(6)また、例えば、更新処理の対象となる地図データの内容によって更新処理用領域に必要となる処理用メモリ容量に大きな差がない場合等には、地図更新システムが、処理用メモリ容量決定部31を備えず、キャッシュ容量決定部33が、ナビゲーション用メモリ容量決定部32により決定されるナビゲーション用メモリ容量に基づいてキャッシュ容量を決定する構成とすることも、本発明の好適な実施形態の一つである。この場合、キャッシュ容量決定部33は、メモリ50の全体の容量からナビゲーション用メモリ容量を差し引いた容量に基づいて定まる余剰メモリ容量を、キャッシュ容量として決定すると好適である。またこの際、固定値としての処理用メモリ容量も差し引いて前記余剰メモリ容量を決定すると更に好適である。
【0100】
(7)上記の実施形態では、更新処理部40が更新用地図データ81及び参照用地図データ71を区画Pの単位で順次更新処理の対象とする場合を例として説明した。しかし、本発明の実施形態はこれに限定されるものではなく、更新処理の対象とする地図データの単位を、区画P以外の単位とすることも当然に可能である。したがって、例えばレイヤやデータ種別等のような地図データを区分可能な他の単位毎に更新処理の対象とする構成も、本発明の好適な実施形態の一つである。
【0101】
(8)上記の実施形態では、キャッシュ格納部22が、キャッシュ領域51に新たにデータを格納する際に、先に格納された古いデータから順に削除する構成を例として説明した。しかし、本発明の実施形態はこれに限定されない。したがって、例えば、先に格納されたデータであっても、最近読み出されたことがあれば削除の対象から除外する構成とし、或いは各データについて、最後に読み出された時期が古いものから順に削除する構成とする等も、本発明の好適な実施形態の一つである。
【0102】
(9)上記の実施形態では、地図更新システムとしてのナビゲーション装置1が、更新用データにより更新するための更新用地図データ81が格納されたローカル保存データベース80と、ナビゲーション処理部60により参照するための参照用地図データ71が格納された参照用データベース70とを備える場合を例として説明した。しかし、本発明の実施形態はこれに限定されるものではない。したがって、例えば、地図更新システムが地図データを格納する地図データベースを一つだけ備え、当該一つの地図データベースに格納された地図データを更新用データにより更新する構成とすることも、本発明の好適な実施形態の一つである。
【0103】
(10)上記の実施形態では、本発明に係る地図更新システムを車載端末装置としてのナビゲーション装置1に適用した場合を例として説明した。しかし、本発明の実施形態はこれに限定されるものではない。したがって、本発明に係る地図更新システムは、車載用以外のナビゲーション装置に適用し、或いは、ナビゲーション装置とは異なる地図データベースの更新システムに適用することも当然に可能である。
【産業上の利用可能性】
【0104】
本発明は、地図データが格納された地図データベースを備え、更新用データの提供を受けて前記地図データベースの更新処理を行う地図更新システム、及びそのような地図データベースの更新処理を行うための地図更新プログラムに好適に利用可能である。
【図面の簡単な説明】
【0105】
【図1】本発明の実施形態に係るナビゲーション装置の機能的な構成を模式的に示すブロック図
【図2】更新用地図データの内容を概略的に示す図
【図3】キャッシュ管理部の構成を示す模式図
【図4】メモリの内部の領域設定の具体例を示す図
【図5】メモリの内部の領域設定の具体例を示す図
【図6】地図更新処理の手順を示すフローチャート
【図7】ファイル読み出し処理の手順を示すフローチャート
【図8】キャッシュデータ保証処理の手順を示すフローチャート
【図9】メモリ管理処理の手順を示すフローチャート
【図10】処理用メモリ容量決定処理の手順を示すフローチャート
【図11】ナビゲーション用メモリ容量決定処理の手順を示すフローチャート
【符号の説明】
【0106】
1:ナビゲーション装置(地図更新システム)
2:地図データベース
3:地図データ
4:更新用データファイル(更新用データ)
22:キャッシュ格納部(キャッシュ格納手段)
23:キャッシュ管理部(キャッシュ管理手段)
31:処理用メモリ容量決定部(処理用メモリ容量決定手段)
32:ナビゲーション用メモリ容量決定部(ナビゲーション用メモリ容量決定手段)
33:キャッシュ容量決定部(キャッシュ容量決定手段)
40:更新処理部(更新処理手段)
50:メモリ
51:キャッシュ領域
52:更新処理用領域
53:ナビゲーション処理用領域
60:ナビゲーション処理部(ナビゲーション処理手段)
70:参照用データベース
71:参照用地図データ
80:ローカル保存データベース(更新用データベース)
81:更新用地図データ
N:ノード
L:リンク
P:区画
【技術分野】
【0001】
本発明は、地図データが格納された地図データベースを備え、更新用データの提供を受けて前記地図データベースの更新処理を行う地図更新システム、及びそのような地図データベースの更新処理を行うための地図更新プログラムに関する。
【背景技術】
【0002】
一般的に、地図は、刻々と変化する道路や施設等の現実の状態を正確に表していることが望まれる。そこで、例えばナビゲーション装置等に用いられるような、電子データとしての地図データを格納した地図データベースでは、通信ネットワークやデータ記録媒体等を介して更新用データを適宜提供し、当該更新用データを用いて地図データベースの更新を行うシステムが既に知られている。このような地図データベースの更新システムとして、例えば、下記の特許文献1には、以下のような更新システムが記載されている。
【0003】
すなわち、この更新システムは、所定の動作プログラムに従って動作するナビゲーション装置等の端末装置と、更新用データとしての差分データファイルを提供するサーバ装置とを有して構成される。端末装置は、差分データファイルによる差分更新を行うための更新用データ形式の地図データを格納したローカル保存データベースと、動作プログラムにより参照される参照用データ形式の地図データを格納した参照データベースとを備えている。そして、端末装置は、差分データファイルの提供を受けてローカル保存データベース内の更新用データ形式の地図データの差分更新を行い、当該更新後の地図データを参照用データ形式の地図データに変換して参照データベースに格納する処理を行う。これにより、動作プログラムにより参照される参照データベース内の地図データが更新される。
【0004】
【特許文献1】特開2007−328739号公報(第17−21頁、第1図)
【発明の開示】
【発明が解決しようとする課題】
【0005】
上記のような地図データベースの更新システムでは、差分データファイルによりローカル保存データベース内の地図データの差分更新を行う際や、更新後のローカル保存データベース内の地図データを参照用データ形式の地図データに変換する際等に、必要なデータを読み出すために、ローカル保存データベース等の地図データベースに対して多量のファイルアクセスが行われる。そのため、地図データベースの更新処理に要する時間の内、このファイルアクセスのための時間が非常に大きい割合を占めている。このようなファイルアクセスの時間を短縮するためには、一度読み出されたデータをメモリのキャッシュ領域に格納し、再度同じデータを読み出す際に当該キャッシュ領域から読み出す構成とすることも、有効な解決策の一つである。
【0006】
しかしながら、コストやサイズの制約から大容量のメモリを端末装置に搭載することができない等の理由により、大きなキャッシュ領域の容量を確保することが困難な場合がある。特に、車載用のナビゲーション装置等のような端末装置では、パーソナルコンピュータ等の据え置き型の端末装置と比べて、サイズ等の制約が大きいために、大容量のメモリを搭載することが困難であった。したがって、メモリ内に大きなキャッシュ領域の容量を確保することも困難であった。そのため、キャッシュ領域に多くのデータを格納することができず、ファイルアクセスに占めるキャッシュの利用割合を高くすることができないために、ファイルアクセス時間の大幅な短縮を図ることができなかった。
【0007】
本発明は、上記の課題に鑑みてなされたものであり、その目的は、限られた容量のメモリを効率的に利用してキャッシュ領域を確保することにより、地図データベースの更新処理に要する時間を短縮することが可能な地図更新システム及び地図更新プログラムを提供することにある。
【課題を解決するための手段】
【0008】
上記目的を達成するための本発明に係る、地図データが格納された地図データベースを備え、更新用データの提供を受けて前記地図データベースの更新処理を行う地図更新システムの特徴構成は、前記更新処理に用いられる更新処理用領域と、キャッシュとして用いられるキャッシュ領域とを有するメモリと、前記更新処理に必要なデータを、当該データが前記キャッシュ領域にあれば前記キャッシュ領域から読み出し、当該データが前記キャッシュ領域になければ前記地図データベースから読み出して、前記更新処理を行う更新処理手段と、前記更新処理手段により読み出されたデータを前記キャッシュ領域に格納するキャッシュ格納手段と、前記更新処理の対象となる前記地図データの内容に基づいて、前記更新処理用領域として必要な前記メモリの容量である処理用メモリ容量を決定する処理用メモリ容量決定手段と、前記処理用メモリ容量に基づいて、前記キャッシュ領域として割り当てる前記メモリの容量であるキャッシュ容量を決定するキャッシュ容量決定手段と、を備える点にある。
【0009】
この特徴構成によれば、更新処理に必要なデータの読み出しにメモリが有するキャッシュ領域を用いるので、同じデータを複数回読み出す際に、全てのデータを地図データベースから直接読み出す場合と比べて、読み出し処理を高速化することができる。また、この特徴構成によれば、このような読み出し処理に際して利用されるキャッシュ領域に割り当てるメモリの容量であるキャッシュ容量を、更新処理の対象となる地図データの内容に基づいて決定される処理用メモリ容量に基づいて決定することになる。したがって、更新処理の対象となる地図データの内容に応じて適切な処理用メモリ容量を可変設定し、当該処理用メモリ容量の設定に応じてキャッシュ容量を可変設定することにより、処理用メモリ容量が少なくて済む場合にはその分キャッシュ容量を増加させることが可能となる。よって、キャッシュ容量を固定する場合に比べて、限られた容量のメモリを効率的に利用してキャッシュ領域を比較的大きく確保することが可能となるので、地図の更新処理に要する時間を短縮することができる。
【0010】
ここで、前記キャッシュ容量決定手段は、前記メモリの全体の容量から前記処理用メモリ容量を差し引いた容量に基づいて定まる余剰メモリ容量を、前記キャッシュ容量として決定する構成とすると好適である。
【0011】
この構成によれば、更新処理用領域として必要な処理用メモリ容量を確保した上で、更新処理の対象となる地図データの内容に応じて決定される当該処理用メモリ容量の変化に応じて、適宜キャッシュ容量を最大限に確保することができる。
【0012】
また、前記処理用メモリ容量決定手段は、前記更新処理の対象となる地図データに含まれる道路数及び交差点数の一方又は双方に基づいて、前記処理用メモリ容量を決定する構成とすると好適である。
【0013】
この構成によれば、更新処理用領域として必要なメモリ容量に大きな影響を与える地図データの内容である道路数及び交差点数の一方又は双方に応じて処理用メモリ容量を決定するので、当該地図データの更新処理に際して必要な処理用メモリ容量を適切に決定することができる。
【0014】
また、前記地図データは、交差点に対応する複数のノードと各ノード間を接続する道路に対応する複数のリンクとにより構成される道路ネットワークデータを含み、前記処理用メモリ容量決定手段は、前記更新処理の対象となる地図データに含まれるリンク数及びノード数の一方又は双方に基づいて、前記処理用メモリ容量を決定する構成とすると好適である。
【0015】
この構成によれば、地図データがノード及びリンクにより構成される道路ネットワークデータを含む場合において、更新処理用領域として必要なメモリ容量に大きな影響を与える地図データの内容であるリンク数及びノード数の一方又は双方に応じて処理用メモリ容量を決定するので、当該地図データの更新処理に際して必要な処理用メモリ容量を適切に決定することができる。
【0016】
また、前記処理用メモリ容量決定手段は、前記更新処理の対象となる地図データのデータ量に基づいて、前記処理用メモリ容量を決定する構成とすると好適である。
【0017】
この構成によれば、更新処理用領域として必要なメモリ容量に大きな影響を与える地図データの内容である当該地図データのデータ量に応じて処理用メモリ容量を決定するので、当該地図データの更新処理に際して必要な処理用メモリ容量を適切に決定することができる。
【0018】
また、前記地図データベースには、対象地域を複数の区画に分割してなる複数の区画毎の地図データが格納され、前記更新処理手段は、前記各区画の地図データを前記更新処理の対象とする構成とすると好適である。
【0019】
この構成によれば、区画毎の地図データを順次更新処理の対象とし、適切に更新処理を行うことができる。
【0020】
また、前記処理用メモリ容量決定手段は、前記更新処理の対象が次の区画の地図データに移行する際に、当該次の区画の地図データの内容に基づいて前記処理用メモリ容量を新たに決定する構成とすると好適である。
【0021】
この構成によれば、一つの更新対象の区画の地図データの更新が終了し、次の更新対象の区画の地図データの更新処理が行われる際に、当該次の地図データの内容に応じた処理用メモリ容量を適切に決定することができる。したがって、各時点で更新処理の対象となる地図データの内容に応じて適切な処理用メモリ容量を可変設定し、当該処理用メモリ容量の設定に応じてキャッシュ容量を適切に設定することができる。
【0022】
また、所定のナビゲーション処理を行うナビゲーション処理手段と、前記ナビゲーション処理として実行される処理内容に基づいて、当該ナビゲーション処理に用いられる前記メモリの領域として必要な容量であるナビゲーション用メモリ容量を決定するナビゲーション用メモリ容量決定手段と、を更に備え、前記キャッシュ容量決定手段は、前記処理用メモリ容量及び前記ナビゲーション用メモリ容量に基づいて、前記キャッシュ容量を決定する構成とすると好適である。
【0023】
この構成によれば、読み出し処理に際して利用されるキャッシュ領域に割り当てるメモリの容量であるキャッシュ容量を、更新処理の対象となる地図データの内容に基づいて決定される処理用メモリ容量と、ナビゲーション処理として実行される処理内容に基づいて決定されるナビゲーション用メモリ容量との双方に基づいて決定することになる。したがって、更新処理の対象となる地図データの内容に応じて適切な処理用メモリ容量を可変設定するとともに、ナビゲーション処理として実行される処理内容に応じて適切なナビゲーション用メモリ容量を可変設定し、当該処理用メモリ容量及びナビゲーション用メモリ容量の設定に応じてキャッシュ容量を可変設定することにより、処理用メモリ容量及びナビゲーション用メモリ容量が少なくて済む場合にはその分キャッシュ容量を増加させることが可能となる。よって、キャッシュ容量を固定する場合及び処理用メモリ容量のみに基づいてキャッシュ容量を可変設定する場合に比べて、限られた容量のメモリを効率的に利用してキャッシュ領域を比較的大きく確保することが可能となるので、地図の更新処理に要する時間を更に短縮することができる。
【0024】
ここで、前記キャッシュ容量決定手段は、前記メモリの全体の容量から前記処理用メモリ容量及び前記ナビゲーション用メモリ容量を差し引いた容量に基づいて定まる余剰メモリ容量を、前記キャッシュ容量として決定する構成とすると好適である。
【0025】
この構成によれば、更新処理用領域として必要な処理用メモリ容量及びナビゲーション処理用領域として必要なナビゲーション用メモリ容量を確保した上で、更新処理の対象となる地図データの内容に応じて決定される当該処理用メモリ容量、及びナビゲーション処理として実行される処理内容に応じて決定されるナビゲーション用メモリ容量の変化に応じて、適宜キャッシュ容量を最大限に確保することができる。
【0026】
また、前記ナビゲーション用メモリ容量決定手段は、前記ナビゲーション処理として実行中のアプリケーション処理の種類及び数の一方又は双方に基づいて、前記ナビゲーション用メモリ容量を決定する構成とすると好適である。
【0027】
この構成によれば、ナビゲーション処理用領域として必要なメモリ容量に大きな影響を与える実行中のアプリケーション処理の種類及び数の一方又は双方に応じてナビゲーション用メモリ容量を決定するので、ナビゲーション処理手段の動作状態に応じて必要なナビゲーション用メモリ容量を適切に決定することができる。
【0028】
また、前記ナビゲーション用メモリ容量決定手段は、前記各アプリケーション処理の実行が開始又は終了した際に、前記ナビゲーション用メモリ容量を新たに決定する構成とすると好適である。
【0029】
この構成によれば、ナビゲーション処理としての各アプリケーション処理の実行が開始又は終了する毎に、その時点でのアプリケーション処理の実行状況に応じたナビゲーション用メモリ容量を適切に決定することができる。したがって、各時点でのアプリケーション処理の実行状況に応じて適切なナビゲーション用メモリ容量を可変設定し、当該ナビゲーション用メモリ容量の設定に応じてキャッシュ容量を適切に設定することができる。
【0030】
また、前記キャッシュ格納手段は、前記キャッシュ領域に新たにデータを格納する際に、先に格納されたデータから順に削除する構成とすると好適である。
【0031】
この構成によれば、再度読み出される可能性が比較的低いデータを削除して新たなデータをキャッシュ領域に格納することができるので、限られたキャッシュ領域内に適切にデータを格納することができる。
【0032】
また、前記キャッシュ領域に格納された各データを、当該データを含む前記地図データベース中のファイルのアドレスと関連付けて管理するキャッシュ管理手段を更に備える構成とすると好適である。
【0033】
この構成によれば、更新処理に必要なデータを含むファイルのアドレスを指定して当該データの読み出しが行われる場合にも、当該データをキャッシュ領域から容易に読み出すことが可能となる。したがって、データの読み出し処理の更なる高速化を図ることができる。
【0034】
また、前記地図データベースは、前記更新用データにより更新するための更新用地図データが格納された更新用データベースと、前記地図データを利用するアプリケーション処理において参照するための参照用地図データが格納された参照用データベースを備え、前記更新処理手段は、前記更新用データにより前記更新用地図データを更新した後、当該更新後の更新用地図データを変換して更新後の参照用地図データを生成し、前記参照用データベースに格納する構成とすると好適である。
【0035】
この構成によれば、更新用データベースに格納された更新用の地図データを更新用データにより更新するので、更新用データによる地図データの更新処理を容易かつ迅速に行うことが可能となる。そして、このような更新後の更新用地図データをアプリケーション処理において参照するための参照用地図データに変換する構成としたことにより、アプリケーション処理からは参照に適した形式の地図データを参照して動作することが可能となる。したがって、更新用データによる地図データの更新を容易かつ迅速に行うことを可能としつつ、アプリケーション処理の動作性能の低下も抑制することができる。
【0036】
本発明に係る地図更新システムのもう一つの特徴構成は、地図データが格納された地図データベースを備え、更新用データの提供を受けて前記地図データベースの更新処理を行う地図更新システムであって、所定のナビゲーション処理を行うナビゲーション処理手段と、前記ナビゲーション処理に用いられるナビゲーション処理用領域と、キャッシュとして用いられるキャッシュ領域とを有するメモリと、前記更新処理に必要なデータを、当該データが前記キャッシュ領域にあれば前記キャッシュ領域から読み出し、当該データが前記キャッシュ領域になければ前記地図データベースから読み出して、前記更新処理を行う更新処理手段と、前記更新処理手段により読み出されたデータを前記キャッシュ領域に格納するキャッシュ格納手段と、前記ナビゲーション処理として実行される処理内容に基づいて、前記ナビゲーション処理用領域として必要な前記メモリの容量であるナビゲーション用メモリ容量を決定するナビゲーション用メモリ容量決定手段と、前記ナビゲーション用メモリ容量に基づいて、前記キャッシュ領域として割り当てる前記メモリの容量であるキャッシュ容量を決定するキャッシュ容量決定手段と、を備える点にある。
【0037】
この特徴構成によれば、更新処理に必要なデータの読み出しにメモリが有するキャッシュ領域を用いるので、同じデータを複数回読み出す際に、全てのデータを地図データベースから直接読み出す場合と比べて、読み出し処理を高速化することができる。また、この特徴構成によれば、このような読み出し処理に際して利用されるキャッシュ領域に割り当てるメモリの容量であるキャッシュ容量を、ナビゲーション処理として実行される処理内容に基づいて決定されるナビゲーション用メモリ容量に基づいて決定することになる。したがって、ナビゲーション処理として実行される処理内容に応じて適切なナビゲーション用メモリ容量を可変設定し、当該ナビゲーション用メモリ容量の設定に応じてキャッシュ容量を可変設定することにより、ナビゲーション用メモリ容量が少なくて済む場合にはその分キャッシュ容量を増加させることが可能となる。よって、キャッシュ容量を固定する場合に比べて、限られた容量のメモリを効率的に利用してキャッシュ領域を比較的大きく確保することが可能となるので、地図の更新処理に要する時間を短縮することができる。
【0038】
以上の各構成を備えた本発明に係る地図更新システムの技術的特徴は、地図更新方法や地図更新プログラムにも適用可能であり、そのため、本発明は、そのような方法やプログラムも権利の対象とすることができる。
【0039】
その場合における、更新用データの提供を受けて、地図データが格納された地図データベースの更新処理を行うための地図更新プログラムの特徴構成は、前記更新処理に必要なデータを、当該データがメモリのキャッシュ領域にあれば当該キャッシュ領域から読み出し、当該データが前記キャッシュ領域になければ前記地図データベースから読み出して、前記更新処理を行う更新処理機能と、前記更新処理機能の実行に際して読み出されたデータを前記キャッシュ領域に格納するキャッシュ格納機能と、前記更新処理の対象となる前記地図データの内容に基づいて、前記メモリにおける前記更新処理に用いられる更新処理用領域として必要な前記メモリの容量である処理用メモリ容量を決定する処理用メモリ容量決定機能と、前記処理用メモリ容量に基づいて、前記キャッシュ領域として割り当てる前記メモリの容量であるキャッシュ容量を決定するキャッシュ容量決定機能と、をコンピュータに実現させる点にある。
【0040】
また、更新用データの提供を受けて、地図データが格納された地図データベースの更新処理を行うための地図更新プログラムのもう一つの特徴構成は、所定のナビゲーション処理を行うナビゲーション処理機能と、前記更新処理に必要なデータを、当該データがメモリのキャッシュ領域にあれば当該キャッシュ領域から読み出し、当該データが前記キャッシュ領域になければ前記地図データベースから読み出して、前記更新処理を行う更新処理機能と、前記更新処理機能の実行に際して読み出されたデータを前記キャッシュ領域に格納するキャッシュ格納機能と、前記ナビゲーション処理として実行される処理内容に基づいて、前記メモリにおける前記ナビゲーション処理に用いられるナビゲーション処理用領域として必要な前記メモリの容量であるナビゲーション用メモリ容量を決定するナビゲーション用メモリ容量決定機能と、前記ナビゲーション用メモリ容量に基づいて、前記キャッシュ領域として割り当てる前記メモリの容量であるキャッシュ容量を決定するキャッシュ容量決定機能と、をコンピュータに実現させる点にある。
【0041】
当然ながら、これらの地図更新プログラムも上述した地図更新システムに係る作用効果を得ることができ、更に、その好適な構成の例として挙げたいくつかの付加的技術を組み込むことが可能である。
【発明を実施するための最良の形態】
【0042】
本発明の実施形態について図面に基づいて説明する。本実施形態においては、本発明に係る地図更新システムを、車両に搭載される車載端末装置としてのナビゲーション装置1に適用する場合を例として説明する。図1は、本実施形態に係るナビゲーション装置1の機能的な構成を模式的に示すブロック図である。このナビゲーション装置1は、地図データ3としての参照用地図データ71及び更新用地図データ81がそれぞれ格納された、地図データベース2としての参照用データベース70及びローカル保存データベース80を備えている。そして、ナビゲーション装置1は、サーバ装置5から更新用データファイル4の提供を受けて参照用地図データ71及び更新用地図データ81の更新処理を行う。この際、ナビゲーション装置1は、地図の更新処理やナビゲーション処理によって必要とされるメモリ50の容量に応じてキャッシュ領域51(図4及び図5参照)の容量を可変設定することができる構成を有している。これにより、このナビゲーション装置1は、限られた容量のメモリ50を効率的に利用してキャッシュ領域51を確保することにより、参照用データベース70及びローカル保存データベース80の更新処理に要する時間を短縮することが可能となっている。
【0043】
図1に示すナビゲーション装置1の機能部である、ファイルアクセス管理部10、更新処理部40、及びナビゲーション処理部60は、互いに共通の或いはそれぞれ独立のCPU等の演算処理装置を中核部材として、入力されたデータに対して種々の処理を行うための機能部がハードウェア又はソフトウェア(プログラム)或いはその両方により実装されて構成されている。また、同じくナビゲーション装置1の機能部である、送受信部91及び記録媒体再生部92についても、当該機能を果たすための構成が、ハードウェア又はハードウェアとソフトウェア(プログラム)の組み合わせにより実現されている。そして、これらの各機能部は、図1に矢印で示すように各種の情報やデータを受け渡し可能に接続されている。メモリ50は、各機能部を構成する演算処理装置により比較的高速に読み出し及び書き込みが可能な記憶装置であり、例えば、DRAM(Dynamic RAM)やSRAM(Static RAM)等の揮発性メモリにより構成されている。また、参照用データベース70及びローカル保存データベース80は、例えば、ハードディスクドライブやEEPROM等の不揮発性半導体メモリなどのような、データを書き換え可能に記録する記録媒体とその駆動手段とを有する装置をハードウェア構成として備えている。以下、このナビゲーション装置1の各部の構成について順に説明する。
【0044】
〔ナビゲーション処理部〕
ナビゲーション処理部60は、ナビゲーション装置1の機能としてのナビゲーション処理を実行する処理部である。本実施形態においては、このナビゲーション処理部60が本発明におけるナビゲーション処理手段に相当する。図示は省略するが、このナビゲーション処理部60には、自位置検出部、操作部、表示部、及び音声出力部等が各種の情報やデータを受け渡し可能に接続されている。ここで、自位置検出部は、ナビゲーション装置1の現在位置を検出するための機能部であり、例えば、GPS受信機、方位センサ、及び距離センサ等を備える。操作部は、例えばタッチパネル、操作スイッチ、リモートコントロールユニット等を有して構成され、使用者が操作して情報の入力や選択を行う。表示部は、例えば液晶表示装置等を有して構成され、地図や案内経路等のナビゲーション処理に関する各種情報を表示する。音声出力部は、例えばスピーカ等を有して構成され、経路案内等のナビゲーション処理に関する各種情報を音声により出力する。
【0045】
そして、本実施形態においては、ナビゲーション処理部60は、表示処理部61、マップマッチング処理部62、経路探索処理部63、及び経路案内処理部64を備えている。これらは、ナビゲーション処理としての各アプリケーション処理を実行するアプリケーション処理部に相当する。これらの各アプリケーション処理部61〜64は、通常、演算処理装置と、当該演算処理装置に対して演算処理を行わせるためのプログラムにより構成される。ここで、表示処理部61は、表示部を用いて、地図表示、当該地図上への自位置表示、案内経路の表示等、ナビゲーション処理に関する各種情報の表示のための処理を行う。マップマッチング処理部62は、自位置検出部により検出された自位置を地図の道路上に合わせるマップマッチング処理を行う。経路探索処理部63は、例えば自位置等の出発地から操作部により入力された目的地までの案内経路等を探索する処理を行う。経路案内処理部64は、経路探索処理部63により探索された目的地までの経路に従って、表示部による案内表示や音声出力部による音声案内等を用い、使用者に対して適切な進路を案内する処理を行う。なお、これらの各処理部61〜64により実行される各種のナビゲーション処理の具体的内容は公知であるので詳細な説明は省略する。本実施形態においては、各アプリケーション処理部61〜64により実行される、表示処理、マップマッチング処理、経路探索処理、及び経路案内処理の各処理が、本発明におけるアプリケーション処理に相当する。そして、各アプリケーション処理部61〜64は、アプリケーション処理を実行するに際して、参照用データベース70の参照用地図データ71を参照する。
【0046】
また、各アプリケーション処理部61〜64は、各アプリケーション処理の実行に際してメモリ50を利用する。そのため、メモリ50内には、図4及び図5に示すように、ナビゲーション処理部60によるナビゲーション処理に用いられるメモリ50の領域であるナビゲーション処理用領域53が設定される。ここでは、このナビゲーション処理用領域53として、ナビゲーション処理部60の各アプリケーション処理部61〜64により実行される各アプリケーション処理に対応して、表示処理領域54、マップマッチング処理領域55、経路探索処理領域56、及び経路案内処理領域57が設定され得る。本実施形態においては、後述するメモリ管理部30により、各アプリケーション処理部61〜64による各アプリケーション処理の実行状況に応じて、実行中の処理に対応する領域のみが、ナビゲーション処理用領域53として設定される。これにより、ナビゲーション処理用領域53のメモリ容量が可変設定される。
【0047】
〔参照用データベース〕
参照用データベース70は、地図データを利用する上記各アプリケーション処理を実行する際に、各アプリケーション処理部61〜64により参照される参照用地図データ71が格納されたデータベースである。ここで、参照用地図データ71は、各アプリケーション処理部61〜64により参照されるのに適した参照用データ形式の地図データとされている。すなわち、参照用地図データ71は、例えば、各アプリケーション処理部61〜64が共通して参照する共通地図データと、表示処理部61及びマップマッチング処理部62が参照する表示・マップマッチング用地図データと、経路探索処理部63が参照する経路探索用地図データと、経路案内処理部64が参照する経路案内用地図データと、を有して構成される。これらの参照用地図データ71を構成する各地図データは、それぞれの地図データを参照するアプリケーション処理部61〜64により参照されるのに適したデータ形式とされている。このようなデータ形式としては、例えば、各アプリケーション処理部61〜64が、各種データを処理する順序と同じ順序で各種データが配列されているデータ形式等が該当する。
【0048】
このような参照用地図データ71を構成する各地図データは、後述する更新用地図データ81(図2参照)と同様に、対象地域を複数の区画Pに分割してなる複数の区画P毎の地図データとなっている。更に、各地図データは、後述する更新用地図データ81と同様に、各区画P内に存在する複数の交差点のそれぞれに対応する複数のノードNと、各ノードN間を接続する道路に対応する複数のリンクLとにより構成される道路ネットワークデータを含んでいる。また、参照用地図データ71は、道路ネットワークデータの他に、表示処理部61による表示処理に必要な各種の情報を有する描画情報、経路案内処理部64による経路案内処理に必要な各種の案内情報等を含んでいる。ここで、描画情報には、道路形状、建物、河川等を表示するために必要な背景情報、市町村名や道路名等を表示するために必要な文字情報などが含まれる。また、案内情報には、交差点の詳細情報から成る交差点情報などが含まれる。
【0049】
〔ローカル保存データベース〕
ローカル保存データベース80は、更新用データファイル4により更新するための更新用地図データ81が格納されたデータベースである。本実施形態においては、このローカル保存データベース80が本発明における更新用データベースに相当する。ここで、更新用地図データ81は、更新用データファイル4を用いて更新するのに適した更新用データ形式の地図データとされている。このような更新用データ形式としては、例えば、地図データを構成する各種データを、そのデータ種別毎にまとめて配列したデータ形式等が該当する。このようなデータ種別としては、例えば、道路に対応するリンクに関する各種データである道路データ、交差点に対応するノードに関する各種データである交差点データ、各リンクの形状に関する各種データである形状データ、各ノードに接続するリンクに関する各種データである接続データ等がある。
【0050】
また、図2に示すように、更新用地図データ81は、対象地域を複数の区画Pに分割してなる複数の区画P毎の地図データとなっている。ここでは、各区画Pは、互いに同じ大きさの矩形となるように分割されている。例えば、日本全土の対象地域とする場合、ローカル保存データベース80には、日本全土を含む範囲の地図データをm×n(m、nは自然数)分割してなる複数の区画P毎の更新用地図データ81が格納されている。また、各更新用地図データ81は、各区画P内に存在する複数の交差点のそれぞれに対応する複数のノードNと、各ノードN間を接続する道路に対応する複数のリンクLとにより構成される道路ネットワークデータを含んでいる。
【0051】
ここで、ノードNは現実の道路における交差点に対応し、リンクLは、各交差点間を結ぶ道路に対応している。各ノードNは、緯度及び経度で表現された地図上の位置(座標)の情報を有している。また、ノードNは、ノード属性情報として、通行規制、信号の有無等の情報を有している。各リンクLは、リンク属性情報として、道路長、道路種別、道路幅、レーン数、リンク形状を表現するための形状補間点等の情報を有している。ここで、道路種別は、例えば、高速道路、国道、県道、一般道、細街路、導入路等のように、道路を複数の種別に区分した際の道路種別の情報である。なお、図2においては、一つの区画Pの道路ネットワークデータのみを図示し、他の区画Pについては省略している。また、更新用地図データ81は、参照用地図データ71に変換された後に、表示処理部61による表示処理に必要な各種の情報を有する描画情報、経路案内処理部64による経路案内処理に必要な各種の案内情報等を含んでいる。上記のとおり、描画情報には、道路形状、建物、河川等を表示するために必要な背景情報、市町村名や道路名等を表示するために必要な文字情報などが含まれる。また、案内情報には、交差点の詳細情報から成る交差点情報などが含まれる。
【0052】
〔送受信部・記録媒体再生部〕
本実施形態に係るナビゲーション装置1は、更新用データファイル4の提供を受けるための手段として、送受信部91及び記録媒体再生部92を備えている。送受信部91は、無線基地局等のサーバ装置5との間で無線通信によりデータの送受信を行うものであり、この無線通信により更新用データファイル4を受信することが可能に構成されている。このような無線通信方法としては、例えば携帯電話網や無線LAN(Local Area Network)等の公知の通信網を用いることができる。また、記録媒体再生部92は、光ディスクや磁気ディスク等の記録媒体8を再生し、当該記録媒体8に記録された更新用データファイル4を読み出すことが可能に構成されている。このような記録媒体8は、例えば、図1に示すように、使用者が、サーバ装置5からインターネット等の通信ネットワーク6を介して自らの所有するパーソナルコンピュータ等の端末装置に更新用データファイル4をダウンロードして取得し、それを記録媒体8に記録することにより生成される。
【0053】
ここで取得される更新用データファイル4は、ローカル保存データベース80に格納されている更新用地図データ81に変更を加えて更新すべき内容を表す各種のデータを一つにまとめたファイルである。ここでは、更新用データファイル4は、ローカル保存データベース80に格納されている更新用地図データ81の内容を基準として、現実に変更があった道路や施設等の変更内容を差分として表す差分データのファイルとなっている。そして、この更新用データファイル4には、更新用地図データ81に対応して、更新対象となる一又は二以上の区画P毎の更新用データが含まれる。更に、本実施形態においては、更新用データファイル4は、更新用地図データ81に対する追加、変更、削除等の更新態様毎に分けられるとともに、各更新態様についての更新内容のデータを、更新用地図データ81と同様にデータ種別毎にまとめて配列したデータ形式を有している。上記のとおり、このようなデータ種別としては、例えば、道路データ、交差点データ、形状データ、及び接続データ等がある。
【0054】
〔更新処理部〕
更新処理部40は、更新用データファイル4を用いてローカル保存データベース80及び参照用データベース70の更新処理を実行する処理部である。本実施形態においては、更新処理部40は、差分合成部41、参照用データ変換部42、及びファイル名−アドレステーブル43を備えている。そして、更新処理部40は、まず、差分合成部41により、更新用データファイル4を用いてローカル保存データベース80に格納された更新用地図データ81を更新する。その後、参照用データ変換部42により、当該更新後の更新用地図データ81を変換して更新後の参照用地図データ71を生成し、それを参照用データベース70に格納する。これにより、ローカル保存データベース80及び参照用データベース70が更新される。本実施形態においては、この更新処理部40が本発明における更新処理手段に相当する。
【0055】
差分合成部41は、送受信部91又は記録媒体再生部92により取得した更新用データファイル4を用いて、ローカル保存データベース80に格納された更新用地図データ81を更新する処理を行う処理部である。上記のとおり、更新用地図データ81は区画P毎のデータとされており、更新用データファイル4に含まれる更新用データも区画P毎のデータとなっている。そこで、差分合成部41は、更新用データファイル4に含まれる更新用データが更新対象とする一又は二以上の区画Pの中から一つの区画Pを選択して更新対象区画として決定する。そして、当該更新対象区画の更新用地図データ81を、当該区画Pについての更新用データにより更新する。更新用データファイル4に複数の区画Pについての更新用データが含まれる場合には、各区画Pの更新用地図データ81の更新が終了する毎に、順次更新対象区画を変更して区画P毎に更新処理を行う。
【0056】
また、上記のとおり、更新用データファイル4は、ローカル保存データベース80に格納されている更新用地図データ81の内容を基準とした差分データのファイルとなっている。したがって、差分合成部41は、更新用データファイル4に含まれる各区画Pの更新用の差分データを更新用地図データ81に合成する差分合成により、更新用地図データ81の差分更新を行う。具体的には、差分合成部41は、追加、変更、削除等の更新態様に従って、更新用地図データ81に対して差分データの内容を追加し、更新用地図データ81の内容を差分データの内容に変更し、或いは更新用地図データ81から差分データに示される内容のデータを削除する等の更新処理を行う。更新後の更新用地図データ81は、ローカル保存データベース80に戻されて格納される。
【0057】
参照用データ変換部42は、差分合成部41による更新後の更新用地図データ81を、参照用地図データ71に変換する処理を行う処理部である。上記のとおり、差分合成部41は、区画P毎に更新用地図データ81を更新する。そこで、参照用データ変換部42は、差分合成部41による更新が終了した更新用地図データ81を順次対象とし、当該更新後の更新用地図データ81を、区画P毎に順次変換して参照用地図データ71を生成する。これにより、更新用地図データ81の更新及び当該更新後の更新用地図データ81に基づく更新後の参照用地図データ71の生成を、更新対象区画として決定された区画P毎に一貫して行うことができる。
【0058】
ここで、参照用データ変換部42は、更新用データ形式の更新用地図データ81を、各アプリケーション処理部61〜64により参照されるのに適した参照用データ形式の参照用地図データ71に変換する処理を行う。上記のとおり、参照用地図データ71は、各アプリケーション処理部61〜64による参照に適するように、共通地図データ、表示・マップマッチング用地図データ、経路探索用地図データ、及び経路案内用地図データ等の複数の地図データを有して構成されている。そこで、参照用データ変換部42は、一つの更新用地図データ81を変換して、これら複数の地図データを生成する処理を行う。この参照用データ変換部42により生成された更新後の参照用地図データ71は、参照用データベース70に格納される。この際、更新後の参照用地図データ71に対応する更新前の参照用地図データ71は参照用データベース70から削除される。
【0059】
以上のようにして、更新用データファイル4に基づいて、ローカル保存データベース80に格納された更新用地図データ81及び参照用データベース70に格納された参照用地図データ71が更新される。更新処理部40は、このような更新処理に際して、ローカル保存データベース80から必要なデータを読み出すが、この際、データの読み出し処理の高速化を図るため、メモリ50内に設定されたキャッシュ領域51をキャッシュとして用いる。すなわち、更新処理部40は、更新処理に必要なデータを、当該データがメモリ50のキャッシュ領域51にあれば当該キャッシュ領域51から読み出し、当該データがキャッシュ領域51になければローカル保存データベース80から読み出して、更新処理を行う。このような更新処理部40が必要とするデータの読み出し処理は、後述するファイルリード部20が行う。本実施形態においては、更新処理部40は、ファイルリード部20に対して更新処理に必要なファイルのアドレスを指定することにより、ファイルリード部20に、当該ファイルを構成するデータの読み出し処理を行わせる。
【0060】
ところで、更新処理部40の差分合成部41及び参照用データ変換部42は、それぞれにおける処理(更新処理)に必要なファイルをファイル名で取り扱う。そこで、更新処理部40は、更新処理に必要なファイルのファイル名から当該ファイルのアドレスを特定するためのファイル名−アドレステーブル43を備えている。ここで、各ファイルのアドレスは、ローカル保存データベース80内における当該ファイルが格納されている場所を示す情報(アドレス情報)である。すなわち、ファイル名−アドレステーブル43は、ローカル保存データベース80に格納されている全てのファイルに関して、各ファイルのファイル名とアドレスとを関連付けたテーブルである。
【0061】
更新処理部40の差分合成部41及び参照用データ変換部42は、それぞれにおける処理の実行に際してメモリ50を利用する。そのため、メモリ50内には、図4及び図5に示すように、更新処理部40による更新処理に用いられるメモリ50の領域である更新処理用領域52が設定される。本実施形態においては、後述するメモリ管理部30により、更新処理部40が更新処理の対象とする更新用地図データ81の内容に応じて、更新処理用領域52のメモリ容量が可変設定される。
【0062】
〔ファイルアクセス管理部〕
ファイルアクセス管理部10は、更新処理部40が更新処理に必要なデータを読み出す際の読み出し処理や、当該読み出し処理に際してキャッシュとして機能するメモリ50の管理等、更新処理部40からローカル保存データベース80やメモリ50へのファイルアクセスに関する管理を行う処理部である。本実施形態においては、ファイルアクセス管理部10は、ファイルリード部20とメモリ管理部30とを有している。このファイルアクセス管理部10の構成が、本発明の特徴をなす部分となっている。以下、このファイルアクセス管理部10を構成するファイルリード部20及びメモリ管理部30の構成について、詳細に説明する。
【0063】
〔ファイルリード部〕
ファイルリード部20は、更新処理部40による更新処理に必要なデータを読み出す際の読み出しに関する処理を行う処理部である。本実施形態においては、ファイルリード部20は、このような読み出しに関する各処理を担当する機能部として、読み出し処理部21、キャッシュ格納部22、及びキャッシュ管理部23を有している。後述するように、データの読み出しに際して利用されるキャッシュは、メモリ50内にキャッシュ領域51として設定される。また、このメモリ50内には、このキャッシュ領域51の他に、更新処理部40により利用される更新処理用領域52と、ナビゲーション処理部60により利用されるナビゲーション処理用領域53とを有している。
【0064】
読み出し処理部21は、更新処理部40から指定された更新処理に必要なファイルを構成するデータをメモリ50内に設けられたキャッシュ領域51又はローカル保存データベース80から読み出す読み出し処理を行う処理部である。この読み出し処理部21は、更新処理に必要なファイルを構成するデータを、当該データがメモリ50のキャッシュ領域51にあればキャッシュ領域51から読み出し、当該データがキャッシュ領域51になければローカル保存データベース80から読み出す処理を行う。すなわち、読み出し処理部21は、まず、キャッシュ領域51内に更新処理に必要なファイルを構成するデータが存在するか否かを検索し、存在する場合には当該データをキャッシュ領域51から読み出す。一方、更新処理に必要なファイルを構成するデータがキャッシュ領域51内に存在しない場合には、当該データをローカル保存データベース80から読み出す。
【0065】
この際、更新処理部40からの更新処理に必要なファイルの指定は、当該ファイルのアドレスにより行われる。したがって、読み出し処理部21は、当該ファイルのアドレスに基づいて、キャッシュ領域51又はローカル保存データベース80から当該ファイルを構成するデータを検索し、読み出す処理を行う。ところで、更新処理部40から読み出し処理部21に対して指定されるファイルのアドレスは、ローカル保存データベース80内における当該ファイルが格納されている場所を示すアドレスである。したがって、ファイルリード部20は、指定されたファイルをローカル保存データベース80から読み出すことは、当該アドレスに基づいて直接的に行うことができる。しかし、指定されたファイルを構成するデータがキャッシュ領域51に格納されているか否かを検索し或いは読み出すことは、当該アドレスに基づいて直接的に行うことは困難である。そこで、読み出し処理部21は、キャッシュ領域51に対するデータの検索及び読み出しに際しては、キャッシュ管理部23の管理情報を利用する。このキャッシュ管理部23は、キャッシュ領域51に格納された各データを、当該データを含むローカル保存データベース80中のファイルのアドレスと関連付けて管理する管理情報を有している。本実施形態においては、このキャッシュ管理部23が、本発明におけるキャッシュ管理手段に相当する。
【0066】
図3は、キャッシュ管理部23の構成を示す模式図である。この図に示すように、メモリ50内のキャッシュ領域51は、複数のセルに分割されており、各セルは所定の単位データ量(例えば64〔kbyte〕や128〔kbyte〕等)を有するデータの格納領域とされている。図示の例では、キャッシュ領域51は、n個のセルに分割されている。後述するように、キャッシュ領域51のメモリ容量は可変設定されるので、当該キャッシュ領域51のメモリ容量に応じて単位データ量を有するセルの数も可変設定されることになる。キャッシュ管理部23は、キャッシュ領域51が有する各セルに関連付けて、各セル内に格納されているデータのアドレスを示す情報を管理情報として有している。具体的には、図示するように、キャッシュ管理部23は、キャッシュ領域51の各セル内の各データを、当該データを含むファイルのアドレスad001〜ad003、及び各アドレスからのオフセットof001〜of006に関連付けて管理する管理情報を有している。
【0067】
ここで、アドレスad001〜ad003は、各セル内の各データについて、当該データを含むファイルのローカル保存データベース80内でのアドレスを示す情報となっている。より詳しくは、アドレスad001〜ad003は、ローカル保存データベース80内における、当該データを含むファイルを構成する全データの先頭位置の格納場所を示す情報となっている。また、オフセットof001〜of006は、各セル内の各データについてのアドレスad001〜ad003からのオフセット量を示す情報となっている。このオフセットof001〜of006は、各ファイルを構成するデータがキャッシュ領域51の各セル内に細分化されて格納されることから設けられている情報であり、各データのファイル内での位置を、アドレスad001〜ad003として示されるファイルの先頭位置からのオフセットで表す情報となっている。キャッシュ管理部23は、このオフセットof001〜of006の情報を有することにより、一つのファイルを構成するデータの全部又は一部が細分化され、キャッシュ領域51内に分離されて格納されている場合にも、各セル内の各データと、当該データを含むファイルのアドレスとを関連付けて管理することが可能となっている。ここで、オフセットof001〜of006は、アドレスad001〜ad003からのオフセット量を、例えば、64〔kbyte〕や256〔kbyte〕等のデータ長として示す情報とすることができる。
【0068】
図1に戻り、キャッシュ格納部22は、読み出し処理部21により読み出したデータをキャッシュ領域51に格納する処理を行う処理部である。本実施形態においては、キャッシュ格納部22は、読み出し処理部21によりローカル保存データベース80から読み出したデータを、新たにキャッシュ領域51に格納する処理を行う。言い換えれば、キャッシュ格納部22は、読み出し処理部21によりキャッシュ領域51からデータを読み出した場合には、当該データを更にキャッシュ領域51に格納する処理は行わない。そして、図3に示すように、キャッシュ格納部22は、読み出し処理部21により読み出したデータを、キャッシュ領域51の各セルに対応する単位データ量毎に分割して各セル内に格納する。この際、キャッシュ格納部22は、新たに格納するデータのデータ量に相当するデータ量の古いデータを、キャッシュ領域51から削除する処理も併せて行う。ここでは、キャッシュ格納部22は、先にキャッシュ領域51に格納されたデータ、すなわち格納時期が最も古いデータから順に削除する処理を行う。このような構成を実現するため、キャッシュ領域51は、例えば、先入れ先出し(FIFO:First-In First-Out)方式のメモリ構造とすると好適である。或いは、キャッシュ領域51の各セル内のデータにそれぞれ格納時期を示すデータを付与し、当該格納時期の古いものから先に削除する構成としても好適である。本実施形態においては、このキャッシュ格納部22が、本発明におけるキャッシュ格納手段に相当する。
【0069】
また、本実施形態においては、キャッシュ格納部22は、更新処理部40の差分合成部41による更新用地図データ81の更新処理の結果、更新後にローカル保存データベース80に格納された更新用地図データ81と、当該更新後の更新用地図データ81のファイルに対応するキャッシュ領域51内に格納されたデータとの間で内容的に不一致が生じることを回避するために、キャッシュデータ保証処理を行う。このキャッシュデータ保証処理は、差分合成部41による更新後の更新用地図データ81を構成するファイルがローカル保存データベース80に書き込まれることを検出し、当該書き込まれるファイルと同じアドレス(すなわち同じファイル)のデータがキャッシュ領域51内にある場合には、当該データをキャッシュ領域51から削除する処理である。このキャッシュデータ保証処理を行うことにより、読み出し処理部21が、更新後の更新用地図データ81を構成するファイルのデータを読み出すつもりで、誤って更新前の古い更新用地図データ81の対応するファイルのデータをキャッシュ領域51から読み出すことを回避できる。
【0070】
以上のように、読み出し処理部21がメモリ50内のキャッシュ領域51をキャッシュとして用いることにより、同じデータを複数回読み出す際に、ローカル保存データベース80からではなくキャッシュ領域51から読み出すことになる。したがって、全てのデータをローカル保存データベース80から直接読み出す場合と比べて、読み出し処理を高速化することができる。本実施形態においては、同じデータが複数回読み出される状況は、特に参照用データ変換部42により更新後の更新用地図データ81を参照用地図データ71に変換する際に多く発生する。その理由は、例えば以下のようなものである。すなわち、参照用データ変換部42は、一つの更新用地図データ81に基づいて、共通地図データ、表示・マップマッチング用地図データ、経路探索用地図データ等の複数種類の地図データを参照用地図データ71として変換生成するため、同じ更新用地図データ81の内容が複数回読み出される。また、各区画Pの参照用地図データ71は、区画Pの境界付近における表示、探索、案内等の便宜のために、隣接する区画Pの情報を含んだデータとなっているため、それら隣接する区画Pの情報を取得するために、同じ更新用地図データ81の内容が複数回読み出される。したがって、本実施形態に係るナビゲーション装置1においては、特に参照用データ変換部42から指定されたファイルのデータを読み出す際に、キャッシュ領域51を用いることにより、処理の高速化を図ることが可能となっている。
【0071】
〔メモリ管理部〕
図1に戻り、メモリ管理部30は、更新処理部40による更新処理及びナビゲーション処理部60による各アプリケーション処理の実行に際して利用され、更には、ファイルリード部20によるデータの読み出し処理に際してキャッシュとして利用されるメモリ50の管理を行う処理部である。本実施形態においては、メモリ管理部30は、処理用メモリ容量決定部31、ナビゲーション用メモリ容量決定部32、キャッシュ容量決定部33、及びメモリ領域決定部34を有している。ここで、処理用メモリ容量決定部31が本発明における処理用メモリ容量決定手段に相当し、ナビゲーション用メモリ容量決定部32が本発明におけるナビゲーション用メモリ容量決定手段に相当し、キャッシュ容量決定部33が本発明におけるキャッシュ容量決定手段に相当する。
【0072】
図4及び図5は、このメモリ管理部30による管理対象となるメモリ50の内部の領域設定の具体例を示す図である。これらの図に示すように、メモリ50内には、ファイルリード部20によるデータの読み出し処理に際してキャッシュとして用いられるキャッシュ領域51と、更新処理部40による更新処理に用いられる更新処理用領域52と、ナビゲーション処理部60によるナビゲーション処理に用いられるナビゲーション処理用領域53とが設定される。図示の例では、ナビゲーション処理用領域53として、表示処理領域54、マップマッチング処理領域55、経路探索処理領域56、及び経路案内処理領域57の全部又は一部が設定され得る。
【0073】
処理用メモリ容量決定部31は、更新処理部40による更新処理の対象となる更新用地図データ81の内容に基づいて、更新処理用領域52として必要な前記メモリの容量である処理用メモリ容量を決定する処理を行う処理部である。本実施形態においては、処理用メモリ容量決定部31は、更新処理の対象となる更新対象区画の更新用地図データ81に含まれる道路数及び交差点数に基づいて、処理用メモリ容量を決定する。上記のとおり、ローカル保存データベース80に格納されている更新用地図データ81は、各更新用地図データ81が対象とする区画P内に存在する複数の交差点のそれぞれに対応する複数のノードNと、各ノードN間を接続する道路に対応する複数のリンクLとにより構成される道路ネットワークデータを含んでいる(図2参照)。そこで、処理用メモリ容量決定部31は、更新対象区画内の道路数を代表するものとして更新用地図データ81に含まれるリンクLの数であるリンク数を用い、更新対象区画内の交差点数を代表するものとして更新用地図データ81に含まれるノードNの数であるノード数を用いる。すなわち、処理用メモリ容量決定部31は、本実施形態においては、更新対象区画の更新用地図データ81に含まれるリンク数及びノード数に基づいて、処理用メモリ容量を決定する。
【0074】
具体的には、処理用メモリ容量決定部31は、下記の式(1)に従って処理用メモリ容量を決定する。
〔処理用メモリ容量〕=〔リンク数〕×D1+〔ノード数〕×D2+C ・・・(1)
この式において、D1は1リンクあたりに必要となる更新処理用領域52のメモリ容量であり、D2は1ノードあたりに必要となる更新処理用領域52のメモリ容量である。また、Cは固定値であり、リンク数及びノード数に関係なく必要となる更新処理用領域52のメモリ容量である。ここで、D1、D2、及びCの値は、リンク数及びノード数が様々に異なる更新用地図データ81を用いた更新処理を行う際に必要であった処理用メモリ容量に基づいて、実験的に求めることができる。
【0075】
以上により、処理用メモリ容量決定部31は、例えば都市部に対応する区画Pについての更新用地図データ81のように、リンク数(道路数)及びノード数(交差点数)が多く、道路密度が高い区画Pの更新用地図データ81を更新処理の対象とする際には、処理用メモリ容量を大きい値に決定する。この場合、図4(a)に示すように、メモリ領域決定部34は、メモリ50内に更新処理用領域52を比較的大きく設定する。一方、処理用メモリ容量決定部31は、例えば都市部以外の地域に対応する区画Pについての更新用地図データ81のように、リンク数(道路数)及びノード数(交差点数)が少なく、道路密度が低い区画Pの更新用地図データ81を更新処理の対象とする際には、処理用メモリ容量を小さい値に決定する。この場合、図4(b)に示すように、メモリ領域決定部34は、メモリ50内に更新処理用領域52を比較的小さく設定する。
【0076】
また、処理用メモリ容量決定部31は、一つの更新対象区画の更新用地図データ81の更新処理が終了し、更新処理の対象が次の更新対象区画の更新用地図データ81に移行する際に、当該次の更新対象区画の更新用地図データ81のリンク数(道路数)及びノード数(交差点数)に基づいて、処理用メモリ容量を新たに決定する。これにより、各時点での更新対象区画の更新用地図データ81の内容に応じて、適切な処理用メモリ容量を適宜決定することができる。したがって、メモリ領域決定部34により、各時点での更新対象区画の更新用地図データ81の内容に応じて、適切な大きさの更新処理用領域52をメモリ50内に可変設定することが可能となる。
【0077】
ナビゲーション用メモリ容量決定部32は、ナビゲーション処理部60によりナビゲーション処理として実行される処理内容に基づいて、ナビゲーション処理用領域53として必要なメモリ50の容量であるナビゲーション用メモリ容量を決定する処理を行う処理部である。本実施形態においては、ナビゲーション用メモリ容量決定部32は、ナビゲーション処理として実行中のアプリケーション処理の種類に基づいて、ナビゲーション用メモリ容量を決定する。上記のとおり、ナビゲーション処理部60は、表示処理部61、マップマッチング処理部62、経路探索処理部63、及び経路案内処理部64を備えており、これらの各アプリケーション処理部61〜64により実行される、表示処理、マップマッチング処理、経路探索処理、及び経路案内処理のそれぞれが、アプリケーション処理である。そこで、ナビゲーション用メモリ容量決定部32は、それぞれのアプリケーション処理毎に、当該アプリケーション処理の実行に際して必要なメモリ50の容量を決定する。具体的には、ナビゲーション用メモリ容量決定部32は、表示処理に必要な表示処理用メモリ容量、マップマッチング処理に必要なマップマッチング処理用メモリ容量、経路探索処理に必要な経路探索処理用メモリ容量、経路案内処理に必要な経路案内処理用メモリ容量をそれぞれ決定する。そして、ナビゲーション用メモリ容量決定部32は、各アプリケーション処理の実行状態の情報を取得し、実行中のアプリケーション処理に必要なメモリ容量の合計に基づいて、ナビゲーション用メモリ容量を決定する。
【0078】
具体的には、ナビゲーション用メモリ容量決定部32は、表示処理用メモリ容量、マップマッチング処理用メモリ容量、経路探索処理用メモリ容量、経路案内処理用メモリ容量のそれぞれを、固定値として予め設定している。そして、ナビゲーション用メモリ容量決定部32は、実行中の全てのアプリケーション処理についての前記メモリ容量を加算した合計を、ナビゲーション用メモリ容量として決定する。言い換えれば、実行中でないアプリケーション処理についての前記メモリ容量は、ナビゲーション用メモリ容量としては加算されない。ここで、固定値として予め設定される、表示処理用メモリ容量、マップマッチング処理用メモリ容量、経路探索処理用メモリ容量、及び経路案内処理用メモリ容量の値は、いずれも各アプリケーション処理の一般的な動作状況に基づいて実験的に求めることができる。
【0079】
以上により、ナビゲーション用メモリ容量決定部32は、実行中のアプリケーション処理の数が多い場合、及び実行中の各アプリケーション処理に必要なメモリ容量が大きい場合には、ナビゲーション用メモリ容量を大きい値に決定する。この場合、例えば図5(a)に示すように、メモリ領域決定部34は、メモリ50内にナビゲーション処理用領域53を比較的大きく設定する。一方、ナビゲーション用メモリ容量決定部32は、実行中のアプリケーション処理の数が少ない場合、及び実行中の各アプリケーション処理に必要なメモリ容量が小さい場合には、ナビゲーション用メモリ容量を小さい値に決定する。この場合、例えば図5(b)に示すように、メモリ領域決定部34は、メモリ50内にナビゲーション処理用領域53を比較的小さく設定する。ここで、図5(a)には、表示処理、マップマッチング処理、経路探索処理、及び経路案内処理の全てのアプリケーション処理が実行中の場合におけるメモリ50内の各領域の設定の例を示している。この図に示す例では、ナビゲーション処理用領域53として、表示処理領域54、マップマッチング処理領域55、経路探索処理領域56、及び経路案内処理領域57が全て設定されており、ナビゲーション処理用領域53は最大に設定されている。一方、図5(b)には、アプリケーション処理の一部、具体的には、表示処理及びマップマッチング処理のみが実行中の場合におけるメモリ50内の各領域の設定の例を示している。この図に示す例では、ナビゲーション処理用領域53として、表示処理領域54及びマップマッチング処理領域55のみが設定されており、ナビゲーション処理用領域53は比較的小さく設定されている。なお、図5(a)は、案内経路が設定されている時の状態に相当し、図5(b)は、案内経路が設定されておらず地図上への自位置表示のみが行われている時の状態に相当する。
【0080】
また、ナビゲーション用メモリ容量決定部32は、各アプリケーション処理の実行が開始又は終了した際に、ナビゲーション用メモリ容量を新たに決定する。すなわち、ナビゲーション用メモリ容量決定部32は、いずれかのアプリケーション処理の実行が新たに開始された際、又は実行中のいずれかのアプリケーション処理の実行が終了した際に、当該アプリケーション処理の実行の開始又は終了を考慮した新たなナビゲーション用メモリ容量を決定する。これにより、各時点でのアプリケーション処理の実行状況に応じて、適切なナビゲーション用メモリ容量を適宜決定することができる。したがって、メモリ領域決定部34により、各時点でのアプリケーション処理の実行状況に応じて、適切な大きさのナビゲーション処理用領域53をメモリ50内に可変設定することが可能となる。
【0081】
キャッシュ容量決定部33は、処理用メモリ容量決定部31により決定された処理用メモリ容量、及びナビゲーション用メモリ容量決定部32により決定されたナビゲーション用メモリ容量に基づいて、キャッシュ領域51として割り当てるメモリ50の容量であるキャッシュ容量を決定する処理を行う処理部である。本実施形態においては、キャッシュ容量決定部33は、メモリ50の全体の容量から処理用メモリ容量及びナビゲーション用メモリ容量を差し引いた容量に基づいて定まる余剰メモリ容量を、キャッシュ容量として決定する。したがって、キャッシュ容量決定部33は、処理用メモリ容量及びナビゲーション用メモリ容量の合計が大きい程キャッシュ容量を小さく決定し、処理用メモリ容量及びナビゲーション用メモリ容量の合計が小さい程キャッシュ容量を大きく決定する。
【0082】
そして、メモリ領域決定部34は、処理用メモリ容量に応じた更新処理用領域52、及びナビゲーション用メモリ容量に応じたナビゲーション処理用領域53を設定した後の余剰のメモリ容量であるキャッシュ容量に応じて、メモリ50内にキャッシュ領域51を設定する。したがって、メモリ領域決定部34は、更新処理用領域52及びナビゲーション処理用領域53の合計が大きい程キャッシュ領域51を小さく設定し、更新処理用領域52及びナビゲーション処理用領域53の合計が小さい程キャッシュ領域51を大きく設定する。ところで、本実施形態の構成とは異なり、キャッシュ領域51の大きさを可変設定しない場合には、更新処理部40による更新処理に必要な最大のメモリ容量に基づいて更新処理用領域52を設定し、ナビゲーション処理部60によるナビゲーション処理の実行に必要な最大のメモリ容量に基づいてナビゲーション処理用領域53を設定する必要がある。その場合、キャッシュ領域51のメモリ容量は最も小さい容量で固定されることになり、更新処理の高速化を図ることが困難である。しかし、本実施形態の構成によれば、更新処理に必要なメモリ容量、及びナビゲーション処理の実行に必要なメモリ容量を確保した上で、適宜キャッシュ領域51のメモリ容量を最大限に確保することができるため、更新処理の高速化を図ることができる。
【0083】
〔地図更新処理〕
次に、更新処理部40により実行される地図更新処理の手順について、図6に示すフローチャートに基づいて説明する。更新処理部40は、更新用データファイル4を取得した場合に(ステップ#01:Yes)、更新処理を開始する(ステップ#02)。この更新処理の開始により、更新処理フラグがオンされ、メモリ管理部30等の他の処理部も更新処理が開始したことを認識可能な状態となる。次に、差分合成部41は、更新対象区画を決定する(ステップ#03)。この更新対象区画の決定は、更新用データファイル4に含まれる更新用データが更新対象とする一又は二以上の区画Pの中から一つの区画Pを選択することにより行う。その後、差分合成部41は、取得した更新用データファイル4に含まれる更新用データとの差分合成により、更新対象区画の更新用地図データ81を更新する(ステップ#04)。この際、差分合成部41は、更新対象である更新用地図データ81を構成するファイルを読み出す際に、当該ファイルのアドレスをファイルリード部20に対して指定する。これにより、ファイルリード部20は後述するファイル読み出し処理を実行し、指定されたアドレスのデータをメモリ50のキャッシュ領域51又はローカル保存データベース80から読み出す。そして、差分合成部41は、更新後の更新用地図データ81を、ローカル保存データベース80に格納する(ステップ#05)。これにより、ローカル保存データベース80が更新される。
【0084】
次に、参照用データ変換部42は、更新後の更新用地図データ81をローカル保存データベース80から読み出し、参照用地図データ71に変換して更新後の参照用地図データ71を生成する(ステップ#06)。この際、参照用データ変換部42は、変換処理の対象とする更新後の更新用地図データ81を構成するファイルを読み出す際に、当該ファイルのアドレスをファイルリード部20に対して指定する。これにより、ファイルリード部20は後述するファイル読み出し処理を実行し、指定されたアドレスのデータをメモリ50のキャッシュ領域51又はローカル保存データベース80から読み出す。そして、参照用データ変換部42は、更新後の参照用地図データ71を参照用データベース70に格納する。これにより、参照用データベース70が更新される。次に、更新処理部40は、取得した更新用データファイル4に係る全ての区画Pの更新処理が終了したか否かを判定する(ステップ#08)。全ての区画Pの更新処理が終了していない場合には(ステップ#08:No)、処理はステップ#03へ戻り、差分合成部41により次の新たな更新対象区画を決定する。そして、上記と同様の処理により、当該新たな更新対象区画の更新用地図データ81及び参照用地図データ71を更新する(ステップ#04〜#07)。一方、取得した更新用データファイル4に係る全ての区画Pの更新処理が終了した場合には(ステップ#08:Yes)、更新処理部40は、更新処理を終了する(ステップ#09)。この更新処理の終了により、更新処理フラグがオフされ、メモリ管理部30等の他の処理部も更新処理が終了したことを認識可能な状態となる。以上で地図更新処理の手順が終了する。
【0085】
〔ファイル読み出し処理〕
次に、ファイルリード部20により実行されるファイル読み出し処理の手順について、図7に示すフローチャートに基づいて説明する。読み出し処理部21は、更新処理部40から読み出し対象のファイルのアドレスが指定された場合に(ステップ#11:Yes)、まず、当該指定されたアドレスのデータをキャッシュ管理部23から検索する(ステップ#12)。キャッシュ管理部23には、メモリ50のキャッシュ領域51内に格納されているデータを、当該データを含むローカル保存データベース80中のファイルのアドレスと関連付けて管理する管理情報が格納されている。したがって、指定されたアドレスのデータがキャッシュ管理部23から検索されれば、指定されたファイルの少なくとも一部のデータがキャッシュ領域51に格納されていると判断することができる。そこで、読み出し処理部21は、キャッシュ管理部23に指定されたアドレスのデータがあれば(ステップ#13:Yes)、当該指定されたアドレスのデータをメモリ50のキャッシュ領域51から読み出す(ステップ#14)。
【0086】
一方、キャッシュ管理部23に指定されたアドレスのデータがなければ(ステップ#13:No)、読み出し処理部21は、当該指定されたアドレスのデータをローカル保存データベース80から読み出す(ステップ#15)。そして、キャッシュ格納部22は、キャッシュ領域51内の古いデータを削除し、ステップ#15において新たに読み出したデータをキャッシュ領域51に格納する(ステップ#16)。この際、キャッシュ格納部22は、新たに格納するデータのデータ量に相当するデータ量の古いデータを、格納時期が最も古いものから順に削除する。以上でファイル読み出し処理の手順が終了する。
【0087】
〔キャッシュデータ保証処理〕
次に、キャッシュ格納部22により実行されるキャッシュデータ保証処理の手順について、図8に示すフローチャートに基づいて説明する。キャッシュ格納部22は、図6のステップ#05の差分合成部41による更新後の更新用地図データ81のローカル保存データベース80への書き込みがあったか否かを判定する(ステップ#21)。そして、更新後のデータの書き込みがあった場合には(ステップ#21:Yes)、キャッシュ格納部22は、当該書き込まれるデータを構成するファイルと同じアドレスのデータをキャッシュ管理部23から検索する(ステップ#22)。ここで、ローカル保存データベース80へ書き込まれる更新後の更新用地図データ81を構成するファイルと同じアドレスのデータがキャッシュ管理部23から検索されれば、当該更新後のデータに対応する更新前の古いデータがキャッシュ領域51に格納されていると判断することができる。そこで、キャッシュ格納部22は、当該同じアドレスのデータがキャッシュ管理部23にあった場合には(ステップ#23:Yes)、キャッシュ領域51内の当該同じアドレスのデータをキャッシュ領域51から削除する(ステップ#24)。これにより、更新用地図データ81の更新処理によりローカル保存データベース80に格納された更新後の更新用地図データ81とキャッシュ領域51に格納されたデータとの不一致が生じることを回避することができる。
【0088】
〔メモリ管理処理〕
次に、メモリ管理部30により実行されるメモリ管理処理の手順について、図9に示すフローチャートに基づいて説明する。メモリ管理部30は、まず、更新処理が開始されたか否かについて判定する(ステップ#31)。この判定は、上述した図6のステップ#02により、更新処理フラグがオンされたか否かに基づいて行う。そして、更新処理が開始された場合には(ステップ#31:Yes)、キャッシュ容量決定部33は、処理用メモリ容量決定部31により決定される処理用メモリ容量を取得する(ステップ#32)。この処理用メモリ容量決定部31による処理用メモリ容量決定処理については、後に図10のフローチャートに基づいて詳細に説明する。また、キャッシュ容量決定部33は、ナビゲーション用メモリ容量決定部32により決定されるナビゲーション用メモリ容量も取得する(ステップ#33)。このナビゲーション用メモリ容量決定部32によるナビゲーション用メモリ容量決定処理については、後に図11のフローチャートに基づいて詳細に説明する。その後、キャッシュ容量決定部33は、ステップ#32で取得された処理用メモリ容量及びステップ#33で取得されたナビゲーション用メモリ容量に基づいて、キャッシュ容量を決定する(ステップ#34)。以上により、処理用メモリ容量、ナビゲーション用メモリ容量、及びキャッシュ容量が決定されるので、メモリ領域決定部34は、メモリ50内に、処理用メモリ容量に応じた更新処理用領域52、ナビゲーション用メモリ容量に応じたナビゲーション処理用領域53、及びキャッシュ容量に応じたキャッシュ領域51を設定する(ステップ#35)。
【0089】
ところで、後に図10及び図11のフローチャートによっても説明するように、処理用メモリ容量決定部31は、新たな更新対象区画が決定される毎に新たな処理用メモリ容量を決定し、ナビゲーション用メモリ容量決定部32は、いずれかのアプリケーション処理の実行が開始又は終了する毎に新たなナビゲーション用メモリ容量を決定する。そこで、キャッシュ容量決定部33は、このような処理用メモリ容量又はナビゲーション用メモリ容量の変更があれば、そのような変更に応じてキャッシュ容量を新たに決定する。これにより、各時点で必要とされる処理用メモリ容量及びナビゲーション用メモリ容量に応じて適宜キャッシュ容量を変更し、各時点で確保可能な最大のキャッシュ容量をキャッシュ領域51に設定することが可能となっている。
【0090】
そのため、キャッシュ容量決定部33は、処理用メモリ容量が新たに決定されたか否かを判定する(ステップ#36)。処理用メモリ容量が新たに決定された場合には(ステップ#36:Yes)、当該新たな処理用メモリ容量を取得する(ステップ#37)。そして、処理はステップ#34へ戻り、キャッシュ容量決定部33は、新たな処理用メモリ容量に基づいて、新たなキャッシュ容量を決定する。また、処理用メモリ容量が新たに決定されていない場合には(ステップ#36:No)、ナビゲーション用メモリ容量が新たに決定されたか否かを判定する(ステップ#38)。ナビゲーション用メモリ容量が新たに決定された場合には(ステップ#38:Yes)、当該新たなナビゲーション用メモリ容量を取得する(ステップ#39)。そして、処理はステップ#34へ戻り、キャッシュ容量決定部33は、新たなナビゲーション用メモリ容量に基づいて、新たなキャッシュ容量を決定する。なお、新たに決定されたキャッシュ容量が、以前のキャッシュ容量と異なる場合には、メモリ領域決定部34が、所定の単位メモリ容量毎に、キャッシュ領域51のメモリ容量を取り付け又は取り外す処理を行う構成とすると好適である。
【0091】
処理用メモリ容量及びナビゲーション用メモリ容量が新たに決定されていない場合には(ステップ#38:No)、メモリ管理部30は、更新処理が終了したか否かについて判定する(ステップ#40)。この判定は、上述した図6のステップ#09により、更新処理フラグがオフされたか否かに基づいて行う。更新処理が終了していない場合には(ステップ#40:No)、処理はステップ#36へ戻る。そして、更新処理が終了した場合には(ステップ#40:Yes)、メモリ管理処理の手順を終了する。
【0092】
〔処理用メモリ容量決定処理〕
次に、処理用メモリ容量決定部31により実行される処理用メモリ容量決定処理の手順について、図10に示すフローチャートに基づいて説明する。処理用メモリ容量決定部31は、まず、更新対象区画が決定されたか否かについて判定する(ステップ#51)。この判定は、上述した図6のステップ#03により、更新対象区画が決定されたか否かに基づいて行う。そして、更新対象区画が決定された場合には(ステップ#51:Yes)、処理用メモリ容量決定部31は、決定された更新対象区画の更新用地図データ81からリンク数及びノード数を取得する(ステップ#52)。そして、処理用メモリ容量決定部31は、ステップ#52で取得したリンク数及びノード数に基づいて処理用メモリ容量を決定する(ステップ#53)。以上のように、処理用メモリ容量決定部31は、更新対象区画が決定される毎に、当該更新対象区画の更新用地図データ81に対応する処理用メモリ容量を決定する。したがって、各時点で更新処理の対象としている更新用地図データ81に応じた適切な処理用メモリ容量を適宜設定することができる。
【0093】
〔ナビゲーション用メモリ容量決定処理〕
次に、ナビゲーション用メモリ容量決定部32により実行されるナビゲーション用メモリ容量決定処理の手順について、図11に示すフローチャートに基づいて説明する。ナビゲーション用メモリ容量決定部32は、まず、いずれかのアプリケーション処理の実行が開始又は終了したか否かについて判定する(ステップ#61)。この判定は、ナビゲーション用メモリ容量決定部32が、ナビゲーション処理部60の表示処理部61、マップマッチング処理部62、経路探索処理部63、及び経路案内処理部64による各アプリケーション処理の実行状況を監視することにより行う。そして、いずれかのアプリケーション処理の実行が開始又は終了した場合には(ステップ#61:Yes)、ナビゲーション用メモリ容量決定部32は、現時点で実行中のアプリケーション処理の種類を取得する(ステップ#62)。そして、ナビゲーション用メモリ容量決定部32は、ステップ#62で取得した実行中のアプリケーション処理の種類に基づいてナビゲーション用メモリ容量を決定する(ステップ#63)。以上のように、ナビゲーション用メモリ容量決定部32は、いずれかのアプリケーション処理の実行が開始又は終了する毎に、その時点で実行中のアプリケーション処理の種類に応じたナビゲーション用メモリ容量を決定する。したがって、各時点で実行中のアプリケーション処理の種類に応じた適切なナビゲーション用メモリ容量を適宜設定することができる。
【0094】
〔その他の実施形態〕
(1)上記の実施形態では、処理用メモリ容量決定部31が、更新処理の対象となる更新用地図データ81に含まれる道路数(リンク数)及び交差点数(ノード数)の双方に基づいて、処理用メモリ容量を決定する場合を例として説明した。しかし、本発明の実施形態はこれに限定されない。したがって、処理用メモリ容量決定部31が、更新処理の対象となる更新用地図データ81に含まれる道路数及び交差点数のいずれか一方、又はリンク数及びノード数のいずれか一方に基づいて処理用メモリ容量を決定する構成とすることも、本発明の好適な実施形態の一つである。この場合、上記の式(1)におけるリンク数又はノード数に関する項を削除し、係数D1又はD2の値を適切に設定することにより、上記の実施形態と同様に処理用メモリ容量を決定することが可能である。
【0095】
(2)また、処理用メモリ容量決定部31が、道路数(リンク数)や交差点数(ノード数)以外の更新用地図データ81の内容に基づいて処理用メモリ容量を決定する構成とすることも、本発明の好適な実施形態の一つである。このような更新用地図データ81の内容としては、例えば、更新処理の対象となる(更新対象区画の)更新用地図データ81のデータ量を用いることができる。この場合、処理用メモリ容量決定部31は、例えば、当該更新用地図データ81のデータ量に比例するように処理用メモリ容量を決定すると好適である。
【0096】
(3)上記の実施形態では、ナビゲーション用メモリ容量決定部32が、実行中のアプリケーション処理の種類に基づいてナビゲーション用メモリ容量を決定する場合を例として説明した。しかし、本発明の実施形態はこれに限定されない。したがって、ナビゲーション用メモリ容量決定部32が、実行中のアプリケーション処理の数に基づいてナビゲーション用メモリ容量を決定し、或いは、実行中のアプリケーション処理の種類及び数の双方に基づいてナビゲーション用メモリ容量を決定する構成とすることも、本発明の好適な実施形態の一つである。実行中のアプリケーション処理の数に基づいてナビゲーション用メモリ容量を決定する場合には、ナビゲーション用メモリ容量決定部32は、例えば、実行中のアプリケーション処理の数に応じて予め定められたメモリ容量をナビゲーション用メモリ容量として決定する構成とすることができる。
【0097】
(4)また、ナビゲーション用メモリ容量決定部32が、実行中のアプリケーション処理の種類や数以外のナビゲーション処理として実行される処理内容に基づいてナビゲーション用メモリ容量を決定する構成とすることも、本発明の好適な実施形態の一つである。このようなナビゲーション処理として実行される処理内容としては、例えば、実行中の全てのアプリケーション処理により参照用データベース70から読み出されている参照用地図データ71のデータ量等を用いることができる。この場合、ナビゲーション用メモリ容量決定部32は、読み出されている参照用地図データ71のデータ量に比例するようにナビゲーション用メモリ容量を決定すると好適である。
【0098】
(5)上記の実施形態では、地図更新システムとしてのナビゲーション装置1が、処理用メモリ容量決定部31及びナビゲーション用メモリ容量決定部32の双方を備え、キャッシュ容量決定部33が、これらにより決定される処理用メモリ容量及びナビゲーション用メモリ容量の双方に基づいてキャッシュ容量を決定する場合を例として説明した。しかし、本発明の実施形態はこれに限定されるものではない。したがって、例えば、ナビゲーション処理部60により利用されるメモリが、更新処理に利用されるメモリ50から独立して設けられている場合等には、地図更新システムが、ナビゲーション用メモリ容量決定部32を備えず、キャッシュ容量決定部33が、処理用メモリ容量決定部31により決定される処理用メモリ容量に基づいてキャッシュ容量を決定する構成とすることも、本発明の好適な実施形態の一つである。この場合、キャッシュ容量決定部33は、メモリ50の全体の容量から処理用メモリ容量を差し引いた容量に基づいて定まる余剰メモリ容量を、キャッシュ容量として決定すると好適である。
【0099】
(6)また、例えば、更新処理の対象となる地図データの内容によって更新処理用領域に必要となる処理用メモリ容量に大きな差がない場合等には、地図更新システムが、処理用メモリ容量決定部31を備えず、キャッシュ容量決定部33が、ナビゲーション用メモリ容量決定部32により決定されるナビゲーション用メモリ容量に基づいてキャッシュ容量を決定する構成とすることも、本発明の好適な実施形態の一つである。この場合、キャッシュ容量決定部33は、メモリ50の全体の容量からナビゲーション用メモリ容量を差し引いた容量に基づいて定まる余剰メモリ容量を、キャッシュ容量として決定すると好適である。またこの際、固定値としての処理用メモリ容量も差し引いて前記余剰メモリ容量を決定すると更に好適である。
【0100】
(7)上記の実施形態では、更新処理部40が更新用地図データ81及び参照用地図データ71を区画Pの単位で順次更新処理の対象とする場合を例として説明した。しかし、本発明の実施形態はこれに限定されるものではなく、更新処理の対象とする地図データの単位を、区画P以外の単位とすることも当然に可能である。したがって、例えばレイヤやデータ種別等のような地図データを区分可能な他の単位毎に更新処理の対象とする構成も、本発明の好適な実施形態の一つである。
【0101】
(8)上記の実施形態では、キャッシュ格納部22が、キャッシュ領域51に新たにデータを格納する際に、先に格納された古いデータから順に削除する構成を例として説明した。しかし、本発明の実施形態はこれに限定されない。したがって、例えば、先に格納されたデータであっても、最近読み出されたことがあれば削除の対象から除外する構成とし、或いは各データについて、最後に読み出された時期が古いものから順に削除する構成とする等も、本発明の好適な実施形態の一つである。
【0102】
(9)上記の実施形態では、地図更新システムとしてのナビゲーション装置1が、更新用データにより更新するための更新用地図データ81が格納されたローカル保存データベース80と、ナビゲーション処理部60により参照するための参照用地図データ71が格納された参照用データベース70とを備える場合を例として説明した。しかし、本発明の実施形態はこれに限定されるものではない。したがって、例えば、地図更新システムが地図データを格納する地図データベースを一つだけ備え、当該一つの地図データベースに格納された地図データを更新用データにより更新する構成とすることも、本発明の好適な実施形態の一つである。
【0103】
(10)上記の実施形態では、本発明に係る地図更新システムを車載端末装置としてのナビゲーション装置1に適用した場合を例として説明した。しかし、本発明の実施形態はこれに限定されるものではない。したがって、本発明に係る地図更新システムは、車載用以外のナビゲーション装置に適用し、或いは、ナビゲーション装置とは異なる地図データベースの更新システムに適用することも当然に可能である。
【産業上の利用可能性】
【0104】
本発明は、地図データが格納された地図データベースを備え、更新用データの提供を受けて前記地図データベースの更新処理を行う地図更新システム、及びそのような地図データベースの更新処理を行うための地図更新プログラムに好適に利用可能である。
【図面の簡単な説明】
【0105】
【図1】本発明の実施形態に係るナビゲーション装置の機能的な構成を模式的に示すブロック図
【図2】更新用地図データの内容を概略的に示す図
【図3】キャッシュ管理部の構成を示す模式図
【図4】メモリの内部の領域設定の具体例を示す図
【図5】メモリの内部の領域設定の具体例を示す図
【図6】地図更新処理の手順を示すフローチャート
【図7】ファイル読み出し処理の手順を示すフローチャート
【図8】キャッシュデータ保証処理の手順を示すフローチャート
【図9】メモリ管理処理の手順を示すフローチャート
【図10】処理用メモリ容量決定処理の手順を示すフローチャート
【図11】ナビゲーション用メモリ容量決定処理の手順を示すフローチャート
【符号の説明】
【0106】
1:ナビゲーション装置(地図更新システム)
2:地図データベース
3:地図データ
4:更新用データファイル(更新用データ)
22:キャッシュ格納部(キャッシュ格納手段)
23:キャッシュ管理部(キャッシュ管理手段)
31:処理用メモリ容量決定部(処理用メモリ容量決定手段)
32:ナビゲーション用メモリ容量決定部(ナビゲーション用メモリ容量決定手段)
33:キャッシュ容量決定部(キャッシュ容量決定手段)
40:更新処理部(更新処理手段)
50:メモリ
51:キャッシュ領域
52:更新処理用領域
53:ナビゲーション処理用領域
60:ナビゲーション処理部(ナビゲーション処理手段)
70:参照用データベース
71:参照用地図データ
80:ローカル保存データベース(更新用データベース)
81:更新用地図データ
N:ノード
L:リンク
P:区画
【特許請求の範囲】
【請求項1】
地図データが格納された地図データベースを備え、更新用データの提供を受けて前記地図データベースの更新処理を行う地図更新システムであって、
前記更新処理に用いられる更新処理用領域と、キャッシュとして用いられるキャッシュ領域とを有するメモリと、
前記更新処理に必要なデータを、当該データが前記キャッシュ領域にあれば前記キャッシュ領域から読み出し、当該データが前記キャッシュ領域になければ前記地図データベースから読み出して、前記更新処理を行う更新処理手段と、
前記更新処理手段により読み出されたデータを前記キャッシュ領域に格納するキャッシュ格納手段と、
前記更新処理の対象となる前記地図データの内容に基づいて、前記更新処理用領域として必要な前記メモリの容量である処理用メモリ容量を決定する処理用メモリ容量決定手段と、
前記処理用メモリ容量に基づいて、前記キャッシュ領域として割り当てる前記メモリの容量であるキャッシュ容量を決定するキャッシュ容量決定手段と、
を備える地図更新システム。
【請求項2】
前記キャッシュ容量決定手段は、前記メモリの全体の容量から前記処理用メモリ容量を差し引いた容量に基づいて定まる余剰メモリ容量を、前記キャッシュ容量として決定する請求項1に記載の地図更新システム。
【請求項3】
前記処理用メモリ容量決定手段は、前記更新処理の対象となる地図データに含まれる道路数及び交差点数の一方又は双方に基づいて、前記処理用メモリ容量を決定する請求項1又は2に記載の地図更新システム。
【請求項4】
前記地図データは、交差点に対応する複数のノードと各ノード間を接続する道路に対応する複数のリンクとにより構成される道路ネットワークデータを含み、
前記処理用メモリ容量決定手段は、前記更新処理の対象となる地図データに含まれるリンク数及びノード数の一方又は双方に基づいて、前記処理用メモリ容量を決定する請求項1又は2に記載の地図更新システム。
【請求項5】
前記処理用メモリ容量決定手段は、前記更新処理の対象となる地図データのデータ量に基づいて、前記処理用メモリ容量を決定する請求項1又は2に記載の地図更新システム。
【請求項6】
前記地図データベースには、対象地域を複数の区画に分割してなる複数の区画毎の地図データが格納され、
前記更新処理手段は、前記各区画の地図データを前記更新処理の対象とする請求項1から5のいずれか一項に記載の地図更新システム。
【請求項7】
前記処理用メモリ容量決定手段は、前記更新処理の対象が次の区画の地図データに移行する際に、当該次の区画の地図データの内容に基づいて前記処理用メモリ容量を新たに決定する請求項6に記載の地図更新システム。
【請求項8】
所定のナビゲーション処理を行うナビゲーション処理手段と、
前記ナビゲーション処理として実行される処理内容に基づいて、当該ナビゲーション処理に用いられる前記メモリの領域として必要な容量であるナビゲーション用メモリ容量を決定するナビゲーション用メモリ容量決定手段と、を更に備え、
前記キャッシュ容量決定手段は、前記処理用メモリ容量及び前記ナビゲーション用メモリ容量に基づいて、前記キャッシュ容量を決定する請求項1から7のいずれか一項に記載の地図更新システム。
【請求項9】
前記キャッシュ容量決定手段は、前記メモリの全体の容量から前記処理用メモリ容量及び前記ナビゲーション用メモリ容量を差し引いた容量に基づいて定まる余剰メモリ容量を、前記キャッシュ容量として決定する請求項8に記載の地図更新システム。
【請求項10】
前記ナビゲーション用メモリ容量決定手段は、前記ナビゲーション処理として実行中のアプリケーション処理の種類及び数の一方又は双方に基づいて、前記ナビゲーション用メモリ容量を決定する請求項8又は9に記載の地図更新システム。
【請求項11】
前記ナビゲーション用メモリ容量決定手段は、前記各アプリケーション処理の実行が開始又は終了した際に、前記ナビゲーション用メモリ容量を新たに決定する請求項10に記載の地図更新システム。
【請求項12】
前記キャッシュ格納手段は、前記キャッシュ領域に新たにデータを格納する際に、先に格納されたデータから順に削除する請求項1から11のいずれか一項に記載の地図更新システム。
【請求項13】
前記キャッシュ領域に格納された各データを、当該データを含む前記地図データベース中のファイルのアドレスと関連付けて管理するキャッシュ管理手段を更に備える請求項1から12のいずれか一項に記載の地図更新システム。
【請求項14】
前記地図データベースは、前記更新用データにより更新するための更新用地図データが格納された更新用データベースと、前記地図データを利用するアプリケーション処理において参照するための参照用地図データが格納された参照用データベースを備え、
前記更新処理手段は、前記更新用データにより前記更新用地図データを更新した後、当該更新後の更新用地図データを変換して更新後の参照用地図データを生成し、前記参照用データベースに格納する請求項1から13のいずれか一項に記載の地図更新システム。
【請求項15】
地図データが格納された地図データベースを備え、更新用データの提供を受けて前記地図データベースの更新処理を行う地図更新システムであって、
所定のナビゲーション処理を行うナビゲーション処理手段と、
前記ナビゲーション処理に用いられるナビゲーション処理用領域と、キャッシュとして用いられるキャッシュ領域とを有するメモリと、
前記更新処理に必要なデータを、当該データが前記キャッシュ領域にあれば前記キャッシュ領域から読み出し、当該データが前記キャッシュ領域になければ前記地図データベースから読み出して、前記更新処理を行う更新処理手段と、
前記更新処理手段により読み出されたデータを前記キャッシュ領域に格納するキャッシュ格納手段と、
前記ナビゲーション処理として実行される処理内容に基づいて、前記ナビゲーション処理用領域として必要な前記メモリの容量であるナビゲーション用メモリ容量を決定するナビゲーション用メモリ容量決定手段と、
前記ナビゲーション用メモリ容量に基づいて、前記キャッシュ領域として割り当てる前記メモリの容量であるキャッシュ容量を決定するキャッシュ容量決定手段と、
を備える地図更新システム。
【請求項16】
更新用データの提供を受けて、地図データが格納された地図データベースの更新処理を行うための地図更新プログラムであって、
前記更新処理に必要なデータを、当該データがメモリのキャッシュ領域にあれば当該キャッシュ領域から読み出し、当該データが前記キャッシュ領域になければ前記地図データベースから読み出して、前記更新処理を行う更新処理機能と、
前記更新処理機能の実行に際して読み出されたデータを前記キャッシュ領域に格納するキャッシュ格納機能と、
前記更新処理の対象となる前記地図データの内容に基づいて、前記メモリにおける前記更新処理に用いられる更新処理用領域として必要な前記メモリの容量である処理用メモリ容量を決定する処理用メモリ容量決定機能と、
前記処理用メモリ容量に基づいて、前記キャッシュ領域として割り当てる前記メモリの容量であるキャッシュ容量を決定するキャッシュ容量決定機能と、
をコンピュータに実現させるための地図更新プログラム。
【請求項17】
更新用データの提供を受けて、地図データが格納された地図データベースの更新処理を行うための地図更新プログラムであって、
所定のナビゲーション処理を行うナビゲーション処理機能と、
前記更新処理に必要なデータを、当該データがメモリのキャッシュ領域にあれば当該キャッシュ領域から読み出し、当該データが前記キャッシュ領域になければ前記地図データベースから読み出して、前記更新処理を行う更新処理機能と、
前記更新処理機能の実行に際して読み出されたデータを前記キャッシュ領域に格納するキャッシュ格納機能と、
前記ナビゲーション処理として実行される処理内容に基づいて、前記メモリにおける前記ナビゲーション処理に用いられるナビゲーション処理用領域として必要な前記メモリの容量であるナビゲーション用メモリ容量を決定するナビゲーション用メモリ容量決定機能と、
前記ナビゲーション用メモリ容量に基づいて、前記キャッシュ領域として割り当てる前記メモリの容量であるキャッシュ容量を決定するキャッシュ容量決定機能と、
をコンピュータに実現させるための地図更新プログラム。
【請求項1】
地図データが格納された地図データベースを備え、更新用データの提供を受けて前記地図データベースの更新処理を行う地図更新システムであって、
前記更新処理に用いられる更新処理用領域と、キャッシュとして用いられるキャッシュ領域とを有するメモリと、
前記更新処理に必要なデータを、当該データが前記キャッシュ領域にあれば前記キャッシュ領域から読み出し、当該データが前記キャッシュ領域になければ前記地図データベースから読み出して、前記更新処理を行う更新処理手段と、
前記更新処理手段により読み出されたデータを前記キャッシュ領域に格納するキャッシュ格納手段と、
前記更新処理の対象となる前記地図データの内容に基づいて、前記更新処理用領域として必要な前記メモリの容量である処理用メモリ容量を決定する処理用メモリ容量決定手段と、
前記処理用メモリ容量に基づいて、前記キャッシュ領域として割り当てる前記メモリの容量であるキャッシュ容量を決定するキャッシュ容量決定手段と、
を備える地図更新システム。
【請求項2】
前記キャッシュ容量決定手段は、前記メモリの全体の容量から前記処理用メモリ容量を差し引いた容量に基づいて定まる余剰メモリ容量を、前記キャッシュ容量として決定する請求項1に記載の地図更新システム。
【請求項3】
前記処理用メモリ容量決定手段は、前記更新処理の対象となる地図データに含まれる道路数及び交差点数の一方又は双方に基づいて、前記処理用メモリ容量を決定する請求項1又は2に記載の地図更新システム。
【請求項4】
前記地図データは、交差点に対応する複数のノードと各ノード間を接続する道路に対応する複数のリンクとにより構成される道路ネットワークデータを含み、
前記処理用メモリ容量決定手段は、前記更新処理の対象となる地図データに含まれるリンク数及びノード数の一方又は双方に基づいて、前記処理用メモリ容量を決定する請求項1又は2に記載の地図更新システム。
【請求項5】
前記処理用メモリ容量決定手段は、前記更新処理の対象となる地図データのデータ量に基づいて、前記処理用メモリ容量を決定する請求項1又は2に記載の地図更新システム。
【請求項6】
前記地図データベースには、対象地域を複数の区画に分割してなる複数の区画毎の地図データが格納され、
前記更新処理手段は、前記各区画の地図データを前記更新処理の対象とする請求項1から5のいずれか一項に記載の地図更新システム。
【請求項7】
前記処理用メモリ容量決定手段は、前記更新処理の対象が次の区画の地図データに移行する際に、当該次の区画の地図データの内容に基づいて前記処理用メモリ容量を新たに決定する請求項6に記載の地図更新システム。
【請求項8】
所定のナビゲーション処理を行うナビゲーション処理手段と、
前記ナビゲーション処理として実行される処理内容に基づいて、当該ナビゲーション処理に用いられる前記メモリの領域として必要な容量であるナビゲーション用メモリ容量を決定するナビゲーション用メモリ容量決定手段と、を更に備え、
前記キャッシュ容量決定手段は、前記処理用メモリ容量及び前記ナビゲーション用メモリ容量に基づいて、前記キャッシュ容量を決定する請求項1から7のいずれか一項に記載の地図更新システム。
【請求項9】
前記キャッシュ容量決定手段は、前記メモリの全体の容量から前記処理用メモリ容量及び前記ナビゲーション用メモリ容量を差し引いた容量に基づいて定まる余剰メモリ容量を、前記キャッシュ容量として決定する請求項8に記載の地図更新システム。
【請求項10】
前記ナビゲーション用メモリ容量決定手段は、前記ナビゲーション処理として実行中のアプリケーション処理の種類及び数の一方又は双方に基づいて、前記ナビゲーション用メモリ容量を決定する請求項8又は9に記載の地図更新システム。
【請求項11】
前記ナビゲーション用メモリ容量決定手段は、前記各アプリケーション処理の実行が開始又は終了した際に、前記ナビゲーション用メモリ容量を新たに決定する請求項10に記載の地図更新システム。
【請求項12】
前記キャッシュ格納手段は、前記キャッシュ領域に新たにデータを格納する際に、先に格納されたデータから順に削除する請求項1から11のいずれか一項に記載の地図更新システム。
【請求項13】
前記キャッシュ領域に格納された各データを、当該データを含む前記地図データベース中のファイルのアドレスと関連付けて管理するキャッシュ管理手段を更に備える請求項1から12のいずれか一項に記載の地図更新システム。
【請求項14】
前記地図データベースは、前記更新用データにより更新するための更新用地図データが格納された更新用データベースと、前記地図データを利用するアプリケーション処理において参照するための参照用地図データが格納された参照用データベースを備え、
前記更新処理手段は、前記更新用データにより前記更新用地図データを更新した後、当該更新後の更新用地図データを変換して更新後の参照用地図データを生成し、前記参照用データベースに格納する請求項1から13のいずれか一項に記載の地図更新システム。
【請求項15】
地図データが格納された地図データベースを備え、更新用データの提供を受けて前記地図データベースの更新処理を行う地図更新システムであって、
所定のナビゲーション処理を行うナビゲーション処理手段と、
前記ナビゲーション処理に用いられるナビゲーション処理用領域と、キャッシュとして用いられるキャッシュ領域とを有するメモリと、
前記更新処理に必要なデータを、当該データが前記キャッシュ領域にあれば前記キャッシュ領域から読み出し、当該データが前記キャッシュ領域になければ前記地図データベースから読み出して、前記更新処理を行う更新処理手段と、
前記更新処理手段により読み出されたデータを前記キャッシュ領域に格納するキャッシュ格納手段と、
前記ナビゲーション処理として実行される処理内容に基づいて、前記ナビゲーション処理用領域として必要な前記メモリの容量であるナビゲーション用メモリ容量を決定するナビゲーション用メモリ容量決定手段と、
前記ナビゲーション用メモリ容量に基づいて、前記キャッシュ領域として割り当てる前記メモリの容量であるキャッシュ容量を決定するキャッシュ容量決定手段と、
を備える地図更新システム。
【請求項16】
更新用データの提供を受けて、地図データが格納された地図データベースの更新処理を行うための地図更新プログラムであって、
前記更新処理に必要なデータを、当該データがメモリのキャッシュ領域にあれば当該キャッシュ領域から読み出し、当該データが前記キャッシュ領域になければ前記地図データベースから読み出して、前記更新処理を行う更新処理機能と、
前記更新処理機能の実行に際して読み出されたデータを前記キャッシュ領域に格納するキャッシュ格納機能と、
前記更新処理の対象となる前記地図データの内容に基づいて、前記メモリにおける前記更新処理に用いられる更新処理用領域として必要な前記メモリの容量である処理用メモリ容量を決定する処理用メモリ容量決定機能と、
前記処理用メモリ容量に基づいて、前記キャッシュ領域として割り当てる前記メモリの容量であるキャッシュ容量を決定するキャッシュ容量決定機能と、
をコンピュータに実現させるための地図更新プログラム。
【請求項17】
更新用データの提供を受けて、地図データが格納された地図データベースの更新処理を行うための地図更新プログラムであって、
所定のナビゲーション処理を行うナビゲーション処理機能と、
前記更新処理に必要なデータを、当該データがメモリのキャッシュ領域にあれば当該キャッシュ領域から読み出し、当該データが前記キャッシュ領域になければ前記地図データベースから読み出して、前記更新処理を行う更新処理機能と、
前記更新処理機能の実行に際して読み出されたデータを前記キャッシュ領域に格納するキャッシュ格納機能と、
前記ナビゲーション処理として実行される処理内容に基づいて、前記メモリにおける前記ナビゲーション処理に用いられるナビゲーション処理用領域として必要な前記メモリの容量であるナビゲーション用メモリ容量を決定するナビゲーション用メモリ容量決定機能と、
前記ナビゲーション用メモリ容量に基づいて、前記キャッシュ領域として割り当てる前記メモリの容量であるキャッシュ容量を決定するキャッシュ容量決定機能と、
をコンピュータに実現させるための地図更新プログラム。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【公開番号】特開2009−245152(P2009−245152A)
【公開日】平成21年10月22日(2009.10.22)
【国際特許分類】
【出願番号】特願2008−90820(P2008−90820)
【出願日】平成20年3月31日(2008.3.31)
【出願人】(000100768)アイシン・エィ・ダブリュ株式会社 (3,717)
【Fターム(参考)】
【公開日】平成21年10月22日(2009.10.22)
【国際特許分類】
【出願日】平成20年3月31日(2008.3.31)
【出願人】(000100768)アイシン・エィ・ダブリュ株式会社 (3,717)
【Fターム(参考)】
[ Back to top ]