この発明は、データベースにアクセスして所望のデータを取得するデータアクセス方法及びデータアクセス装置に関するものである。
例えば、特許文献1には、サービス機能を実行するサービス機能部のアドレスと、サービス機能実行部のポインタとをテーブルで管理しており、データアクセス又は特定のサービス機能を呼び出す際、当該テーブルを参照してポインタに対応するアドレスを取得し、当該アドレスに基づいてサービス機能実行部を起動し、サービス機能を実行するサービス機能提供装置が開示されている。当該装置は、上記のテーブルを参照することによって、共有ライブラリから、親プログラムにリンクされている機能をエントリ名で直接呼び出すことができる。
しかしながら、特許文献1では、実データにアクセスするデータアクセスプログラムと上述のアドレスやポインタの管理データとの関連が言及されていない。一般的に、データ仕様が変更された場合に、これに応じてデータアクセスプログラムの改修が必要であり、データの格納位置を示すアドレス又はオフセットの変更のみを管理しても、データアクセスプログラムが対応していなければ、効率的なデータアクセスはできない。
特に、ナビゲーション装置で用いる地図データは、一般的に、容量が可変長で、データ量が多く、更新も頻繁にあり、さらに、データフォーマット自体が変更されることも多々ある。この場合、データ仕様が変更される度に、変更後のデータ仕様でのデータアドレス又はオフセット、これに基づき実データにアクセスするデータアクセスプログラムが必要となる。
この発明は、上記のような課題を解決するためになされたもので、データ群に格納される所望のデータに対して効率的かつ高速にアクセスすることができるデータアクセス方法及びデータアクセス装置を得ることを目的とする。
この発明に係るデータアクセス方法は、実データが格納されたデータ群のデータ構成を示すデータ定義情報に基づいて当該データ群における実データの格納位置が規定されたデータ管理データと、データ定義情報に基づいてデータ群におけるデータ構成が特定された実データへのアクセス機能を記述したデータアクセスプログラムとを備えた情報処理装置が、データ管理データを参照して実データの格納位置を特定し、データアクセスプログラムを実行して、データ群の実データにアクセスする。
この発明によれば、実データが格納されたデータ群のデータ構成を示すデータ定義情報に基づいて当該データ群における実データの格納位置が規定されたデータ管理データと、データ定義情報に基づいてデータ群におけるデータ構成が特定された実データへのアクセス機能を記述したデータアクセスプログラムとを備えた情報処理装置が、データ管理データを参照して実データの格納位置を特定し、データアクセスプログラムを実行して、データ群の実データにアクセスするので、データ群に格納される所望のデータに対して効率的かつ高速にアクセスすることができるという効果がある。
この発明の実施の形態1によるデータアクセス装置の構成を示すブロック図である。
この発明によるデータアクセス装置が適用される情報処理装置のハードウェア構成を示すブロック図である。
データベース等を構成するデータ集合体の概要を示す図である。
実施の形態1のデータアクセス装置による動作の流れを示すフローチャートである。
データ定義情報の一例を示す図である。
図5のデータ定義情報で各データの構造が特定されたデータ集合体の概要を示す図である。
データ管理データ作成部によるデータ管理データの作成処理の流れを示すフローチャートである。
データ集合体の実データ構成の一例を示す図である。
データ集合体の実データ構成の他の表現例を示す図である。
データ集合体の実データ構成の他の表現例を示す図である。
データ管理データの一例を示す図である。
A機能を実行する際に必要なデータ項目を示す図である。
データ管理データ出力定義情報の一例を示す図である。
データ管理データの一例を示す図である。
機能ごとに作成されたデータ管理データの利用形態の概要を示す図である。
データアクセスプログラムの一例を示す図である。
データアクセスプログラム出力定義情報の一例を示す図である。
機能ごとに作成されたデータ管理データ及びデータアクセスプログラムの利用形態の概要を示す図である。
この発明の実施の形態2によるナビゲーション装置の構成を示すブロック図である。
図19の地図DBにおけるポリゴン及びポイントのデータ構成を規定したER図である。
図20の定義で構成される地図図形データを示す図である。
ポリゴン図形に対するデータ管理データを示す図である。
ポイント図形に対するデータ管理データを示す図である。
ポリゴン図形及びポイント図形の双方を管理するデータ管理データを示す図である。
実施の形態2によるナビゲーション装置の他の構成を示すブロック図である。
この発明の実施の形態3によるナビゲーション装置の構成を示すブロック図である。
この発明の実施の形態4によるナビゲーション装置の構成を示すブロック図である。
実施の形態4のナビゲーション装置によるデータ定義情報の更新処理の流れを示すフローチャートである。
実施の形態4のナビゲーション装置によるデータ管理データの更新処理の流れを示すフローチャートである。
この発明の実施の形態5によるナビゲーション装置の他の構成を示すブロック図である。
実施の形態5のナビゲーション装置によるデータ定義情報及びデータ管理データの更新処理の流れを示すフローチャートである。
更新定義情報の一例を示す図である。
図32の更新定義情報に基づくデータ定義情報の更新処理の概要を示す図である。
この発明の実施の形態6によるナビゲーション装置の構成を示すブロック図である。
実施の形態6によるナビゲーション装置の他の構成を示すブロック図である。
以下、この発明をより詳細に説明するために、この発明を実施するための形態について、添付の図面に従って説明する。
実施の形態1.
図1は、この発明の実施の形態1によるデータアクセス装置の構成を示すブロック図である。図1において、実施の形態1におけるデータアクセス装置1は、データ管理データ及びデータアクセスプログラムを自動作成する装置である。
データ管理データとは、ある目的を果たすためのシステムによって使用されるデータの集合体(データベース又はファイルシステム)(データ群)におけるデータの格納場所を示すアドレス又はデータの先頭若しくはデータの先頭から特定の構成要素(データ項目)までの距離を示すオフセット(データ群における格納位置)が設定されたデータである。データアクセスプログラムとは、データ管理データを参照して、データ集合体の実データにアクセスするプログラムである。
また、データアクセス装置1は、構成として、データ定義情報入力部2、データ定義情報解析部3、データ管理データ作成部4、データアクセスプログラム作成部5、データ管理データ出力部6、及びデータアクセスプログラム出力部7を備える。
データ定義情報入力部2は、データ定義情報を入力する構成部であり、例えば外部記憶装置からデータ定義情報を読み込む。データ定義情報解析部3は、データ定義情報を解析する構成部である。データ定義情報は、アクセス対象のデータ集合体におけるデータの構成を定義した情報である。例えば、データを構成するデータ項目及びそのデータ長が定義される。
データ管理データ作成部4は、データ定義情報解析部3の解析結果に基づいて、データ管理データを作成する構成部である。また、データアクセスプログラム作成部5は、データ定義情報解析部3の解析結果に基づいて、データアクセスプログラムを作成する構成部である。データ管理データ出力部6は、データ管理データ出力定義情報を参照しながら、データ管理データ作成部4に作成されたデータ管理データを基に、出力対象のデータ管理データを作成して出力する構成部である。ここで、データ管理データ出力定義情報とは、出力対象のデータ管理データの出力形式及び出力対象のデータ項目を示す情報である。
データアクセスプログラム出力部7は、データアクセスプログラム出力定義情報を参照しながら、データアクセスプログラム作成部5に作成されたデータアクセスプログラムを基に、出力対象のデータアクセスプログラムを作成して出力する構成部である。ここで、データアクセスプログラム出力定義情報とは、出力対象のデータアクセスプログラムの、出力言語、出力タイプ、命名規則等を示す情報である。
図2は、この発明によるデータアクセス装置が適用される情報処理装置のハードウェア構成を示すブロック図である。この情報処理装置としては、例えば、カーナビゲーション装置や、携帯電話、PDA(Personal Digital Assistant)などの移動体情報端末が挙げられる。図2において、外部記憶装置10には、この発明の趣旨に合致したデータアクセス用処理プログラム、この情報処理装置で実行されるカーナビゲーション等の処理を実現するためのアプリケーションソフトウェア、当該処理における各種の機能部が実装されたソフトウェアライブラリ、上記のアプリケーションソフトウェアによる処理で利用されるデータ(例えば、地図データ)が格納される。
なお、外部記憶装置10としては、ハードディスク装置(HDD)、CDやDVDなどの記憶媒体及びそのドライブ装置、USB(Universal Serial Bus)メモリなどが挙げられる。
上記データアクセス用処理プログラムや、上記アプリケーションソフトウェアのプログラム、ソフトウェアライブラリは、外部記憶装置10からメモリ9上に展開され、CPU8によって実行される。CPU8が、上記データアクセス用処理プログラムを実行することで、図1で示したデータ定義情報入力部2、データ定義情報解析部3、データ管理データ作成部4、データアクセスプログラム作成部5、データ管理データ出力部6、及びデータアクセスプログラム出力部7が、ハードウェアとソフトウェアが協働した具体的な手段として実現される。
CPU8による演算結果は、バスを介して表示装置11へ出力されて画面表示される。表示装置11は、例えば、カーナビゲーションにおける地図表示などを実行する。この表示装置11としては、液晶ディスプレイやプラズマディスプレイが挙げられる。
通信装置12は、装置外部と通信を行う装置であり、ナビゲーション装置の場合には、GPS(Global Positioning System)電波やFM電波を受信する。
入力装置13は、装置外部から操作入力するための装置であり、キーボードや操作スイッチ、表示装置11と組み合わされたタッチパネル等で実現される。ナビゲーション装置の場合、ルート探索の条件は、この入力装置13を用いて入力される。
なお、図2では、上記データアクセス用処理プログラム、アプリケーションソフトウェア、ソフトウェアライブラリ、上記アプリケーションソフトウェアによる処理で利用されるデータが、外部記憶装置10に全て格納される場合を示したが、これらソフトウェアのそれぞれ又はこれらの少なくとも1つが、CPU8によって記憶内容が読み取り可能な別個の記憶装置に記憶されても構わない。
図3は、データベース等を構成するデータ集合体の概要を示す図であり、データを表現した矩形の横方向の長さがデータ長を示している。図3に示すように、本発明で取り扱うデータ1,2,3,・・・は、データサイズが予め固定される固定長データ、及び状況に応じてデータサイズが変化する可変長データの2種類から構成される。また、固定長データ及び可変長データは、データフォーマットに応じた各項目のデータで構成されている。このようなデータ集合体(データ群)がデータアクセス対象のデータベース又はファイルシステムに相当する。
次に動作について説明する。
図4は、実施の形態1のデータアクセス装置による動作の流れを示すフローチャートである。以降では、データベース又はファイルシステムなどのデータ集合体におけるデータの格納場所を示す情報を定義したデータ定義情報から、各データの格納位置(オフセット又はアドレス)を示すデータ管理データと、データ管理データを参照してデータ集合体の実データにアクセスするデータアクセスプログラムを自動作成する処理について述べる。
先ず、データ定義情報入力部2は、外部記憶装置等にアクセスして、データ定義情報を入力する(ステップST1)。データ定義情報入力部2に取得されたデータ定義情報は、データ定義情報入力部2からデータ定義情報解析部3へ出力される。
データ定義情報解析部3では、データ定義情報入力部2から入力したデータ定義情報の内容を解析する(ステップST2)。
図5は、データ定義情報の一例を示す図である。データ定義情報は、図3に示すデータ集合体を構成する個々のデータに対応して設定され、図5に示すように、各データが含む各項目のデータ及びそのデータ長が規定される。図5に示すデータ定義情報で特定されるデータは、A〜Eの5項目のデータを含み、項目A〜Dのデータは固定長データであり、項目Eのデータは可変長データである。
図6は、図5のデータ定義情報で各データの構造が特定されたデータ集合体の概要を示す図であり、データを表現した矩形の横方向の長さがデータ長を示している。図6に示すデータ集合体には、データ1,2,3,4,・・・が、この順で格納されており、各データ1,2,3,4,・・・についてデータ定義情報が与えられる。データ定義情報解析部3が、各データ1,2,3,4,・・・のデータ定義情報の内容を解析することにより、図6に示すように、各データ1,2,3,4,・・・における固定長の項目A〜Dのデータ及びそのデータ長並びに可変長の項目Eのデータの有無が特定される。
ステップST3において、データ管理データ作成部4は、データ定義情報解析部3の解析結果に基づいて、データ管理データを作成する。ここでは、データ定義情報を解析して得られた各データの固定長のデータ項目及びそのデータ長並びに可変長のデータ項目の有無から当該データ集合体の実データ構成を特定し、これに基づいて、各データの先頭へのオフセットを規定したデータ管理データを作成する場合について述べる。
図7は、データ管理データ作成部によるデータ管理データの作成処理の流れを示すフローチャートであり、図4のステップST3の詳細を示している。
先ず、データ管理データ作成部4は、データ定義情報解析部3の解析結果を入力する(ステップST10)。続いて、データ管理データ作成部4は、入力したデータ定義情報の解析結果から、当該データ定義情報で構造が定義されたデータ中に可変長データがあるか否かを判定する(ステップST11)。データ中に可変長データがない場合(ステップST11;NO)、データ管理データ作成部4は、当該データにおける固定長のデータ項目及びそのデータ長から各項目へのオフセットを特定し、これを設定したデータ管理データを作成する(ステップST12)。
一方、データ中に可変長データがある場合(ステップST11;YES)、データ管理データ作成部4は、可変長データ部のデータサイズを確認するために、データ集合体から当該データの実データを読み込み(ステップST13)、可変長データ部のデータサイズを解析する(ステップST14)。この解析により、データ管理データ作成部4は、当該データにおける可変長のデータ項目及びそのデータ長を求めて、固定長のデータ項目及びそのデータ長を合わせた実データ構成を特定し、これに基づいて各項目へのオフセット値を設定したデータ管理データを作成する(ステップST12)。
図8は、データ集合体の実データ構成の一例を示す図であり、各データが可変長データを含む図6に示したデータ集合体の実データ構成を示している。データ管理データ作成部4は、実データを解析して求めた可変長データ部のデータサイズと、固定長データ部の各項目及びそのデータ長とを合わせて考慮することにより、図8に示すような実データ構成を特定する。
図8の例では、データ番号1,2,3,4に対応するデータ1,2,3,4の実データ構成として、各データ1,2,3,4,・・・の先頭へアクセスするためのオフセット、当該データ全体のデータサイズ、固定長データ部の固定長(bit)及び可変長データ部の可変長(bit)が設定されている。なお、図8に示すオフセット値では、先頭からのデータ位置を絶対位置で示しているが、1つ前のデータの位置からの差分(相対位置)で表現しても構わない。
図9は、データ集合体の実データ構成の他の表現例を示す図であり、図8の実データ構成に対して各項目へのオフセット値を追加している。図9に示すように、データ1,2,3,4の実データ構成として各項目A〜Eへのオフセットを設定する。この実データ構成に基づいてデータ管理データを作成することで、データ1,2,3,4のデータ項目へのアクセスを効率的に行うことができる。例えば、データ番号3のデータにおける項目Cのへのアクセスを容易に指定可能である。
図10は、データ集合体の実データ構成の他の表現例を示す図であり、図9の実データ構成に対して各項目データへのオフセットを数式で表した場合を示している。データ定義情報の解析結果から固定長データ部のデータサイズを特定し、実データ解析で可変長データ部のデータサイズを特定することにより、データ番号nを変数とした数式で各項目へのオフセットを表すことができる。
図11は、データ管理データの一例を示す図である。図11に示すように、データ管理データは、データ集合体のデータごとに作成され、対応するデータにおける各項目A〜Eへのオフセット値及びデータサイズが設定される。
図4の説明に戻る。
データ管理データ出力部6は、データ管理データ作成部4が作成したデータ管理データを入力すると、データ管理データ出力定義情報を参照して出力対象の定義内容に対応するデータ管理データを出力する(ステップST4)。
例えば、図11に示した全ての項目A〜Eのデータが必要な機能であれば、データ管理データ出力定義情報に出力対象項目として項目A〜Eを定義しておくことにより、図11に示すデータ管理データが出力される。
また、機能ごとに処理で使用されるデータ項目が異なる場合がある。
図12は、A機能を実行する際に必要なデータ項目を示す図であり、A機能を実行する際に必要なデータ項目が、図6に示すデータ集合体における各データ1〜4の項目A,C,Eのデータであることを示している。この場合、図6に示すデータ集合体のデータ位置を示すデータ管理データのうち、項目A,C,Eへのアクセスに必要なデータのみが設定されたデータ管理データを出力すれば、項目A,C,Eのデータへ効率的にアクセスすることができる。そこで、本発明では、データ管理データ出力定義情報を用いて、機能ごとに必要なデータのみにアクセスするデータ管理データを規定する。
図13は、データ管理データ出力定義情報の一例を示す図である。ここで、データ管理データ出力定義情報には、出力対象のデータ管理データを定義する情報として、出力形式及び出力項目が機能ごとに定義される。図13に示す例では、A機能を実行する際に必要なデータである、図6に示すデータ集合体の項目A,C,Eのデータが出力対象項目1,2,3として設定されている。また、B機能を実行する際に必要なデータとして、図6に示すデータ集合体の項目A,B,Dのデータが出力対象項目1,2,3となっている。
データ管理データ出力定義情報は、XML(eXtensible Markup Language)形式、又はテキスト形式で記述できる。また、データ管理データ出力定義情報は、データ管理データ出力部6によって記憶内容の読み出しが可能なメモリに予め格納しておく。例えば、データアクセス装置1として機能するコンピュータに内蔵されるメモリを用いる。なお、入力装置13を用いた外部からの操作によって、データ管理データ出力定義情報を追加又は更新できるように構成してもよい。
図14は、データ管理データの一例を示す図であり、A機能を実行する際に必要なデータへのオフセットを設定したデータ管理データを示している。データ管理データ出力部6は、図13に示すデータ管理データ出力定義情報を参照し、A機能に対応するデータ管理データとして、図11に示す各項目A〜Eへのオフセットが設定されたデータ管理データのうち、A機能を実行する際に必要なデータ項目である項目A,C,Eへのオフセットを抽出し、図14に示すような項目A,C,Eへのアクセスに必要なデータのみを設定したデータ管理データを作成する。
また、データ管理データは、データ管理データ出力部6によって、例えば、図2の外部記憶装置10へ出力され、保管される。データ管理データを利用する際は、CPU8が、外部記憶装置10からメモリ9上に展開して、その内容が参照される。
図15は、機能ごとに作成されたデータ管理データの利用形態の概要を示す図である。カーナビゲーション装置等のシステム(図2に示す情報処理装置)は、各種機能(ルート探索や地図表示等)を実現する様々なプログラム要素が登録されたソフトウェアライブラリ(以下、SWライブラリと記載する)を使用して、上記各種の機能を実行する。
図15に示すように、上記システムにおけるSWライブラリ10aに、A機能、B機能及びC機能のプログラム要素が実装されている場合を例に挙げる。この場合、上述のように、機能ごとのデータ管理データ(A機能に必要なデータ管理データ、B機能に必要なデータ管理データ、C機能に必要なデータ管理データ)10bを作成して、データアクセスプログラム10cとともに、当該システムに組み込む。なお、プログラム要素とは、そのプログラムで使用される関数及びその属性、これらを分類するクラス、パッケージ、メソッド等である。
当該システムのCPU8(図2参照)が、例えば、A機能に関するアプリケーションを実行した場合、SWライブラリ10aのA機能のプログラム要素が実行され、A機能部として動作する。このとき、A機能部が、データアクセスプログラム10cを実行し、A機能に必要なデータ管理データを参照して格納位置を特定することで、データ集合体から、A機能の実行に必要なデータが取得される。このようにすることで、効率的に所望のデータへアクセスすることができる。
図4の説明に戻る。
データアクセスプログラム作成部5は、データ定義情報解析部3からデータ定義情報の解析結果を入力し、この解析結果に基づいてデータアクセスプログラムを作成する(ステップST5)。ここで、データ定義情報の解析結果から得られる、アクセス対象のデータ集合体及びそのデータ構成を示す情報を用いて、当該データ集合体にデータアクセスするデータアクセスプログラムが作成される。
続いて、データアクセスプログラム出力部7は、データアクセスプログラム作成部5が作成したデータアクセスプログラムを入力すると、データアクセスプログラム出力定義情報を参照して、出力対象の定義内容に対応するデータアクセスプログラムを出力する(ステップST6)。
また、データアクセスプログラムは、データアクセスプログラム出力部7によって、例えば、図2の外部記憶装置10へ出力され、保管される。データアクセスプログラムを実行する際は、CPU8が外部記憶装置10からメモリ9上に展開して実行される。
図16は、データアクセスプログラムの一例を示す図であり、データ集合体から項目Aのデータを取得するデータアクセスプログラムを示している。図16に示す例では、1行目にアクセス対象のデータ集合体とその対象データID(データ番号id)が設定され、2行目にid番目のデータの項目Aへのオフセットが設定され、3行目には項目Aのデータ長が設定される。そして、4行目にはid番目のデータにおける項目Aのデータを取得することが記述されている。
データアクセスプログラム作成部5は、データ定義情報の解析結果として得られたアクセス対象のデータ集合体及びそのデータ構成から、図16に示すような当該アクセス対象のデータ集合体における各データ(データ項目)を取得するためのデータアクセスプログラムを作成する。例えば、対象データID(データ番号id)、固定長のデータ項目及びそのデータ長等については、データ定義情報の解析結果から取得された値が設定される。一方、可変長のデータ項目のデータ長やオフセットについては、データアクセスプログラムの実行時に、データ管理データを参照して設定される。
図17は、データアクセスプログラム出力定義情報の一例を示す図である。図17に示すように、データアクセスプログラム出力定義情報には、出力言語、出力タイプ、命名規則等が定義される。例えば、出力言語を「Java」(登録商標;図中の記載も同様)とすると、Javaで記述されたプログラムが出力対象となり、出力タイプを「インタフェースのみ出力」とすると、空実装のプログラムが出力される。また、命名規則を「自動」とすると、データアクセスプログラムのクラスや関数が自動的に命名される。これらの項目は、仕様によって変更可能である。なお、本情報は、XML形式やテキスト形式で記述することができる。
また、データアクセスプログラム出力定義情報は、データアクセスプログラム出力部7によって記憶内容の読み出しが可能なメモリに予め格納しておく。例えば、データアクセス装置1として機能するコンピュータに内蔵されるメモリを用いる。なお、入力装置13を用いた外部からの操作によって、データアクセスプログラム出力定義情報を追加又は更新できるように構成してもよい。
図18は、機能ごとに作成されたデータ管理データ及びデータアクセスプログラムの利用形態の概要を示す図である。図18に示すように、SWライブラリ10aに、A機能、B機能及びC機能のプログラム要素が実装されており、機能ごとのデータ管理データ(A機能に必要なデータ管理データ、B機能に必要なデータ管理データ、C機能に必要なデータ管理データ)10bが、システムに組み込まれている場合を例に挙げる。
この場合、データアクセスプログラム出力部7が、データアクセスプログラム出力定義情報を参照して、データアクセスプログラム作成部5で作成されたデータアクセスプログラムを基に、機能ごとのデータアクセスプログラム(Aアクセスプログラム、Bアクセスプログラム、Cアクセスプログラム)10cを作成して、上記システムに組み込む。
当該システムのCPU8(図2参照)が、例えば、A機能に関するアプリケーションを実行した場合、SWライブラリ10aのA機能のプログラム要素が実行されて、A機能部として動作する。このとき、A機能部が、A機能に対応するAアクセスプログラムを実行すると、A機能に必要なデータ管理データを参照して格納位置を特定することで、データ集合体から必要なデータが取得される。このように、機能ごとにデータ管理データ及びデータアクセスプログラムを使い分けることで、効率的かつ高速に所望のデータへアクセスすることができる。
以上のように、この実施の形態1によれば、ナビゲーション装置等の情報処理装置が、データ群(データ集合体)のデータ構成を示すデータ定義情報に基づいて当該データ群における実データの格納位置が規定されたデータ管理データと、データ定義情報に基づいてデータ構成が特定された実データへのアクセス機能を記述したデータアクセスプログラムとを備え、データ管理データを参照して実データの格納位置を特定し、データアクセスプログラムを実行して、データ群の実データにアクセスする。このようにすることで、効率的かつ高速に所望のデータにアクセスすることができる。
また、この実施の形態1によれば、実データを格納したデータ群のデータ構成を示すデータ定義情報を入力するデータ定義情報入力部2と、データ定義情報入力部2で入力されたデータ定義情報の内容を解析するデータ定義情報解析部3と、データ定義情報解析部3でデータ定義情報を解析して得られたデータ群のデータ構成から、当該データ群における実データの格納位置を規定したデータ管理データを作成するデータ管理データ作成部4と、データ定義情報解析部3でデータ定義情報を解析してデータ群におけるデータ構成が特定された実データへのアクセス機能を記述したデータアクセスプログラムを作成するデータアクセスプログラム作成部5と、データ管理データの出力対象内容が定義されたデータ管理データ出力定義情報を参照して、データ管理データ作成部4で作成されたデータ管理データから、出力対象内容を満たすデータ管理データを出力するデータ管理データ出力部6と、データアクセスプログラムの出力対象内容が定義されたデータアクセスプログラム出力定義情報を参照して、データアクセスプログラム作成部5で作成されたデータアクセスプログラムから、出力対象内容を満たすデータアクセスプログラムを出力するデータアクセスプログラム出力部7とを備える。このように構成することで、効率的、かつ高速に所望のデータにアクセスする際に使用されるデータ管理データ及びデータアクセスプログラムを自動作成することが可能である。
実施の形態2.
図19は、この発明の実施の形態2によるナビゲーション装置の構成を示すブロック図である。図19において、図1及び図2と同一の構成部には同一符号を付して説明を省略する。実施の形態2のナビゲーション装置14は、実施の形態1のデータアクセス装置1を適用したナビゲーション装置であり、データアクセス装置1によって作成されたデータ管理データ10b及びデータアクセスプログラム10cが組み込まれる。
SWライブラリ10aには、ナビゲーション装置14における各種の機能を実現するプログラム要素が登録される。例えば、ルート探索用に関するオブジェクトは、ルート探索における様々な機能を実現するプログラム要素からなる階層構造を有している。
地図データベース(地図DB)10dは、地図データで構成したデータ集合体である。また、ナビゲーション装置14は、図2に示すハードウェア構成で実現される。ここで、SWライブラリ10a、データ管理データ10b、データアクセスプログラム10c及び地図DB10dは、外部記憶装置10に格納される。
ナビ機能実行部15は、ナビゲーションに関する各種の機能を実行する構成部であり、CPU8が、ナビゲーションに関するアプリケーションを実行することで具現化される。このとき、CPU8が、SWライブラリ10aの特定の機能のプログラム要素を実行することで、当該機能を実行する機能部15aとして動作する。機能部15aは、データアクセスプログラム10cを実行することで、データ管理データ10bを参照しながら、地図DB10dから必要なデータを取得する。
位置検出部16は、ナビゲーション装置14を搭載した車両の位置を検出する構成部であり、例えば、GPS信号や、車速センサ、ジャイロセンサ等のセンサ群の測定値とマップマッチングなどを用いて自車の現在位置を求める。
データ定義情報10eには、地図DB10dの地図データ構成が定義されており、データ定義情報入力部2によって記憶内容が読み出し可能な記憶装置に格納される。
次に動作について説明する。
ここでは、一例として、地図DB10dの地図図形データに対するデータ管理データの作成処理を示す。
図20は、図19の地図DBにおけるポリゴン及びポイントのデータ構成を規定したER(Entity Relationship)図であり、地図図形としてポリゴンとポイントのデータ構成が定義されている。図20に示すように、ポリゴンとポイントは、タイルに属しており、表示画面上の座標が設定されている。また、ポリゴンとポイントのデータは、パラメータnumPolygon,numPoint,numCoordに設定される値によって、データ数が変化するため、可変長データである。
図21は、図20の定義で構成される地図図形データを示す図であり、地図DB10dにおける地図図形のデータ集合体を示している。なお、図21のデータ構成は、例えば、図6に示したデータ集合体におけるデータ1〜4のうちの1つに相当する。
データ管理データ作成部4は、データ定義情報解析部3から入力したデータ定義情報の解析結果から、当該データ定義情報に定義された地図図形データに可変長データがあるか否かを判定する。上述したように、ポリゴンとポイントのデータは、可変長データであるので、データ管理データ作成部4は、地図DB10dからポリゴンとポイントの実データを読み込んで、可変長データのデータサイズを解析する。
この解析により、データ管理データ作成部4は、当該データにおける可変長のデータ項目(図21のパラメータnumPolygon,numPointの値、numCoordに設定されるポリゴン1,2及びポイント1,2の座標データ)及びそれらのデータ長を求めて、固定長のデータ項目(図21のタイル、ポリゴン1,2、ポイント1,2のID)及びそれらのデータ長を合わせた実データ構成を特定し、これに基づいて各項目へのオフセット値を設定したデータ管理データを作成する。
データ管理データ出力部6は、データ管理データ作成部4が作成したデータ管理データを入力すると、データ管理データ出力定義情報に定義されたデータ管理データを出力し、ナビゲーション装置14に組み込む。
図22は、ポリゴン図形に対するデータ管理データを示す図であり、図23は、ポイント図形に対するデータ管理データを示す図である。
例えば、データ管理データ出力定義情報として、地図描画を実行する際に必要なデータにポリゴンの座標(Coord)を定義することにより、データ管理データ出力部6が、データ管理データ作成部4が作成したデータ管理データからポリゴンの座標を抽出して、図22に示すデータ管理データを作成する。
同様に、データ管理データ出力定義情報として、ポイントの座標(Coord)を定義することで、データ管理データ出力部6が、データ管理データ作成部4が作成したデータ管理データからポイントの座標を抽出して、図23に示すデータ管理データを作成する。
図24は、ポリゴン図形及びポイント図形の双方を管理するデータ管理データを示す図である。データ管理データ出力部6は、データ管理データ出力定義情報において、例えば地図描画を実行する際に必要なデータとして、ポリゴン及びポイントの座標が定義されている場合、図24に示すように、ポリゴン及びポイントの座標データを同一のテーブルで管理するデータ管理データを作成する。このとき、データ管理データに図形種別カラムを設け、ポリゴンとポイントを識別する識別情報を設定してもよい。図24の例では、図形種別“1”がポリゴン図形を示しており、図形種別“2”がポイント図形を示している。
上述のように作成したデータ管理データ10b及びデータアクセスプログラム10cをナビゲーション装置14に組み込む。
ルート探索や地図表示等の機能を実行する際、機能部15aが、データアクセスプログラム10cを実行することで、データ管理データ10bのオフセット値を参照しながら、地図DB10dから必要な地図図形データを取得する。このようにするこで、効率的かつ高速に所望の地図データへアクセスすることができる。
また、上記実施の形態1と同様にデータ管理データ出力定義情報の内容を指定することにより、ルート探索や地図表示等のナビゲーション機能ごとのデータ管理データ10bを作成してもよい。この場合、データ管理データ10bには、ナビゲーション機能ごとに、その実行に必要なデータのアドレスあるいはオフセットが設定される。
このように、機能ごとにデータを分類管理することで、データのメンテナンスを容易に行うことができる。
さらに、ナビゲーション機能ごとのデータ管理データ10bの作成に合わせ、上記実施の形態1と同様にデータアクセスプログラム出力定義情報の内容を指定することにより、ルート探索や地図表示等のナビゲーション機能ごとのデータアクセスプログラム10cを作成してもよい。
この場合、ナビ機能実行部15の機能部15aが、データアクセスプログラム10cを実行することで、対応するナビゲーション機能のデータ管理データ10bを参照して地図DB10dへのアクセスが実行され、当該ナビゲーション機能に必要なデータが取得される。
図25は実施の形態2によるナビゲーション装置の他の構成を示すブロック図である。これまでの説明では、データ管理データ10bと地図DB10dを、別個のデータとして設ける場合を示したが、図25に示すナビゲーション装置14Aでは、データ管理データ10bを地図DB10dと一体化したデータとして備えている。
例えば、地図データのメッシュ単位にデータ管理データを設け、メッシュごとの処理に必要なデータを、当該メッシュに対応するデータ管理データを参照して、地図DB内での格納場所を特定することにより、別個のデータとした場合と比較して、さらに効率的かつ高速に所望の地図データへアクセスすることが可能である。
以上のように、この実施の形態2によれば、地図データの実データが格納された地図DB10dのデータ構成を示すデータ定義情報10eに基づいて地図DB10dにおける実データの格納位置が規定されたデータ管理データ10bと、データ定義情報10eに基づいて地図DB10dにおけるデータ構成が特定された実データへのアクセス機能を記述したデータアクセスプログラム10cと、データ管理データ10bを参照して実データの格納位置を特定し、データアクセスプログラム10cを実行して、地図DB10dの実データにアクセスする機能部15aとを備えたので、効率的かつ高速に所望の地図データへアクセスすることができる。
また、この実施の形態2によれば、データ管理データが、ナビゲーションの機能ごとに使用される実データの格納位置をそれぞれ規定したデータであるので、ナビゲーションの機能ごとに使用される地図データへ効率的かつ高速にアクセスできる。さらに、機能ごとに地図データが分類されることから、地図データのメンテナンスを容易に行うことができる。
さらに、この実施の形態2によれば、データアクセスプログラムが、ナビゲーションの機能ごとに使用される実データへのアクセス機能をそれぞれ記述したプログラムであるので、効率的かつ高速に機能ごとに対応した地図データへアクセスすることができる。
さらに、この実施の形態2によれば、図25に示すように、データ管理データを地図DB10dの一部に含まれるデータとしたので、別個のデータとした場合と比較してさらに効率的かつ高速に所望の地図データへアクセスすることができる。
実施の形態3.
図26は、この発明の実施の形態3によるナビゲーション装置の構成を示すブロック図である。図26において、図1、図2及び図19と同一の構成部には同一符号を付して説明を省略する。実施の形態3におけるナビゲーション装置14aは、上記実施の形態2のナビゲーション装置14の構成に、上記実施の形態1のデータアクセス装置1の構成である、データ定義情報入力部2、データ定義情報解析部3、データ管理データ作成部4、データアクセスプログラム作成部5、データ管理データ出力部6及びデータアクセスプログラム出力部7を備えている。
データ管理データ出力部6から出力されたデータ管理データは、図2に示した外部記憶装置10等にデータ管理データ10bとして保管され、データアクセスプログラム出力部7から出力されたデータアクセスプログラムも同様に、外部記憶装置10等にデータアクセスプログラム10cとして保管される。
ナビ機能実行部15(機能部15a)が、データ管理データ10bを参照して実データの格納位置を特定し、データアクセスプログラム10cを実行して地図DB10dにアクセスすることにより、ナビゲーションに関する処理に使用する実データを取得する。
以上のように、実施の形態3によれば、ナビゲーション装置14aが、データアクセス装置1の構成を備えるので、上記実施の形態2のように、データアクセス装置1によるデータ管理データ10b及びデータアクセスプログラム10cの組み込みを待つことなく、ナビゲーション装置14a自身が、データ管理データ10b及びデータアクセスプログラム10cを自動作成することができる。
実施の形態4.
この実施の形態4は、上記実施の形態2,3と同様にナビゲーション装置としての利用態様を示している。ナビゲーション装置では、例えば道路や建物といった地図を構成する地物が変更されると、これに応じて地図データベースを更新する必要がある。また、地図データベースの更新には、地図データの属性が追加されるようなデータ構造(データフォーマット)の変化を伴う場合がある。そこで、実施の形態4によるナビゲーション装置では、地図データベースに更新があると、更新対象の地物のデータを含む更新地図データベースのデータ構造を示すようにデータ定義情報を更新することで、地図データが更新されても効率的かつ高速なデータアクセスを可能としている。
図27は、この発明の実施の形態4によるナビゲーション装置の構成を示すブロック図である。図27において、図1、図2及び図19と同一の構成部には同一符号を付して説明を省略する。実施の形態4のナビゲーション装置14Bは、上記実施の形態3のナビゲーション装置14aの構成に、更新地図データベース(DB)10f、地図DB更新部15b及びデータ定義情報更新部17を備える。なお、ナビゲーション装置14Bは、図2に示すハードウェア構成で実現される。
更新地図DB10fは、変更された地物の地図データを含む地図データベースである。SWライブラリ10a、データ管理データ10b、データアクセスプログラム10c、地図DB10d、データ定義情報10e及び更新地図DB10fは、図2に示す外部記憶装置10に格納される。
また、CPU8が、SWライブラリ10aにおける地図DB更新機能のプログラム要素を実行することで、当該機能を実行する地図DB更新部15bとして動作する。
地図DB更新部15bは、更新後のデータ定義情報を用いて作成されたデータアクセスプログラム10cを実行し、更新後のデータ定義情報を用いて作成されたデータ管理データを参照して、地図DB10d及び更新地図DB10fから地図データを取得することにより、ナビゲーション処理において更新後の地図データ内容を反映させる構成部である。
データ定義情報更新部17は、既存の地図DB10dと更新地図DB10fとの変更箇所(更新対象の地物)の差分データを用いて、既存のデータ定義情報(地図DB10dのデータ定義情報)を更新する構成部である。
次に動作について説明する。
(1)データ定義情報の更新
図28は、実施の形態4のナビゲーション装置によるデータ定義情報の更新処理の流れを示すフローチャートである。
先ず、データ定義情報更新部17は、既存の地図DB10dの地図データを読み込み(ステップST21)、続いて更新地図DB10fの地図データを読み込む(ステップST22)。例えば、地図DB10d及び更新地図DB10fから位置が対応するタイル単位で、当該タイルに含まれる地図データを読み込む。
次に、データ定義情報更新部17は、地図DB10d及び更新地図DB10fから順次読み込んだ地図データを比較して、変更箇所(更新対象の地物)に対応する差分データを抽出する(ステップST23)。例えば、地図DB10dにおけるデータ項目Aのデータサイズが2bitであり、更新地図DB10fのデータ項目Aのデータサイズが4bitになっている場合のように、対応するデータ間のデータサイズの変化を差分データとして特定する。なお、変更がない場合であっても、データサイズ変化=0の差分データを抽出する。
データ定義情報更新部17は、地図DB10dの地図データと更新地図DB10fの地図データとの差分データを抽出すると、上記地図データに対応するデータ定義情報を読み込み(ステップST24)、上記差分データと上記データ定義情報とを比較して、当該データ定義情報における変更箇所を抽出する(ステップST25)。
ここで、データ定義情報更新部17は、データ定義情報に実質的な変更があるか否かを判定する(ステップST26)。ここで、データサイズ変化=0の差分データであって、当該データ定義情報に変更がない場合(ステップST26;NO)、データ定義情報更新部17は、当該地図データに対応するデータ定義情報の更新処理を終了する。
一方、データ定義情報に変更があれば(ステップST26;YES)、データ定義情報更新部17は、当該差分データを反映するようにデータ定義情報を更新する(ステップST27)。例えば、上述のように、更新地図DB10fのデータ項目Aのデータサイズが4bitになっている場合には、データ定義情報のデータ項目Aを、更新地図DB10fのデータ項目Aのデータサイズ4bitに変更する。
(2)データ管理データの更新
図29は、実施の形態4のナビゲーション装置によるデータ管理データの更新処理の流れを示すフローチャートである。
データ定義情報更新部17が、データ定義情報を更新する(ステップST30)。この処理は、上述した図28の処理に相当する。
続いて、データ定義情報入力部2が、更新されたデータ定義情報を入力する(ステップST31)。データ定義情報入力部2に取得されたデータ定義情報は、データ定義情報入力部2からデータ定義情報解析部3へ出力される。
データ定義情報解析部3では、データ定義情報入力部2から入力したデータ定義情報の内容を解析する(ステップST32)。このあと、データ管理データ出力部6は、データ管理データ出力定義情報を読み込む(ステップST33)。
次に、データ管理データ作成部4は、データ定義情報解析部3から入力したデータ定義情報の解析結果から、当該データ定義情報で構造が定義された地図データ中に可変長データがあるか否かを判定する(ステップST34)。地図データ中に可変長データがない場合(ステップST34;NO)、データ管理データ作成部4は、当該地図データにおける固定長のデータ項目及びそのデータ長から各項目へのオフセットを特定し、これを設定したデータ管理データを作成する。この後、ステップST35の処理へ移行する。
一方、データ中に可変長データがある場合(ステップST34;YES)、データ管理データ作成部4は、可変長データ部のデータサイズを確認するため、更新地図DB10fから当該地図データの実データを読み込み(ステップST36)、可変長データ部のデータサイズを解析する(ステップST37)。この解析により、データ管理データ作成部4は、当該地図データにおける可変長のデータ項目及びそのデータ長を求めて、固定長のデータ項目及びそのデータ長を合わせた実データ構成を特定し、これに基づいて各項目へのオフセット値を設定したデータ管理データを作成する。この後、ステップST35の処理へ移行する。
ステップST35において、データ管理データ出力部6は、データ管理データ作成部4が作成したデータ管理データ(更新地図DB10fに対応するデータ管理データ)を入力し、データ管理データ出力定義情報を参照して出力対象の定義内容に対応するデータ管理データを出力し記憶装置(図2の外部記憶装置10等)へ格納する。
(3)データアクセスプログラムの作成
更新地図DB10fにおける地図データが新たなデータ項目を含む場合には、この項目のデータを取得するためのデータアクセスプログラムが必要となる。
この場合においても、上記実施の形態1と同様に、データアクセスプログラム作成部5が、更新後のデータ定義情報の解析結果として得られた更新地図DB10fのデータ構成から、更新地図DB10fの地図データ(データ項目)を取得するためのデータアクセスプログラムを作成する。
この後、データアクセスプログラム出力部7が、データアクセスプログラム作成部5に作成されたデータアクセスプログラムを入力し、データアクセスプログラム出力定義情報を参照して、出力対象の定義内容に対応するデータアクセスプログラムを出力し記憶装置(図2の外部記憶装置10等)へ格納する。
(4)更新地図の反映
ルート探索や地図表示等の機能を実行する際に、ナビ機能実行部15の地図DB更新部15bが、更新後のデータ定義情報に基づき作成されたデータアクセスプログラム10cを実行することで、更新後のデータ定義情報に基づき作成されたデータ管理データ10bのオフセット値を参照して、更新地図DB10fから必要な地図図形データを取得する。
以上のように、この実施の形態4によれば、地図DB10dが更新地図10fとして更新されると、更新されたデータ構成が反映されるようにデータ定義情報10eを更新するデータ定義情報更新部17を備える。この構成を有することにより、更新地図DB10fに対応したデータ定義情報10eを自動作成することができる。
また、この実施の形態4によれば、データ定義情報更新部17が、既存の地図DB10dにおける実データと更新地図DB10fにおける実データとを比較して地図DB10dからの変更箇所を抽出し、当該変更箇所のデータ構成が反映されるようにデータ定義情報10eを更新する。このようにすることで、更新地図DB10fに対応したデータ定義情報10eを自動作成することができる。
さらに、この実施の形態4によれば、データ定義情報解析部3が、データ定義情報更新部17によってデータ定義情報が更新されると、更新後のデータ定義情報の内容を解析し、データ管理データ作成部4が、データ定義情報解析部3で更新後のデータ定義情報を解析して得られた更新地図DB10fのデータ構成から、更新地図DB10fにおける実データの格納位置を規定したデータ管理データ10bを作成し、データアクセスプログラム作成部5が、データ定義情報解析部3で更新後のデータ定義情報を解析して更新地図DB10fにおけるデータ構成が特定された実データへのアクセス機能を記述したデータアクセスプログラム10cを作成する。このように、更新地図DB10fに対応したデータ定義情報10eに更新されると、これに応じてデータ管理データ10b及びデータアクセスプログラム10cが自動的に更新されることから、地図DBが動的に更新されても、効率的かつ高速な地図データへのアクセスが可能である。
実施の形態5.
図30は、この発明の実施の形態5によるナビゲーション装置の構成を示すブロック図である。図30において、図1、図2、図19及び図27と同一の構成部には、同一符号を付して説明を省略する。実施の形態5のナビゲーション装置14Cは、上記実施の形態4におけるナビゲーション装置14Bの構成に更新情報データベース(DB)10gを備え、データ定義情報更新部17の代わりにデータ定義情報更新部17aを備える。なお、ナビゲーション装置14Cは、図2に示すハードウェア構成で実現される。
更新情報DB10gは、更新地図DB10fの地図データにおける更新内容を定義した更新定義情報を格納するデータベースである。SWライブラリ10a、データ管理データ10b、データアクセスプログラム10c、地図DB10d、データ定義情報10e、更新地図DB10f及び更新情報DB10gは、図2の外部記憶装置10に格納される。
また、データ定義情報更新部17aは、更新情報DB10gから読み出した更新定義情報を用いて、既存のデータ定義情報(地図DB10dのデータ定義情報)を更新する構成部である。
次に動作について説明する。
図31は、実施の形態5のナビゲーション装置によるデータ定義情報及びデータ管理データの更新処理の流れを示すフローチャートである。
先ず、データ定義情報更新部17aは、更新情報DB10gの更新定義情報を読み込み(ステップST40)、更新定義情報を解析する(ステップST41)。
次に、データ定義情報更新部17aは、当該更新定義情報で更新内容が定義された地図データに対応するデータ定義情報を読み込み、更新定義情報の解析結果を反映するようにデータ定義情報を更新する(ステップST42)。
図32は、更新定義情報の一例を示す図である。図32に示す更新定義情報では、対応する地図データにおける項目Cに続いてデータ長が8bitの項目Fのデータを挿入する更新内容が定義されている。このように、更新定義情報には、更新内容として、例えば、更新対象のデータ項目、そのデータ長、及び、当該データ項目の地図データ(既存の地図DB10dの地図データ)における挿入箇所等が定義される。
また、更新によってデータを削除する場合は、更新対象のデータ項目に削除対象の項目を設定し、データ長を0bitを記述する。さらに、地図データのトップ位置にデータを挿入する場合には、挿入箇所に“0”を指定する。
図33は、図32の更新定義情報に基づくデータ定義情報の更新処理の概要を示す図である。図32に示す更新定義情報は、上述したように、更新地図DB10fの対応する地図データが、地図DB10dの対応する地図データの項目Cに続いてデータ長が8bitの項目Fのデータを挿入する更新がなされていることを示している。
そこで、データ定義情報更新部17aは、上記地図データに対応する既存のデータ定義情報を読み出し、項目Cに続いてデータ長が8bitの項目Fのデータを挿入したデータ構成を示すデータ定義情報へ更新する。
この後、データ定義情報入力部2が、更新されたデータ定義情報を入力する(ステップST43)。データ定義情報入力部2に取得されたデータ定義情報は、データ定義情報入力部2からデータ定義情報解析部3へ出力される。
データ定義情報解析部3では、データ定義情報入力部2から入力したデータ定義情報の内容を解析する(ステップST44)。データ管理データ出力部6は、データ管理データ出力定義情報を読み込む(ステップST45)。
次に、データ管理データ作成部4は、データ定義情報解析部3から入力したデータ定義情報の解析結果から、当該データ定義情報で構造が定義された地図データ中に可変長データがあるか否かを判定する(ステップST46)。地図データ中に可変長データがない場合(ステップST46;NO)、データ管理データ作成部4は、当該地図データにおける固定長のデータ項目及びそのデータ長から各項目へのオフセットを特定し、これを設定したデータ管理データを作成する。この後、ステップST47の処理へ移行する。
一方、データ中に可変長データがある場合(ステップST46;YES)、データ管理データ作成部4は、可変長データ部のデータサイズを確認するため、更新地図DB10fから当該地図データの実データを読み込み(ステップST48)、可変長データ部のデータサイズを解析する(ステップST49)。この解析により、データ管理データ作成部4は、当該地図データにおける可変長のデータ項目及びそのデータ長を求めて、固定長のデータ項目及びそのデータ長を合わせた実データ構成を特定し、これに基づいて各項目へのオフセット値を設定したデータ管理データを作成する。この後、ステップST47の処理へ移行する。
ステップST47において、データ管理データ出力部6は、データ管理データ作成部4が作成したデータ管理データ(更新地図DB10fに対応するデータ管理データ)を入力し、データ管理データ出力定義情報を参照して出力対象の定義内容に対応するデータ管理データを出力し記憶装置(図2の外部記憶装置10等)へ格納する。
データアクセスプログラム作成部5及びデータアクセスプログラム出力部7による更新後のデータ定義情報に基づくデータアクセスプログラムの作成処理、及び、地図DB更新部15bによる更新地図の反映処理については、上記実施の形態3と同様である。
以上のように、この実施の形態5によれば、データ定義情報更新部17aが、更新地図DB10fにおける地図DB10dからの変更内容を示す更新定義情報に基づいて、更新されたデータ構成が反映されるようにデータ定義情報10eを更新する。このようにすることで、更新地図DB10fに対応したデータ定義情報10eを自動作成することができる。
また、この実施の形態5によれば、データ定義情報解析部3が、データ定義情報更新部17aによってデータ定義情報が更新されると、更新後のデータ定義情報の内容を解析し、データ管理データ作成部4が、データ定義情報解析部3で更新後のデータ定義情報を解析して得られた更新地図DB10fのデータ構成から、更新地図DB10fにおける実データの格納位置を規定したデータ管理データ10bを作成し、データアクセスプログラム作成部5が、データ定義情報解析部3で更新後のデータ定義情報を解析して更新地図DB10fにおけるデータ構成が特定された実データへのアクセス機能を記述したデータアクセスプログラム10cを作成する。このように、更新地図DB10fに対応したデータ定義情報10eに更新されると、これに応じてデータ管理データ10b及びデータアクセスプログラム10cが自動的に更新されることから、地図DBが動的に更新されても、効率的かつ高速な地図データへのアクセスが可能である。
実施の形態6.
図34は、この発明の実施の形態6によるナビゲーション装置の構成を示すブロック図である。図34において、実施の形態6のナビゲーション装置14Dは、上記実施の形態4の構成から、データ定義情報入力部2、データ定義情報解析部3、データ管理データ作成部4、データアクセスプログラム作成部5、データ管理データ出力部6、データアクセスプログラム出力部7及びデータ定義情報更新部17を、データアクセス装置1Aとして分離したものである。この構成において、ナビゲーション装置14Dには、データアクセス装置1Aによって作成あるいは更新されたデータ管理データ10b及びデータアクセスプログラム10cが組み込まれる。
また、図35は、実施の形態6によるナビゲーション装置の他の構成を示すブロック図である。図35において、ナビゲーション装置14Eは、上記実施の形態5の構成から、データ定義情報入力部2、データ定義情報解析部3、データ管理データ作成部4、データアクセスプログラム作成部5、データ管理データ出力部6、データアクセスプログラム出力部7及びデータ定義情報更新部17aを、データアクセス装置1Bとして分離したものである。この構成において、ナビゲーション装置14Eには、データアクセス装置1Bによって作成あるいは更新されたデータ管理データ10b及びデータアクセスプログラム10cが組み込まれる。
以上のように、この実施の形態6によれば、図34又は図35の構成とすることで、上記実施の形態3及び上記実施の形態4と同様の効果を得ることができる。
なお、上記実施の形態3〜6において、データ管理データと地図DBを、別個のデータとして設けた場合を示したが、図25に示すようにデータ管理データを地図DBと一体化したデータとして設けても構わない。
例えば、地図データのメッシュ単位にデータ管理データを設け、メッシュごとの処理に必要なデータを、当該メッシュに対応するデータ管理データを参照して、地図DB内での格納場所を特定することにより、別個のデータとした場合と比較して、さらに効率的かつ高速に所望の地図データへアクセスすることが可能である。
この発明に係るデータアクセス方法は、実データに対して効率的かつ高速にアクセスできることから、迅速なナビゲーション処理が要求される車載用のナビゲーション装置等に好適である。
この発明は、データベースにアクセスして所望のデータを取得するデータアクセス方法及びデータアクセス装置に関するものである。
例えば、特許文献1には、サービス機能を実行するサービス機能部のアドレスと、サービス機能実行部のポインタとをテーブルで管理しており、データアクセス又は特定のサービス機能を呼び出す際、当該テーブルを参照してポインタに対応するアドレスを取得し、当該アドレスに基づいてサービス機能実行部を起動し、サービス機能を実行するサービス機能提供装置が開示されている。当該装置は、上記のテーブルを参照することによって、共有ライブラリから、親プログラムにリンクされている機能をエントリ名で直接呼び出すことができる。
しかしながら、特許文献1では、実データにアクセスするデータアクセスプログラムと上述のアドレスやポインタの管理データとの関連が言及されていない。一般的に、データ仕様が変更された場合に、これに応じてデータアクセスプログラムの改修が必要であり、データの格納位置を示すアドレス又はオフセットの変更のみを管理しても、データアクセスプログラムが対応していなければ、効率的なデータアクセスはできない。
特に、ナビゲーション装置で用いる地図データは、一般的に、容量が可変長で、データ量が多く、更新も頻繁にあり、さらに、データフォーマット自体が変更されることも多々ある。この場合、データ仕様が変更される度に、変更後のデータ仕様でのデータアドレス又はオフセット、これに基づき実データにアクセスするデータアクセスプログラムが必要となる。
この発明は、上記のような課題を解決するためになされたもので、データ群に格納される所望のデータに対して効率的かつ高速にアクセスすることができるデータアクセス方法及びデータアクセス装置を得ることを目的とする。
この発明に係るデータアクセス方法は、実データが格納されたデータ群のデータ構成を示すデータ定義情報と出力対象内容を定義するデータ出力定義情報とに基づいて当該データ群における前記実データの格納位置が規定されたデータ管理データと、
前記データ定義情報とデータ出力定義情報とに基づいてデータ群におけるデータ構成が特定された実データへのアクセス機能を記述したデータアクセスプログラムとを予め生成記憶し、データアクセスプログラムは、データ管理データを参照しながら実データの格納位置を特定し、データ群の実データにアクセスする。
この発明によれば、実データが格納されたデータ群のデータ構成を示すデータ定義情報に基づいて当該データ群における実データの格納位置が規定されたデータ管理データと、データ定義情報に基づいてデータ群におけるデータ構成が特定された実データへのアクセス機能を記述したデータアクセスプログラムとを備えた情報処理装置が、データ管理データを参照して実データの格納位置を特定し、データアクセスプログラムを実行して、データ群の実データにアクセスするので、データ群に格納される所望のデータに対して効率的かつ高速にアクセスすることができるという効果がある。
この発明の実施の形態1によるデータアクセス装置の構成を示すブロック図である。
この発明によるデータアクセス装置が適用される情報処理装置のハードウェア構成を示すブロック図である。
データベース等を構成するデータ集合体の概要を示す図である。
実施の形態1のデータアクセス装置による動作の流れを示すフローチャートである。
データ定義情報の一例を示す図である。
図5のデータ定義情報で各データの構造が特定されたデータ集合体の概要を示す図である。
データ管理データ作成部によるデータ管理データの作成処理の流れを示すフローチャートである。
データ集合体の実データ構成の一例を示す図である。
データ集合体の実データ構成の他の表現例を示す図である。
データ集合体の実データ構成の他の表現例を示す図である。
データ管理データの一例を示す図である。
A機能を実行する際に必要なデータ項目を示す図である。
データ管理データ出力定義情報の一例を示す図である。
データ管理データの一例を示す図である。
機能ごとに作成されたデータ管理データの利用形態の概要を示す図である。
データアクセスプログラムの一例を示す図である。
データアクセスプログラム出力定義情報の一例を示す図である。
機能ごとに作成されたデータ管理データ及びデータアクセスプログラムの利用形態の概要を示す図である。
この発明の実施の形態2によるナビゲーション装置の構成を示すブロック図である。
図19の地図DBにおけるポリゴン及びポイントのデータ構成を規定したER図である。
図20の定義で構成される地図図形データを示す図である。
ポリゴン図形に対するデータ管理データを示す図である。
ポイント図形に対するデータ管理データを示す図である。
ポリゴン図形及びポイント図形の双方を管理するデータ管理データを示す図である。
実施の形態2によるナビゲーション装置の他の構成を示すブロック図である。
この発明の実施の形態3によるナビゲーション装置の構成を示すブロック図である。
この発明の実施の形態4によるナビゲーション装置の構成を示すブロック図である。
実施の形態4のナビゲーション装置によるデータ定義情報の更新処理の流れを示すフローチャートである。
実施の形態4のナビゲーション装置によるデータ管理データの更新処理の流れを示すフローチャートである。
この発明の実施の形態5によるナビゲーション装置の他の構成を示すブロック図である。
実施の形態5のナビゲーション装置によるデータ定義情報及びデータ管理データの更新処理の流れを示すフローチャートである。
更新定義情報の一例を示す図である。
図32の更新定義情報に基づくデータ定義情報の更新処理の概要を示す図である。
この発明の実施の形態6によるナビゲーション装置の構成を示すブロック図である。
実施の形態6によるナビゲーション装置の他の構成を示すブロック図である。
実施の形態1.
図1は、この発明の実施の形態1によるデータアクセス装置の構成を示すブロック図である。図1において、実施の形態1におけるデータアクセス装置1は、データ管理データ及びデータアクセスプログラムを自動作成する装置である。
データ管理データとは、ある目的を果たすためのシステムによって使用されるデータの集合体(データベース又はファイルシステム)(データ群)におけるデータの格納場所を示すアドレス又はデータの先頭若しくはデータの先頭から特定の構成要素(データ項目)までの距離を示すオフセット(データ群における格納位置)が設定されたデータである。データアクセスプログラムとは、データ管理データを参照して、データ集合体の実データにアクセスするプログラムである。
また、データアクセス装置1は、構成として、データ定義情報入力部2、データ定義情報解析部3、データ管理データ作成部4、データアクセスプログラム作成部5、データ管理データ出力部6、及びデータアクセスプログラム出力部7を備える。
データ定義情報入力部2は、データ定義情報を入力する構成部であり、例えば外部記憶装置からデータ定義情報を読み込む。データ定義情報解析部3は、データ定義情報を解析する構成部である。データ定義情報は、アクセス対象のデータ集合体におけるデータの構成を定義した情報である。例えば、データを構成するデータ項目及びそのデータ長が定義される。
データ管理データ作成部4は、データ定義情報解析部3の解析結果に基づいて、データ管理データを作成する構成部である。また、データアクセスプログラム作成部5は、データ定義情報解析部3の解析結果に基づいて、データアクセスプログラムを作成する構成部である。データ管理データ出力部6は、データ管理データ出力定義情報を参照しながら、データ管理データ作成部4に作成されたデータ管理データを基に、出力対象のデータ管理データを作成して出力する構成部である。ここで、データ管理データ出力定義情報とは、出力対象のデータ管理データの出力形式及び出力対象のデータ項目を示す情報である。
データアクセスプログラム出力部7は、データアクセスプログラム出力定義情報を参照しながら、データアクセスプログラム作成部5に作成されたデータアクセスプログラムを基に、出力対象のデータアクセスプログラムを作成して出力する構成部である。ここで、データアクセスプログラム出力定義情報とは、出力対象のデータアクセスプログラムの、出力言語、出力タイプ、命名規則等を示す情報である。
図2は、この発明によるデータアクセス装置が適用される情報処理装置のハードウェア構成を示すブロック図である。この情報処理装置としては、例えば、カーナビゲーション装置や、携帯電話、PDA(Personal Digital Assistant)などの移動体情報端末が挙げられる。図2において、外部記憶装置10には、この発明の趣旨に合致したデータアクセス用処理プログラム、この情報処理装置で実行されるカーナビゲーション等の処理を実現するためのアプリケーションソフトウェア、当該処理における各種の機能部が実装されたソフトウェアライブラリ、上記のアプリケーションソフトウェアによる処理で利用されるデータ(例えば、地図データ)が格納される。
なお、外部記憶装置10としては、ハードディスク装置(HDD)、CDやDVDなどの記憶媒体及びそのドライブ装置、USB(Universal Serial Bus)メモリなどが挙げられる。
上記データアクセス用処理プログラムや、上記アプリケーションソフトウェアのプログラム、ソフトウェアライブラリは、外部記憶装置10からメモリ9上に展開され、CPU8によって実行される。CPU8が、上記データアクセス用処理プログラムを実行することで、図1で示したデータ定義情報入力部2、データ定義情報解析部3、データ管理データ作成部4、データアクセスプログラム作成部5、データ管理データ出力部6、及びデータアクセスプログラム出力部7が、ハードウェアとソフトウェアが協働した具体的な手段として実現される。
CPU8による演算結果は、バスを介して表示装置11へ出力されて画面表示される。表示装置11は、例えば、カーナビゲーションにおける地図表示などを実行する。この表示装置11としては、液晶ディスプレイやプラズマディスプレイが挙げられる。
通信装置12は、装置外部と通信を行う装置であり、ナビゲーション装置の場合には、GPS(Global Positioning System)電波やFM電波を受信する。
入力装置13は、装置外部から操作入力するための装置であり、キーボードや操作スイッチ、表示装置11と組み合わされたタッチパネル等で実現される。ナビゲーション装置の場合、ルート探索の条件は、この入力装置13を用いて入力される。
なお、図2では、上記データアクセス用処理プログラム、アプリケーションソフトウェア、ソフトウェアライブラリ、上記アプリケーションソフトウェアによる処理で利用されるデータが、外部記憶装置10に全て格納される場合を示したが、これらソフトウェアのそれぞれ又はこれらの少なくとも1つが、CPU8によって記憶内容が読み取り可能な別個の記憶装置に記憶されても構わない。
図3は、データベース等を構成するデータ集合体の概要を示す図であり、データを表現した矩形の横方向の長さがデータ長を示している。図3に示すように、本発明で取り扱うデータ1,2,3,・・・は、データサイズが予め固定される固定長データ、及び状況に応じてデータサイズが変化する可変長データの2種類から構成される。また、固定長データ及び可変長データは、データフォーマットに応じた各項目のデータで構成されている。このようなデータ集合体(データ群)がデータアクセス対象のデータベース又はファイルシステムに相当する。
次に動作について説明する。
図4は、実施の形態1のデータアクセス装置による動作の流れを示すフローチャートである。以降では、データベース又はファイルシステムなどのデータ集合体におけるデータの格納場所を示す情報を定義したデータ定義情報から、各データの格納位置(オフセット又はアドレス)を示すデータ管理データと、データ管理データを参照してデータ集合体の実データにアクセスするデータアクセスプログラムを自動作成する処理について述べる。
先ず、データ定義情報入力部2は、外部記憶装置等にアクセスして、データ定義情報を入力する(ステップST1)。データ定義情報入力部2に取得されたデータ定義情報は、データ定義情報入力部2からデータ定義情報解析部3へ出力される。
データ定義情報解析部3では、データ定義情報入力部2から入力したデータ定義情報の内容を解析する(ステップST2)。
図5は、データ定義情報の一例を示す図である。データ定義情報は、図3に示すデータ集合体を構成する個々のデータに対応して設定され、図5に示すように、各データが含む各項目のデータ及びそのデータ長が規定される。図5に示すデータ定義情報で特定されるデータは、A〜Eの5項目のデータを含み、項目A〜Dのデータは固定長データであり、項目Eのデータは可変長データである。
図6は、図5のデータ定義情報で各データの構造が特定されたデータ集合体の概要を示す図であり、データを表現した矩形の横方向の長さがデータ長を示している。図6に示すデータ集合体には、データ1,2,3,4,・・・が、この順で格納されており、各データ1,2,3,4,・・・についてデータ定義情報が与えられる。データ定義情報解析部3が、各データ1,2,3,4,・・・のデータ定義情報の内容を解析することにより、図6に示すように、各データ1,2,3,4,・・・における固定長の項目A〜Dのデータ及びそのデータ長並びに可変長の項目Eのデータの有無が特定される。
ステップST3において、データ管理データ作成部4は、データ定義情報解析部3の解析結果に基づいて、データ管理データを作成する。ここでは、データ定義情報を解析して得られた各データの固定長のデータ項目及びそのデータ長並びに可変長のデータ項目の有無から当該データ集合体の実データ構成を特定し、これに基づいて、各データの先頭へのオフセットを規定したデータ管理データを作成する場合について述べる。
図7は、データ管理データ作成部によるデータ管理データの作成処理の流れを示すフローチャートであり、図4のステップST3の詳細を示している。
先ず、データ管理データ作成部4は、データ定義情報解析部3の解析結果を入力する(ステップST10)。続いて、データ管理データ作成部4は、入力したデータ定義情報の解析結果から、当該データ定義情報で構造が定義されたデータ中に可変長データがあるか否かを判定する(ステップST11)。データ中に可変長データがない場合(ステップST11;NO)、データ管理データ作成部4は、当該データにおける固定長のデータ項目及びそのデータ長から各項目へのオフセットを特定し、これを設定したデータ管理データを作成する(ステップST12)。
一方、データ中に可変長データがある場合(ステップST11;YES)、データ管理データ作成部4は、可変長データ部のデータサイズを確認するために、データ集合体から当該データの実データを読み込み(ステップST13)、可変長データ部のデータサイズを解析する(ステップST14)。この解析により、データ管理データ作成部4は、当該データにおける可変長のデータ項目及びそのデータ長を求めて、固定長のデータ項目及びそのデータ長を合わせた実データ構成を特定し、これに基づいて各項目へのオフセット値を設定したデータ管理データを作成する(ステップST12)。
図8は、データ集合体の実データ構成の一例を示す図であり、各データが可変長データを含む図6に示したデータ集合体の実データ構成を示している。データ管理データ作成部4は、実データを解析して求めた可変長データ部のデータサイズと、固定長データ部の各項目及びそのデータ長とを合わせて考慮することにより、図8に示すような実データ構成を特定する。
図8の例では、データ番号1,2,3,4に対応するデータ1,2,3,4の実データ構成として、各データ1,2,3,4,・・・の先頭へアクセスするためのオフセット、当該データ全体のデータサイズ、固定長データ部の固定長(bit)及び可変長データ部の可変長(bit)が設定されている。なお、図8に示すオフセット値では、先頭からのデータ位置を絶対位置で示しているが、1つ前のデータの位置からの差分(相対位置)で表現しても構わない。
図9は、データ集合体の実データ構成の他の表現例を示す図であり、図8の実データ構成に対して各項目へのオフセット値を追加している。図9に示すように、データ1,2,3,4の実データ構成として各項目A〜Eへのオフセットを設定する。この実データ構成に基づいてデータ管理データを作成することで、データ1,2,3,4のデータ項目へのアクセスを効率的に行うことができる。例えば、データ番号3のデータにおける項目Cのへのアクセスを容易に指定可能である。
図10は、データ集合体の実データ構成の他の表現例を示す図であり、図9の実データ構成に対して各項目データへのオフセットを数式で表した場合を示している。データ定義情報の解析結果から固定長データ部のデータサイズを特定し、実データ解析で可変長データ部のデータサイズを特定することにより、データ番号nを変数とした数式で各項目へのオフセットを表すことができる。
図11は、データ管理データの一例を示す図である。図11に示すように、データ管理データは、データ集合体のデータごとに作成され、対応するデータにおける各項目A〜Eへのオフセット値及びデータサイズが設定される。
図4の説明に戻る。
データ管理データ出力部6は、データ管理データ作成部4が作成したデータ管理データを入力すると、データ管理データ出力定義情報を参照して出力対象の定義内容に対応するデータ管理データを出力する(ステップST4)。
例えば、図11に示した全ての項目A〜Eのデータが必要な機能であれば、データ管理データ出力定義情報に出力対象項目として項目A〜Eを定義しておくことにより、図11に示すデータ管理データが出力される。
また、機能ごとに処理で使用されるデータ項目が異なる場合がある。
図12は、A機能を実行する際に必要なデータ項目を示す図であり、A機能を実行する際に必要なデータ項目が、図6に示すデータ集合体における各データ1〜4の項目A,C,Eのデータであることを示している。この場合、図6に示すデータ集合体のデータ位置を示すデータ管理データのうち、項目A,C,Eへのアクセスに必要なデータのみが設定されたデータ管理データを出力すれば、項目A,C,Eのデータへ効率的にアクセスすることができる。そこで、本発明では、データ管理データ出力定義情報を用いて、機能ごとに必要なデータのみにアクセスするデータ管理データを規定する。
図13は、データ管理データ出力定義情報の一例を示す図である。ここで、データ管理データ出力定義情報には、出力対象のデータ管理データを定義する情報として、出力形式及び出力項目が機能ごとに定義される。図13に示す例では、A機能を実行する際に必要なデータである、図6に示すデータ集合体の項目A,C,Eのデータが出力対象項目1,2,3として設定されている。また、B機能を実行する際に必要なデータとして、図6に示すデータ集合体の項目A,B,Dのデータが出力対象項目1,2,3となっている。
データ管理データ出力定義情報は、XML(eXtensible Markup Language)形式、又はテキスト形式で記述できる。また、データ管理データ出力定義情報は、データ管理データ出力部6によって記憶内容の読み出しが可能なメモリに予め格納しておく。例えば、データアクセス装置1として機能するコンピュータに内蔵されるメモリを用いる。なお、入力装置13を用いた外部からの操作によって、データ管理データ出力定義情報を追加又は更新できるように構成してもよい。
図14は、データ管理データの一例を示す図であり、A機能を実行する際に必要なデータへのオフセットを設定したデータ管理データを示している。データ管理データ出力部6は、図13に示すデータ管理データ出力定義情報を参照し、A機能に対応するデータ管理データとして、図11に示す各項目A〜Eへのオフセットが設定されたデータ管理データのうち、A機能を実行する際に必要なデータ項目である項目A,C,Eへのオフセットを抽出し、図14に示すような項目A,C,Eへのアクセスに必要なデータのみを設定したデータ管理データを作成する。
また、データ管理データは、データ管理データ出力部6によって、例えば、図2の外部記憶装置10へ出力され、保管される。データ管理データを利用する際は、CPU8が、外部記憶装置10からメモリ9上に展開して、その内容が参照される。
図15は、機能ごとに作成されたデータ管理データの利用形態の概要を示す図である。カーナビゲーション装置等のシステム(図2に示す情報処理装置)は、各種機能(ルート探索や地図表示等)を実現する様々なプログラム要素が登録されたソフトウェアライブラリ(以下、SWライブラリと記載する)を使用して、上記各種の機能を実行する。
図15に示すように、上記システムにおけるSWライブラリ10aに、A機能、B機能及びC機能のプログラム要素が実装されている場合を例に挙げる。この場合、上述のように、機能ごとのデータ管理データ(A機能に必要なデータ管理データ、B機能に必要なデータ管理データ、C機能に必要なデータ管理データ)10bを作成して、データアクセスプログラム10cとともに、当該システムに組み込む。なお、プログラム要素とは、そのプログラムで使用される関数及びその属性、これらを分類するクラス、パッケージ、メソッド等である。
当該システムのCPU8(図2参照)が、例えば、A機能に関するアプリケーションを実行した場合、SWライブラリ10aのA機能のプログラム要素が実行され、A機能部として動作する。このとき、A機能部が、データアクセスプログラム10cを実行し、A機能に必要なデータ管理データを参照して格納位置を特定することで、データ集合体から、A機能の実行に必要なデータが取得される。このようにすることで、効率的に所望のデータへアクセスすることができる。
図4の説明に戻る。
データアクセスプログラム作成部5は、データ定義情報解析部3からデータ定義情報の解析結果を入力し、この解析結果に基づいてデータアクセスプログラムを作成する(ステップST5)。ここで、データ定義情報の解析結果から得られる、アクセス対象のデータ集合体及びそのデータ構成を示す情報を用いて、当該データ集合体にデータアクセスするデータアクセスプログラムが作成される。
続いて、データアクセスプログラム出力部7は、データアクセスプログラム作成部5が作成したデータアクセスプログラムを入力すると、データアクセスプログラム出力定義情報を参照して、出力対象の定義内容に対応するデータアクセスプログラムを出力する(ステップST6)。
また、データアクセスプログラムは、データアクセスプログラム出力部7によって、例えば、図2の外部記憶装置10へ出力され、保管される。データアクセスプログラムを実行する際は、CPU8が外部記憶装置10からメモリ9上に展開して実行される。
図16は、データアクセスプログラムの一例を示す図であり、データ集合体から項目Aのデータを取得するデータアクセスプログラムを示している。図16に示す例では、1行目にアクセス対象のデータ集合体とその対象データID(データ番号id)が設定され、2行目にid番目のデータの項目Aへのオフセットが設定され、3行目には項目Aのデータ長が設定される。そして、4行目にはid番目のデータにおける項目Aのデータを取得することが記述されている。
データアクセスプログラム作成部5は、データ定義情報の解析結果として得られたアクセス対象のデータ集合体及びそのデータ構成から、図16に示すような当該アクセス対象のデータ集合体における各データ(データ項目)を取得するためのデータアクセスプログラムを作成する。例えば、対象データID(データ番号id)、固定長のデータ項目及びそのデータ長等については、データ定義情報の解析結果から取得された値が設定される。一方、可変長のデータ項目のデータ長やオフセットについては、データアクセスプログラムの実行時に、データ管理データを参照して設定される。
図17は、データアクセスプログラム出力定義情報の一例を示す図である。図17に示すように、データアクセスプログラム出力定義情報には、出力言語、出力タイプ、命名規則等が定義される。例えば、出力言語を「Java」(登録商標;図中の記載も同様)とすると、Javaで記述されたプログラムが出力対象となり、出力タイプを「インタフェースのみ出力」とすると、空実装のプログラムが出力される。また、命名規則を「自動」とすると、データアクセスプログラムのクラスや関数が自動的に命名される。これらの項目は、仕様によって変更可能である。なお、本情報は、XML形式やテキスト形式で記述することができる。
また、データアクセスプログラム出力定義情報は、データアクセスプログラム出力部7によって記憶内容の読み出しが可能なメモリに予め格納しておく。例えば、データアクセス装置1として機能するコンピュータに内蔵されるメモリを用いる。なお、入力装置13を用いた外部からの操作によって、データアクセスプログラム出力定義情報を追加又は更新できるように構成してもよい。
図18は、機能ごとに作成されたデータ管理データ及びデータアクセスプログラムの利用形態の概要を示す図である。図18に示すように、SWライブラリ10aに、A機能、B機能及びC機能のプログラム要素が実装されており、機能ごとのデータ管理データ(A機能に必要なデータ管理データ、B機能に必要なデータ管理データ、C機能に必要なデータ管理データ)10bが、システムに組み込まれている場合を例に挙げる。
この場合、データアクセスプログラム出力部7が、データアクセスプログラム出力定義情報を参照して、データアクセスプログラム作成部5で作成されたデータアクセスプログラムを基に、機能ごとのデータアクセスプログラム(Aアクセスプログラム、Bアクセスプログラム、Cアクセスプログラム)10cを作成して、上記システムに組み込む。
当該システムのCPU8(図2参照)が、例えば、A機能に関するアプリケーションを実行した場合、SWライブラリ10aのA機能のプログラム要素が実行されて、A機能部として動作する。このとき、A機能部が、A機能に対応するAアクセスプログラムを実行すると、A機能に必要なデータ管理データを参照して格納位置を特定することで、データ集合体から必要なデータが取得される。このように、機能ごとにデータ管理データ及びデータアクセスプログラムを使い分けることで、効率的かつ高速に所望のデータへアクセスすることができる。
以上のように、この実施の形態1によれば、ナビゲーション装置等の情報処理装置が、データ群(データ集合体)のデータ構成を示すデータ定義情報に基づいて当該データ群における実データの格納位置が規定されたデータ管理データと、データ定義情報に基づいてデータ構成が特定された実データへのアクセス機能を記述したデータアクセスプログラムとを備え、データ管理データを参照して実データの格納位置を特定し、データアクセスプログラムを実行して、データ群の実データにアクセスする。このようにすることで、効率的かつ高速に所望のデータにアクセスすることができる。
また、この実施の形態1によれば、実データを格納したデータ群のデータ構成を示すデータ定義情報を入力するデータ定義情報入力部2と、データ定義情報入力部2で入力されたデータ定義情報の内容を解析するデータ定義情報解析部3と、データ定義情報解析部3でデータ定義情報を解析して得られたデータ群のデータ構成から、当該データ群における実データの格納位置を規定したデータ管理データを作成するデータ管理データ作成部4と、データ定義情報解析部3でデータ定義情報を解析してデータ群におけるデータ構成が特定された実データへのアクセス機能を記述したデータアクセスプログラムを作成するデータアクセスプログラム作成部5と、データ管理データの出力対象内容が定義されたデータ管理データ出力定義情報を参照して、データ管理データ作成部4で作成されたデータ管理データから、出力対象内容を満たすデータ管理データを出力するデータ管理データ出力部6と、データアクセスプログラムの出力対象内容が定義されたデータアクセスプログラム出力定義情報を参照して、データアクセスプログラム作成部5で作成されたデータアクセスプログラムから、出力対象内容を満たすデータアクセスプログラムを出力するデータアクセスプログラム出力部7とを備える。このように構成することで、効率的、かつ高速に所望のデータにアクセスする際に使用されるデータ管理データ及びデータアクセスプログラムを自動作成することが可能である。
実施の形態2.
図19は、この発明の実施の形態2によるナビゲーション装置の構成を示すブロック図である。図19において、図1及び図2と同一の構成部には同一符号を付して説明を省略する。実施の形態2のナビゲーション装置14は、実施の形態1のデータアクセス装置1を適用したナビゲーション装置であり、データアクセス装置1によって作成されたデータ管理データ10b及びデータアクセスプログラム10cが組み込まれる。
SWライブラリ10aには、ナビゲーション装置14における各種の機能を実現するプログラム要素が登録される。例えば、ルート探索用に関するオブジェクトは、ルート探索における様々な機能を実現するプログラム要素からなる階層構造を有している。
地図データベース(地図DB)10dは、地図データで構成したデータ集合体である。また、ナビゲーション装置14は、図2に示すハードウェア構成で実現される。ここで、SWライブラリ10a、データ管理データ10b、データアクセスプログラム10c及び地図DB10dは、外部記憶装置10に格納される。
ナビ機能実行部15は、ナビゲーションに関する各種の機能を実行する構成部であり、CPU8が、ナビゲーションに関するアプリケーションを実行することで具現化される。このとき、CPU8が、SWライブラリ10aの特定の機能のプログラム要素を実行することで、当該機能を実行する機能部15aとして動作する。機能部15aは、データアクセスプログラム10cを実行することで、データ管理データ10bを参照しながら、地図DB10dから必要なデータを取得する。
位置検出部16は、ナビゲーション装置14を搭載した車両の位置を検出する構成部であり、例えば、GPS信号や、車速センサ、ジャイロセンサ等のセンサ群の測定値とマップマッチングなどを用いて自車の現在位置を求める。
データ定義情報10eには、地図DB10dの地図データ構成が定義されており、データ定義情報入力部2によって記憶内容が読み出し可能な記憶装置に格納される。
次に動作について説明する。
ここでは、一例として、地図DB10dの地図図形データに対するデータ管理データの作成処理を示す。
図20は、図19の地図DBにおけるポリゴン及びポイントのデータ構成を規定したER(Entity Relationship)図であり、地図図形としてポリゴンとポイントのデータ構成が定義されている。図20に示すように、ポリゴンとポイントは、タイルに属しており、表示画面上の座標が設定されている。また、ポリゴンとポイントのデータは、パラメータnumPolygon,numPoint,numCoordに設定される値によって、データ数が変化するため、可変長データである。
図21は、図20の定義で構成される地図図形データを示す図であり、地図DB10dにおける地図図形のデータ集合体を示している。なお、図21のデータ構成は、例えば、図6に示したデータ集合体におけるデータ1〜4のうちの1つに相当する。
データ管理データ作成部4は、データ定義情報解析部3から入力したデータ定義情報の解析結果から、当該データ定義情報に定義された地図図形データに可変長データがあるか否かを判定する。上述したように、ポリゴンとポイントのデータは、可変長データであるので、データ管理データ作成部4は、地図DB10dからポリゴンとポイントの実データを読み込んで、可変長データのデータサイズを解析する。
この解析により、データ管理データ作成部4は、当該データにおける可変長のデータ項目(図21のパラメータnumPolygon,numPointの値、numCoordに設定されるポリゴン1,2及びポイント1,2の座標データ)及びそれらのデータ長を求めて、固定長のデータ項目(図21のタイル、ポリゴン1,2、ポイント1,2のID)及びそれらのデータ長を合わせた実データ構成を特定し、これに基づいて各項目へのオフセット値を設定したデータ管理データを作成する。
データ管理データ出力部6は、データ管理データ作成部4が作成したデータ管理データを入力すると、データ管理データ出力定義情報に定義されたデータ管理データを出力し、ナビゲーション装置14に組み込む。
図22は、ポリゴン図形に対するデータ管理データを示す図であり、図23は、ポイント図形に対するデータ管理データを示す図である。
例えば、データ管理データ出力定義情報として、地図描画を実行する際に必要なデータにポリゴンの座標(Coord)を定義することにより、データ管理データ出力部6が、データ管理データ作成部4が作成したデータ管理データからポリゴンの座標を抽出して、図22に示すデータ管理データを作成する。
同様に、データ管理データ出力定義情報として、ポイントの座標(Coord)を定義することで、データ管理データ出力部6が、データ管理データ作成部4が作成したデータ管理データからポイントの座標を抽出して、図23に示すデータ管理データを作成する。
図24は、ポリゴン図形及びポイント図形の双方を管理するデータ管理データを示す図である。データ管理データ出力部6は、データ管理データ出力定義情報において、例えば地図描画を実行する際に必要なデータとして、ポリゴン及びポイントの座標が定義されている場合、図24に示すように、ポリゴン及びポイントの座標データを同一のテーブルで管理するデータ管理データを作成する。このとき、データ管理データに図形種別カラムを設け、ポリゴンとポイントを識別する識別情報を設定してもよい。図24の例では、図形種別“1”がポリゴン図形を示しており、図形種別“2”がポイント図形を示している。
上述のように作成したデータ管理データ10b及びデータアクセスプログラム10cをナビゲーション装置14に組み込む。
ルート探索や地図表示等の機能を実行する際、機能部15aが、データアクセスプログラム10cを実行することで、データ管理データ10bのオフセット値を参照しながら、地図DB10dから必要な地図図形データを取得する。このようにするこで、効率的かつ高速に所望の地図データへアクセスすることができる。
また、上記実施の形態1と同様にデータ管理データ出力定義情報の内容を指定することにより、ルート探索や地図表示等のナビゲーション機能ごとのデータ管理データ10bを作成してもよい。この場合、データ管理データ10bには、ナビゲーション機能ごとに、その実行に必要なデータのアドレスあるいはオフセットが設定される。
このように、機能ごとにデータを分類管理することで、データのメンテナンスを容易に行うことができる。
さらに、ナビゲーション機能ごとのデータ管理データ10bの作成に合わせ、上記実施の形態1と同様にデータアクセスプログラム出力定義情報の内容を指定することにより、ルート探索や地図表示等のナビゲーション機能ごとのデータアクセスプログラム10cを作成してもよい。
この場合、ナビ機能実行部15の機能部15aが、データアクセスプログラム10cを実行することで、対応するナビゲーション機能のデータ管理データ10bを参照して地図DB10dへのアクセスが実行され、当該ナビゲーション機能に必要なデータが取得される。
図25は実施の形態2によるナビゲーション装置の他の構成を示すブロック図である。これまでの説明では、データ管理データ10bと地図DB10dを、別個のデータとして設ける場合を示したが、図25に示すナビゲーション装置14Aでは、データ管理データ10bを地図DB10dと一体化したデータとして備えている。
例えば、地図データのメッシュ単位にデータ管理データを設け、メッシュごとの処理に必要なデータを、当該メッシュに対応するデータ管理データを参照して、地図DB内での格納場所を特定することにより、別個のデータとした場合と比較して、さらに効率的かつ高速に所望の地図データへアクセスすることが可能である。
以上のように、この実施の形態2によれば、地図データの実データが格納された地図DB10dのデータ構成を示すデータ定義情報10eに基づいて地図DB10dにおける実データの格納位置が規定されたデータ管理データ10bと、データ定義情報10eに基づいて地図DB10dにおけるデータ構成が特定された実データへのアクセス機能を記述したデータアクセスプログラム10cと、データ管理データ10bを参照して実データの格納位置を特定し、データアクセスプログラム10cを実行して、地図DB10dの実データにアクセスする機能部15aとを備えたので、効率的かつ高速に所望の地図データへアクセスすることができる。
また、この実施の形態2によれば、データ管理データが、ナビゲーションの機能ごとに使用される実データの格納位置をそれぞれ規定したデータであるので、ナビゲーションの機能ごとに使用される地図データへ効率的かつ高速にアクセスできる。さらに、機能ごとに地図データが分類されることから、地図データのメンテナンスを容易に行うことができる。
さらに、この実施の形態2によれば、データアクセスプログラムが、ナビゲーションの機能ごとに使用される実データへのアクセス機能をそれぞれ記述したプログラムであるので、効率的かつ高速に機能ごとに対応した地図データへアクセスすることができる。
さらに、この実施の形態2によれば、図25に示すように、データ管理データを地図DB10dの一部に含まれるデータとしたので、別個のデータとした場合と比較してさらに効率的かつ高速に所望の地図データへアクセスすることができる。
実施の形態3.
図26は、この発明の実施の形態3によるナビゲーション装置の構成を示すブロック図である。図26において、図1、図2及び図19と同一の構成部には同一符号を付して説明を省略する。実施の形態3におけるナビゲーション装置14aは、上記実施の形態2のナビゲーション装置14の構成に、上記実施の形態1のデータアクセス装置1の構成である、データ定義情報入力部2、データ定義情報解析部3、データ管理データ作成部4、データアクセスプログラム作成部5、データ管理データ出力部6及びデータアクセスプログラム出力部7を備えている。
データ管理データ出力部6から出力されたデータ管理データは、図2に示した外部記憶装置10等にデータ管理データ10bとして保管され、データアクセスプログラム出力部7から出力されたデータアクセスプログラムも同様に、外部記憶装置10等にデータアクセスプログラム10cとして保管される。
ナビ機能実行部15(機能部15a)が、データ管理データ10bを参照して実データの格納位置を特定し、データアクセスプログラム10cを実行して地図DB10dにアクセスすることにより、ナビゲーションに関する処理に使用する実データを取得する。
以上のように、実施の形態3によれば、ナビゲーション装置14aが、データアクセス装置1の構成を備えるので、上記実施の形態2のように、データアクセス装置1によるデータ管理データ10b及びデータアクセスプログラム10cの組み込みを待つことなく、ナビゲーション装置14a自身が、データ管理データ10b及びデータアクセスプログラム10cを自動作成することができる。
実施の形態4.
この実施の形態4は、上記実施の形態2,3と同様にナビゲーション装置としての利用態様を示している。ナビゲーション装置では、例えば道路や建物といった地図を構成する地物が変更されると、これに応じて地図データベースを更新する必要がある。また、地図データベースの更新には、地図データの属性が追加されるようなデータ構造(データフォーマット)の変化を伴う場合がある。そこで、実施の形態4によるナビゲーション装置では、地図データベースに更新があると、更新対象の地物のデータを含む更新地図データベースのデータ構造を示すようにデータ定義情報を更新することで、地図データが更新されても効率的かつ高速なデータアクセスを可能としている。
図27は、この発明の実施の形態4によるナビゲーション装置の構成を示すブロック図である。図27において、図1、図2及び図19と同一の構成部には同一符号を付して説明を省略する。実施の形態4のナビゲーション装置14Bは、上記実施の形態3のナビゲーション装置14aの構成に、更新地図データベース(DB)10f、地図DB更新部15b及びデータ定義情報更新部17を備える。なお、ナビゲーション装置14Bは、図2に示すハードウェア構成で実現される。
更新地図DB10fは、変更された地物の地図データを含む地図データベースである。SWライブラリ10a、データ管理データ10b、データアクセスプログラム10c、地図DB10d、データ定義情報10e及び更新地図DB10fは、図2に示す外部記憶装置10に格納される。
また、CPU8が、SWライブラリ10aにおける地図DB更新機能のプログラム要素を実行することで、当該機能を実行する地図DB更新部15bとして動作する。
地図DB更新部15bは、更新後のデータ定義情報を用いて作成されたデータアクセスプログラム10cを実行し、更新後のデータ定義情報を用いて作成されたデータ管理データを参照して、地図DB10d及び更新地図DB10fから地図データを取得することにより、ナビゲーション処理において更新後の地図データ内容を反映させる構成部である。
データ定義情報更新部17は、既存の地図DB10dと更新地図DB10fとの変更箇所(更新対象の地物)の差分データを用いて、既存のデータ定義情報(地図DB10dのデータ定義情報)を更新する構成部である。
次に動作について説明する。
(1)データ定義情報の更新
図28は、実施の形態4のナビゲーション装置によるデータ定義情報の更新処理の流れを示すフローチャートである。
先ず、データ定義情報更新部17は、既存の地図DB10dの地図データを読み込み(ステップST21)、続いて更新地図DB10fの地図データを読み込む(ステップST22)。例えば、地図DB10d及び更新地図DB10fから位置が対応するタイル単位で、当該タイルに含まれる地図データを読み込む。
次に、データ定義情報更新部17は、地図DB10d及び更新地図DB10fから順次読み込んだ地図データを比較して、変更箇所(更新対象の地物)に対応する差分データを抽出する(ステップST23)。例えば、地図DB10dにおけるデータ項目Aのデータサイズが2bitであり、更新地図DB10fのデータ項目Aのデータサイズが4bitになっている場合のように、対応するデータ間のデータサイズの変化を差分データとして特定する。なお、変更がない場合であっても、データサイズ変化=0の差分データを抽出する。
データ定義情報更新部17は、地図DB10dの地図データと更新地図DB10fの地図データとの差分データを抽出すると、上記地図データに対応するデータ定義情報を読み込み(ステップST24)、上記差分データと上記データ定義情報とを比較して、当該データ定義情報における変更箇所を抽出する(ステップST25)。
ここで、データ定義情報更新部17は、データ定義情報に実質的な変更があるか否かを判定する(ステップST26)。ここで、データサイズ変化=0の差分データであって、当該データ定義情報に変更がない場合(ステップST26;NO)、データ定義情報更新部17は、当該地図データに対応するデータ定義情報の更新処理を終了する。
一方、データ定義情報に変更があれば(ステップST26;YES)、データ定義情報更新部17は、当該差分データを反映するようにデータ定義情報を更新する(ステップST27)。例えば、上述のように、更新地図DB10fのデータ項目Aのデータサイズが4bitになっている場合には、データ定義情報のデータ項目Aを、更新地図DB10fのデータ項目Aのデータサイズ4bitに変更する。
(2)データ管理データの更新
図29は、実施の形態4のナビゲーション装置によるデータ管理データの更新処理の流れを示すフローチャートである。
データ定義情報更新部17が、データ定義情報を更新する(ステップST30)。この処理は、上述した図28の処理に相当する。
続いて、データ定義情報入力部2が、更新されたデータ定義情報を入力する(ステップST31)。データ定義情報入力部2に取得されたデータ定義情報は、データ定義情報入力部2からデータ定義情報解析部3へ出力される。
データ定義情報解析部3では、データ定義情報入力部2から入力したデータ定義情報の内容を解析する(ステップST32)。このあと、データ管理データ出力部6は、データ管理データ出力定義情報を読み込む(ステップST33)。
次に、データ管理データ作成部4は、データ定義情報解析部3から入力したデータ定義情報の解析結果から、当該データ定義情報で構造が定義された地図データ中に可変長データがあるか否かを判定する(ステップST34)。地図データ中に可変長データがない場合(ステップST34;NO)、データ管理データ作成部4は、当該地図データにおける固定長のデータ項目及びそのデータ長から各項目へのオフセットを特定し、これを設定したデータ管理データを作成する。この後、ステップST35の処理へ移行する。
一方、データ中に可変長データがある場合(ステップST34;YES)、データ管理データ作成部4は、可変長データ部のデータサイズを確認するため、更新地図DB10fから当該地図データの実データを読み込み(ステップST36)、可変長データ部のデータサイズを解析する(ステップST37)。この解析により、データ管理データ作成部4は、当該地図データにおける可変長のデータ項目及びそのデータ長を求めて、固定長のデータ項目及びそのデータ長を合わせた実データ構成を特定し、これに基づいて各項目へのオフセット値を設定したデータ管理データを作成する。この後、ステップST35の処理へ移行する。
ステップST35において、データ管理データ出力部6は、データ管理データ作成部4が作成したデータ管理データ(更新地図DB10fに対応するデータ管理データ)を入力し、データ管理データ出力定義情報を参照して出力対象の定義内容に対応するデータ管理データを出力し記憶装置(図2の外部記憶装置10等)へ格納する。
(3)データアクセスプログラムの作成
更新地図DB10fにおける地図データが新たなデータ項目を含む場合には、この項目のデータを取得するためのデータアクセスプログラムが必要となる。
この場合においても、上記実施の形態1と同様に、データアクセスプログラム作成部5が、更新後のデータ定義情報の解析結果として得られた更新地図DB10fのデータ構成から、更新地図DB10fの地図データ(データ項目)を取得するためのデータアクセスプログラムを作成する。
この後、データアクセスプログラム出力部7が、データアクセスプログラム作成部5に作成されたデータアクセスプログラムを入力し、データアクセスプログラム出力定義情報を参照して、出力対象の定義内容に対応するデータアクセスプログラムを出力し記憶装置(図2の外部記憶装置10等)へ格納する。
(4)更新地図の反映
ルート探索や地図表示等の機能を実行する際に、ナビ機能実行部15の地図DB更新部15bが、更新後のデータ定義情報に基づき作成されたデータアクセスプログラム10cを実行することで、更新後のデータ定義情報に基づき作成されたデータ管理データ10bのオフセット値を参照して、更新地図DB10fから必要な地図図形データを取得する。
以上のように、この実施の形態4によれば、地図DB10dが更新地図10fとして更新されると、更新されたデータ構成が反映されるようにデータ定義情報10eを更新するデータ定義情報更新部17を備える。この構成を有することにより、更新地図DB10fに対応したデータ定義情報10eを自動作成することができる。
また、この実施の形態4によれば、データ定義情報更新部17が、既存の地図DB10dにおける実データと更新地図DB10fにおける実データとを比較して地図DB10dからの変更箇所を抽出し、当該変更箇所のデータ構成が反映されるようにデータ定義情報10eを更新する。このようにすることで、更新地図DB10fに対応したデータ定義情報10eを自動作成することができる。
さらに、この実施の形態4によれば、データ定義情報解析部3が、データ定義情報更新部17によってデータ定義情報が更新されると、更新後のデータ定義情報の内容を解析し、データ管理データ作成部4が、データ定義情報解析部3で更新後のデータ定義情報を解析して得られた更新地図DB10fのデータ構成から、更新地図DB10fにおける実データの格納位置を規定したデータ管理データ10bを作成し、データアクセスプログラム作成部5が、データ定義情報解析部3で更新後のデータ定義情報を解析して更新地図DB10fにおけるデータ構成が特定された実データへのアクセス機能を記述したデータアクセスプログラム10cを作成する。このように、更新地図DB10fに対応したデータ定義情報10eに更新されると、これに応じてデータ管理データ10b及びデータアクセスプログラム10cが自動的に更新されることから、地図DBが動的に更新されても、効率的かつ高速な地図データへのアクセスが可能である。
実施の形態5.
図30は、この発明の実施の形態5によるナビゲーション装置の構成を示すブロック図である。図30において、図1、図2、図19及び図27と同一の構成部には、同一符号を付して説明を省略する。実施の形態5のナビゲーション装置14Cは、上記実施の形態4におけるナビゲーション装置14Bの構成に更新情報データベース(DB)10gを備え、データ定義情報更新部17の代わりにデータ定義情報更新部17aを備える。なお、ナビゲーション装置14Cは、図2に示すハードウェア構成で実現される。
更新情報DB10gは、更新地図DB10fの地図データにおける更新内容を定義した更新定義情報を格納するデータベースである。SWライブラリ10a、データ管理データ10b、データアクセスプログラム10c、地図DB10d、データ定義情報10e、更新地図DB10f及び更新情報DB10gは、図2の外部記憶装置10に格納される。
また、データ定義情報更新部17aは、更新情報DB10gから読み出した更新定義情報を用いて、既存のデータ定義情報(地図DB10dのデータ定義情報)を更新する構成部である。
次に動作について説明する。
図31は、実施の形態5のナビゲーション装置によるデータ定義情報及びデータ管理データの更新処理の流れを示すフローチャートである。
先ず、データ定義情報更新部17aは、更新情報DB10gの更新定義情報を読み込み(ステップST40)、更新定義情報を解析する(ステップST41)。
次に、データ定義情報更新部17aは、当該更新定義情報で更新内容が定義された地図データに対応するデータ定義情報を読み込み、更新定義情報の解析結果を反映するようにデータ定義情報を更新する(ステップST42)。
図32は、更新定義情報の一例を示す図である。図32に示す更新定義情報では、対応する地図データにおける項目Cに続いてデータ長が8bitの項目Fのデータを挿入する更新内容が定義されている。このように、更新定義情報には、更新内容として、例えば、更新対象のデータ項目、そのデータ長、及び、当該データ項目の地図データ(既存の地図DB10dの地図データ)における挿入箇所等が定義される。
また、更新によってデータを削除する場合は、更新対象のデータ項目に削除対象の項目を設定し、データ長を0bitを記述する。さらに、地図データのトップ位置にデータを挿入する場合には、挿入箇所に“0”を指定する。
図33は、図32の更新定義情報に基づくデータ定義情報の更新処理の概要を示す図である。図32に示す更新定義情報は、上述したように、更新地図DB10fの対応する地図データが、地図DB10dの対応する地図データの項目Cに続いてデータ長が8bitの項目Fのデータを挿入する更新がなされていることを示している。
そこで、データ定義情報更新部17aは、上記地図データに対応する既存のデータ定義情報を読み出し、項目Cに続いてデータ長が8bitの項目Fのデータを挿入したデータ構成を示すデータ定義情報へ更新する。
この後、データ定義情報入力部2が、更新されたデータ定義情報を入力する(ステップST43)。データ定義情報入力部2に取得されたデータ定義情報は、データ定義情報入力部2からデータ定義情報解析部3へ出力される。
データ定義情報解析部3では、データ定義情報入力部2から入力したデータ定義情報の内容を解析する(ステップST44)。データ管理データ出力部6は、データ管理データ出力定義情報を読み込む(ステップST45)。
次に、データ管理データ作成部4は、データ定義情報解析部3から入力したデータ定義情報の解析結果から、当該データ定義情報で構造が定義された地図データ中に可変長データがあるか否かを判定する(ステップST46)。地図データ中に可変長データがない場合(ステップST46;NO)、データ管理データ作成部4は、当該地図データにおける固定長のデータ項目及びそのデータ長から各項目へのオフセットを特定し、これを設定したデータ管理データを作成する。この後、ステップST47の処理へ移行する。
一方、データ中に可変長データがある場合(ステップST46;YES)、データ管理データ作成部4は、可変長データ部のデータサイズを確認するため、更新地図DB10fから当該地図データの実データを読み込み(ステップST48)、可変長データ部のデータサイズを解析する(ステップST49)。この解析により、データ管理データ作成部4は、当該地図データにおける可変長のデータ項目及びそのデータ長を求めて、固定長のデータ項目及びそのデータ長を合わせた実データ構成を特定し、これに基づいて各項目へのオフセット値を設定したデータ管理データを作成する。この後、ステップST47の処理へ移行する。
ステップST47において、データ管理データ出力部6は、データ管理データ作成部4が作成したデータ管理データ(更新地図DB10fに対応するデータ管理データ)を入力し、データ管理データ出力定義情報を参照して出力対象の定義内容に対応するデータ管理データを出力し記憶装置(図2の外部記憶装置10等)へ格納する。
データアクセスプログラム作成部5及びデータアクセスプログラム出力部7による更新後のデータ定義情報に基づくデータアクセスプログラムの作成処理、及び、地図DB更新部15bによる更新地図の反映処理については、上記実施の形態3と同様である。
以上のように、この実施の形態5によれば、データ定義情報更新部17aが、更新地図DB10fにおける地図DB10dからの変更内容を示す更新定義情報に基づいて、更新されたデータ構成が反映されるようにデータ定義情報10eを更新する。このようにすることで、更新地図DB10fに対応したデータ定義情報10eを自動作成することができる。
また、この実施の形態5によれば、データ定義情報解析部3が、データ定義情報更新部17aによってデータ定義情報が更新されると、更新後のデータ定義情報の内容を解析し、データ管理データ作成部4が、データ定義情報解析部3で更新後のデータ定義情報を解析して得られた更新地図DB10fのデータ構成から、更新地図DB10fにおける実データの格納位置を規定したデータ管理データ10bを作成し、データアクセスプログラム作成部5が、データ定義情報解析部3で更新後のデータ定義情報を解析して更新地図DB10fにおけるデータ構成が特定された実データへのアクセス機能を記述したデータアクセスプログラム10cを作成する。このように、更新地図DB10fに対応したデータ定義情報10eに更新されると、これに応じてデータ管理データ10b及びデータアクセスプログラム10cが自動的に更新されることから、地図DBが動的に更新されても、効率的かつ高速な地図データへのアクセスが可能である。
実施の形態6.
図34は、この発明の実施の形態6によるナビゲーション装置の構成を示すブロック図である。図34において、実施の形態6のナビゲーション装置14Dは、上記実施の形態4の構成から、データ定義情報入力部2、データ定義情報解析部3、データ管理データ作成部4、データアクセスプログラム作成部5、データ管理データ出力部6、データアクセスプログラム出力部7及びデータ定義情報更新部17を、データアクセス装置1Aとして分離したものである。この構成において、ナビゲーション装置14Dには、データアクセス装置1Aによって作成あるいは更新されたデータ管理データ10b及びデータアクセスプログラム10cが組み込まれる。
また、図35は、実施の形態6によるナビゲーション装置の他の構成を示すブロック図である。図35において、ナビゲーション装置14Eは、上記実施の形態5の構成から、データ定義情報入力部2、データ定義情報解析部3、データ管理データ作成部4、データアクセスプログラム作成部5、データ管理データ出力部6、データアクセスプログラム出力部7及びデータ定義情報更新部17aを、データアクセス装置1Bとして分離したものである。この構成において、ナビゲーション装置14Eには、データアクセス装置1Bによって作成あるいは更新されたデータ管理データ10b及びデータアクセスプログラム10cが組み込まれる。
以上のように、この実施の形態6によれば、図34又は図35の構成とすることで、上記実施の形態3及び上記実施の形態4と同様の効果を得ることができる。
なお、上記実施の形態3〜6において、データ管理データと地図DBを、別個のデータとして設けた場合を示したが、図25に示すようにデータ管理データを地図DBと一体化したデータとして設けても構わない。
例えば、地図データのメッシュ単位にデータ管理データを設け、メッシュごとの処理に必要なデータを、当該メッシュに対応するデータ管理データを参照して、地図DB内での格納場所を特定することにより、別個のデータとした場合と比較して、さらに効率的かつ高速に所望の地図データへアクセスすることが可能である。