(57)【要約】  地図ＤＢ１０ｄのデータ構成を示すデータ定義情報から実データの格納位置を規定したデータ管理データと、データ定義情報に基づいてデータ構成が特定された実データへのアクセス機能を記述したデータアクセスプログラムと、データ管理データを参照して実データの格納位置を特定し、データアクセスプログラムを実行して、地図ＤＢ１０ｄの実データにアクセスする機能部１５ａとを備える。
2011128948.tif 000002
【特許請求の範囲】
【請求項１】
地図データの実データが格納されたデータ群から取得した前記地図データの実データを用いて、ナビゲーションに関する処理を実行するナビゲーション装置において、
前記データ群のデータ構成を示すデータ定義情報に基づいて当該データ群における前記実データの格納位置が規定されたデータ管理データと、
前記データ定義情報に基づいて前記データ群におけるデータ構成が特定された前記実データへのアクセス機能を記述したデータアクセスプログラムと、
前記データ管理データを参照して前記実データの格納位置を特定し、前記データアクセスプログラムを実行して、前記データ群の前記実データにアクセスする機能部とを備えたことを特徴とするナビゲーション装置。
【請求項２】
前記データ管理データは、ナビゲーションの機能ごとに使用される前記実データの格納位置をそれぞれ規定したデータであることを特徴とする請求項１記載のナビゲーション装置。
【請求項３】
前記データアクセスプログラムは、ナビゲーションの機能ごとに使用される前記実データへのアクセス機能をそれぞれ記述したプログラムであることを特徴とする請求項２記載のナビゲーション装置。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、地図データベースにアクセスして所望の地図データを取得しながら、ナビゲーション処理を実行するナビゲーション装置に関するものである。
【背景技術】
【０００２】
例えば、特許文献１には、サービス機能を実行するサービス機能部のアドレスと、サービス機能実行部のポインタとをテーブルで管理しており、データアクセス又は特定のサービス機能を呼び出す際、当該テーブルを参照してポインタに対応するアドレスを取得し、当該アドレスに基づいてサービス機能実行部を起動し、サービス機能を実行するサービス機能提供装置が開示されている。当該装置は、上記のテーブルを参照することによって、共有ライブラリから、親プログラムにリンクされている機能をエントリ名で直接呼び出すことができる。【０００３】
しかしながら、特許文献１では、実データにアクセスするデータアクセスプログラムと上述のアドレスやポインタの管理データとの関連が言及されていない。一般的に、データ仕様が変更された場合に、これに応じてデータアクセスプログラムの改修が必要であり、データの格納位置を示すアドレス又はオフセットの変更のみを管理しても、データアクセスプログラムが対応していなければ、効率的なデータアクセスはできない。【０００４】
特に、ナビゲーション装置で用いる地図データは、一般的に、容量が可変長で、データ量が多く、更新も頻繁にあり、さらに、データフォーマット自体が変更されることも多々ある。この場合、変更後のデータ仕様でのデータアドレス又はオフセット、これに基づき実データにアクセスするデータアクセスプログラムが必要となる。【０００５】
この発明は、上記のような課題を解決するためになされたもので、地図データベースや地図データのファイルシステムに格納された所望の地図データに対して効率的かつ高速にアクセスすることができるナビゲーション装置を得ることを目的とする。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特許第３０２２８３７号公報
【発明の概要】
【０００７】
この発明に係るナビゲーション装置は、地図データの実データが格納されたデータ群のデータ構成を示すデータ定義情報に基づいて、当該データ群における実データの格納位置が規定されたデータ管理データと、データ定義情報に基づいてデータ群におけるデータ構成が特定された実データへのアクセス機能を記述したデータアクセスプログラムと、データ管理データを参照して実データの格納位置を特定し、データアクセスプログラムを実行して、データ群の実データにアクセスする機能部とを備えるものである。
【０００８】
この発明によれば、地図データの実データが格納されたデータ群のデータ構成を示すデータ定義情報に基づいて、当該データ群における実データの格納位置が規定されたデータ管理データと、データ定義情報に基づいてデータ群におけるデータ構成が特定された実データへのアクセス機能を記述したデータアクセスプログラムとを有し、データ管理データを参照して実データの格納位置を特定し、データアクセスプログラムを実行して、データ群の実データにアクセスする。このように構成することで、効率的かつ高速に所望の地図データにアクセスすることができるという効果がある。
【図面の簡単な説明】
【０００９】
【図１】この発明の実施の形態１によるデータアクセス装置の構成を示すブロック図である。
【図２】この発明によるデータアクセス装置が適用される情報処理装置のハードウェア構成を示すブロック図である。
【図３】データベース等を構成するデータ集合体の概要を示す図である。
【図４】実施の形態１のデータアクセス装置による動作の流れを示すフローチャートである。
【図５】データ定義情報の一例を示す図である。
【図６】図５のデータ定義情報で各データの構造が特定されたデータ集合体の概要を示す図である。
【図７】データ管理データ作成部によるデータ管理データの作成処理の流れを示すフローチャートである。
【図８】データ集合体の実データ構成の一例を示す図である。
【図９】データ集合体の実データ構成の他の表現例を示す図である。
【図１０】データ集合体の実データ構成の他の表現例を示す図である。
【図１１】データ管理データの一例を示す図である。
【図１２】Ａ機能を実行する際に必要なデータ項目を示す図である。
【図１３】データ管理データ出力定義情報の一例を示す図である。
【図１４】データ管理データの一例を示す図である。
【図１５】機能ごとに作成されたデータ管理データの利用形態の概要を示す図である。
【図１６】データアクセスプログラムの一例を示す図である。
【図１７】データアクセスプログラム出力定義情報の一例を示す図である。
【図１８】機能ごとに作成されたデータ管理データ及びデータアクセスプログラムの利用形態の概要を示す図である。
【図１９】この発明の実施の形態２によるナビゲーション装置の構成を示すブロック図である。
【図２０】図１９の地図ＤＢにおけるポリゴン及びポイントのデータ構成を規定したＥＲ図である。
【図２１】図２０の定義で構成される地図図形データを示す図である。
【図２２】ポリゴン図形に対するデータ管理データを示す図である。
【図２３】ポイント図形に対するデータ管理データを示す図である。
【図２４】ポリゴン図形及びポイント図形の双方を管理するデータ管理データを示す図である。
【図２５】実施の形態２によるナビゲーション装置の他の構成を示すブロック図である。
【図２６】この発明の実施の形態３によるナビゲーション装置の構成を示すブロック図である。
【図２７】この発明の実施の形態４によるナビゲーション装置の構成を示すブロック図である。
【図２８】実施の形態４のナビゲーション装置によるデータ定義情報の更新処理の流れを示すフローチャートである。
【図２９】実施の形態４のナビゲーション装置によるデータ管理データの更新処理の流れを示すフローチャートである。
【図３０】この発明の実施の形態５によるナビゲーション装置の他の構成を示すブロック図である。
【図３１】実施の形態５のナビゲーション装置によるデータ定義情報及びデータ管理データの更新処理の流れを示すフローチャートである。
【図３２】更新定義情報の一例を示す図である。
【図３３】図３２の更新定義情報に基づくデータ定義情報の更新処理の概要を示す図である。
【図３４】この発明の実施の形態６によるナビゲーション装置の構成を示すブロック図である。
【図３５】実施の形態６によるナビゲーション装置の他の構成を示すブロック図である。
【発明を実施するための形態】
【００１０】
以下、この発明をより詳細に説明するために、この発明を実施するための形態について、添付の図面に従って説明する。
実施の形態１．
図１は、この発明の実施の形態１によるデータアクセス装置の構成を示すブロック図である。図１において、実施の形態１におけるデータアクセス装置１は、データ管理データ及びデータアクセスプログラムを自動作成する装置である。
データ管理データとは、ある目的を果たすためのシステムによって使用されるデータの集合体（データベース又はファイルシステム）（データ群）におけるデータの格納場所を示すアドレス又はデータの先頭若しくはデータの先頭から特定の構成要素（データ項目）までの距離を示すオフセット（データ群における格納位置）が設定されたデータである。データアクセスプログラムとは、データ管理データを参照して、データ集合体の実データにアクセスするプログラムである。
【００１１】
また、データアクセス装置１は、構成として、データ定義情報入力部２、データ定義情報解析部３、データ管理データ作成部４、データアクセスプログラム作成部５、データ管理データ出力部６、及びデータアクセスプログラム出力部７を備える。
データ定義情報入力部２は、データ定義情報を入力する構成部であり、例えば外部記憶装置からデータ定義情報を読み込む。データ定義情報解析部３は、データ定義情報を解析する構成部である。データ定義情報は、アクセス対象のデータ集合体におけるデータの構成を定義した情報である。例えば、データを構成するデータ項目及びそのデータ長が定義される。
【００１２】
データ管理データ作成部４は、データ定義情報解析部３の解析結果に基づいて、データ管理データを作成する構成部である。また、データアクセスプログラム作成部５は、データ定義情報解析部３の解析結果に基づいて、データアクセスプログラムを作成する構成部である。データ管理データ出力部６は、データ管理データ出力定義情報を参照しながら、データ管理データ作成部４に作成されたデータ管理データを基に、出力対象のデータ管理データを作成して出力する構成部である。ここで、データ管理データ出力定義情報とは、出力対象のデータ管理データの出力形式及び出力対象のデータ項目を示す情報である。
【００１３】
データアクセスプログラム出力部７は、データアクセスプログラム出力定義情報を参照しながら、データアクセスプログラム作成部５に作成されたデータアクセスプログラムを基に、出力対象のデータアクセスプログラムを作成して出力する構成部である。ここで、データアクセスプログラム出力定義情報とは、出力対象のデータアクセスプログラムの、出力言語、出力タイプ、命名規則等を示す情報である。
【００１４】
図２は、この発明によるデータアクセス装置が適用される情報処理装置のハードウェア構成を示すブロック図である。この情報処理装置としては、例えば、カーナビゲーション装置や、携帯電話、ＰＤＡ（Personal Digital Assistant）などの移動体情報端末が挙げられる。図２において、外部記憶装置１０には、この発明の趣旨に合致したデータアクセス用処理プログラム、この情報処理装置で実行されるカーナビゲーション等の処理を実現するためのアプリケーションソフトウェア、当該処理における各種の機能部が実装されたソフトウェアライブラリ、上記のアプリケーションソフトウェアによる処理で利用されるデータ（例えば、地図データ）が格納される。
なお、外部記憶装置１０としては、ハードディスク装置（ＨＤＤ）、ＣＤやＤＶＤなどの記憶媒体及びそのドライブ装置、ＵＳＢ（Universal Serial Bus）メモリなどが挙げられる。
【００１５】
上記データアクセス用処理プログラムや、上記アプリケーションソフトウェアのプログラム、ソフトウェアライブラリは、外部記憶装置１０からメモリ９上に展開され、ＣＰＵ８によって実行される。ＣＰＵ８が、上記データアクセス用処理プログラムを実行することで、図１で示したデータ定義情報入力部２、データ定義情報解析部３、データ管理データ作成部４、データアクセスプログラム作成部５、データ管理データ出力部６、及びデータアクセスプログラム出力部７が、ハードウェアとソフトウェアが協働した具体的な手段として実現される。
【００１６】
ＣＰＵ８による演算結果は、バスを介して表示装置１１へ出力されて画面表示される。表示装置１１は、例えば、カーナビゲーションにおける地図表示などを実行する。この表示装置１１としては、液晶ディスプレイやプラズマディスプレイが挙げられる。
通信装置１２は、装置外部と通信を行う装置であり、ナビゲーション装置の場合には、ＧＰＳ（Global Positioning System）電波やＦＭ電波を受信する。
入力装置１３は、装置外部から操作入力するための装置であり、キーボードや操作スイッチ、表示装置１１と組み合わされたタッチパネル等で実現される。ナビゲーション装置の場合、ルート探索の条件は、この入力装置１３を用いて入力される。
【００１７】
なお、図２では、上記データアクセス用処理プログラム、アプリケーションソフトウェア、ソフトウェアライブラリ、上記アプリケーションソフトウェアによる処理で利用されるデータが、外部記憶装置１０に全て格納される場合を示したが、これらソフトウェアのそれぞれ又はこれらの少なくとも１つが、ＣＰＵ８によって記憶内容が読み取り可能な別個の記憶装置に記憶されても構わない。
【００１８】
図３は、データベース等を構成するデータ集合体の概要を示す図であり、データを表現した矩形の横方向の長さがデータ長を示している。図３に示すように、本発明で取り扱うデータ１，２，３，・・・は、データサイズが予め固定される固定長データ、及び状況に応じてデータサイズが変化する可変長データの２種類から構成される。また、固定長データ及び可変長データは、データフォーマットに応じた各項目のデータで構成されている。このようなデータ集合体（データ群）がデータアクセス対象のデータベース又はファイルシステムに相当する。
【００１９】
次に動作について説明する。
図４は、実施の形態１のデータアクセス装置による動作の流れを示すフローチャートである。以降では、データベース又はファイルシステムなどのデータ集合体におけるデータの格納場所を示す情報を定義したデータ定義情報から、各データの格納位置（オフセット又はアドレス）を示すデータ管理データと、データ管理データを参照してデータ集合体の実データにアクセスするデータアクセスプログラムを自動作成する処理について述べる。
【００２０】
先ず、データ定義情報入力部２は、外部記憶装置等にアクセスして、データ定義情報を入力する（ステップＳＴ１）。データ定義情報入力部２に取得されたデータ定義情報は、データ定義情報入力部２からデータ定義情報解析部３へ出力される。
データ定義情報解析部３では、データ定義情報入力部２から入力したデータ定義情報の内容を解析する（ステップＳＴ２）。
【００２１】
図５は、データ定義情報の一例を示す図である。データ定義情報は、図３に示すデータ集合体を構成する個々のデータに対応して設定され、図５に示すように、各データが含む各項目のデータ及びそのデータ長が規定される。図５に示すデータ定義情報で特定されるデータは、Ａ〜Ｅの５項目のデータを含み、項目Ａ〜Ｄのデータは固定長データであり、項目Ｅのデータは可変長データである。
【００２２】
図６は、図５のデータ定義情報で各データの構造が特定されたデータ集合体の概要を示す図であり、データを表現した矩形の横方向の長さがデータ長を示している。図６に示すデータ集合体には、データ１，２，３，４，・・・が、この順で格納されており、各データ１，２，３，４，・・・についてデータ定義情報が与えられる。データ定義情報解析部３が、各データ１，２，３，４，・・・のデータ定義情報の内容を解析することにより、図６に示すように、各データ１，２，３，４，・・・における固定長の項目Ａ〜Ｄのデータ及びそのデータ長並びに可変長の項目Ｅのデータの有無が特定される。
【００２３】
ステップＳＴ３において、データ管理データ作成部４は、データ定義情報解析部３の解析結果に基づいて、データ管理データを作成する。ここでは、データ定義情報を解析して得られた各データの固定長のデータ項目及びそのデータ長並びに可変長のデータ項目の有無から当該データ集合体の実データ構成を特定し、これに基づいて、各データの先頭へのオフセットを規定したデータ管理データを作成する場合について述べる。
【００２４】
図７は、データ管理データ作成部によるデータ管理データの作成処理の流れを示すフローチャートであり、図４のステップＳＴ３の詳細を示している。
先ず、データ管理データ作成部４は、データ定義情報解析部３の解析結果を入力する（ステップＳＴ１０）。続いて、データ管理データ作成部４は、入力したデータ定義情報の解析結果から、当該データ定義情報で構造が定義されたデータ中に可変長データがあるか否かを判定する（ステップＳＴ１１）。データ中に可変長データがない場合（ステップＳＴ１１；ＮＯ）、データ管理データ作成部４は、当該データにおける固定長のデータ項目及びそのデータ長から各項目へのオフセットを特定し、これを設定したデータ管理データを作成する（ステップＳＴ１２）。
【００２５】
一方、データ中に可変長データがある場合（ステップＳＴ１１；ＹＥＳ）、データ管理データ作成部４は、可変長データ部のデータサイズを確認するために、データ集合体から当該データの実データを読み込み（ステップＳＴ１３）、可変長データ部のデータサイズを解析する（ステップＳＴ１４）。この解析により、データ管理データ作成部４は、当該データにおける可変長のデータ項目及びそのデータ長を求めて、固定長のデータ項目及びそのデータ長を合わせた実データ構成を特定し、これに基づいて各項目へのオフセット値を設定したデータ管理データを作成する（ステップＳＴ１２）。
【００２６】
図８は、データ集合体の実データ構成の一例を示す図であり、各データが可変長データを含む図６に示したデータ集合体の実データ構成を示している。データ管理データ作成部４は、実データを解析して求めた可変長データ部のデータサイズと、固定長データ部の各項目及びそのデータ長とを合わせて考慮することにより、図８に示すような実データ構成を特定する。
【００２７】
図８の例では、データ番号１，２，３，４に対応するデータ１，２，３，４の実データ構成として、各データ１，２，３，４，・・・の先頭へアクセスするためのオフセット、当該データ全体のデータサイズ、固定長データ部の固定長（ｂｉｔ）及び可変長データ部の可変長（ｂｉｔ）が設定されている。なお、図８に示すオフセット値では、先頭からのデータ位置を絶対位置で示しているが、１つ前のデータの位置からの差分（相対位置）で表現しても構わない。
【００２８】
図９は、データ集合体の実データ構成の他の表現例を示す図であり、図８の実データ構成に対して各項目へのオフセット値を追加している。図９に示すように、データ１，２，３，４の実データ構成として各項目Ａ〜Ｅへのオフセットを設定する。この実データ構成に基づいてデータ管理データを作成することで、データ１，２，３，４のデータ項目へのアクセスを効率的に行うことができる。例えば、データ番号３のデータにおける項目Ｃのへのアクセスを容易に指定可能である。
【００２９】
図１０は、データ集合体の実データ構成の他の表現例を示す図であり、図９の実データ構成に対して各項目データへのオフセットを数式で表した場合を示している。データ定義情報の解析結果から固定長データ部のデータサイズを特定し、実データ解析で可変長データ部のデータサイズを特定することにより、データ番号ｎを変数とした数式で各項目へのオフセットを表すことができる。
【００３０】
図１１は、データ管理データの一例を示す図である。図１１に示すように、データ管理データは、データ集合体のデータごとに作成され、対応するデータにおける各項目Ａ〜Ｅへのオフセット値及びデータサイズが設定される。
【００３１】
図４の説明に戻る。
データ管理データ出力部６は、データ管理データ作成部４が作成したデータ管理データを入力すると、データ管理データ出力定義情報を参照して出力対象の定義内容に対応するデータ管理データを出力する（ステップＳＴ４）。
例えば、図１１に示した全ての項目Ａ〜Ｅのデータが必要な機能であれば、データ管理データ出力定義情報に出力対象項目として項目Ａ〜Ｅを定義しておくことにより、図１１に示すデータ管理データが出力される。
【００３２】
また、機能ごとに処理で使用されるデータ項目が異なる場合がある。
図１２は、Ａ機能を実行する際に必要なデータ項目を示す図であり、Ａ機能を実行する際に必要なデータ項目が、図６に示すデータ集合体における各データ１〜４の項目Ａ，Ｃ，Ｅのデータであることを示している。この場合、図６に示すデータ集合体のデータ位置を示すデータ管理データのうち、項目Ａ，Ｃ，Ｅへのアクセスに必要なデータのみが設定されたデータ管理データを出力すれば、項目Ａ，Ｃ，Ｅのデータへ効率的にアクセスすることができる。そこで、本発明では、データ管理データ出力定義情報を用いて、機能ごとに必要なデータのみにアクセスするデータ管理データを規定する。
【００３３】
図１３は、データ管理データ出力定義情報の一例を示す図である。ここで、データ管理データ出力定義情報には、出力対象のデータ管理データを定義する情報として、出力形式及び出力項目が機能ごとに定義される。図１３に示す例では、Ａ機能を実行する際に必要なデータである、図６に示すデータ集合体の項目Ａ，Ｃ，Ｅのデータが出力対象項目１，２，３として設定されている。また、Ｂ機能を実行する際に必要なデータとして、図６に示すデータ集合体の項目Ａ，Ｂ，Ｄのデータが出力対象項目１，２，３となっている。
【００３４】
データ管理データ出力定義情報は、ＸＭＬ（eXtensible Markup Language）形式、又はテキスト形式で記述できる。また、データ管理データ出力定義情報は、データ管理データ出力部６によって記憶内容の読み出しが可能なメモリに予め格納しておく。例えば、データアクセス装置１として機能するコンピュータに内蔵されるメモリを用いる。なお、入力装置１３を用いた外部からの操作によって、データ管理データ出力定義情報を追加又は更新できるように構成してもよい。
【００３５】
図１４は、データ管理データの一例を示す図であり、Ａ機能を実行する際に必要なデータへのオフセットを設定したデータ管理データを示している。データ管理データ出力部６は、図１３に示すデータ管理データ出力定義情報を参照し、Ａ機能に対応するデータ管理データとして、図１１に示す各項目Ａ〜Ｅへのオフセットが設定されたデータ管理データのうち、Ａ機能を実行する際に必要なデータ項目である項目Ａ，Ｃ，Ｅへのオフセットを抽出し、図１４に示すような項目Ａ，Ｃ，Ｅへのアクセスに必要なデータのみを設定したデータ管理データを作成する。
【００３６】
また、データ管理データは、データ管理データ出力部６によって、例えば、図２の外部記憶装置１０へ出力され、保管される。データ管理データを利用する際は、ＣＰＵ８が、外部記憶装置１０からメモリ９上に展開して、その内容が参照される。
【００３７】
図１５は、機能ごとに作成されたデータ管理データの利用形態の概要を示す図である。カーナビゲーション装置等のシステム（図２に示す情報処理装置）は、各種機能（ルート探索や地図表示等）を実現する様々なプログラム要素が登録されたソフトウェアライブラリ（以下、ＳＷライブラリと記載する）を使用して、上記各種の機能を実行する。
【００３８】
図１５に示すように、上記システムにおけるＳＷライブラリ１０ａに、Ａ機能、Ｂ機能及びＣ機能のプログラム要素が実装されている場合を例に挙げる。この場合、上述のように、機能ごとのデータ管理データ（Ａ機能に必要なデータ管理データ、Ｂ機能に必要なデータ管理データ、Ｃ機能に必要なデータ管理データ）１０ｂを作成して、データアクセスプログラム１０ｃとともに、当該システムに組み込む。なお、プログラム要素とは、そのプログラムで使用される関数及びその属性、これらを分類するクラス、パッケージ、メソッド等である。
【００３９】
当該システムのＣＰＵ８（図２参照）が、例えば、Ａ機能に関するアプリケーションを実行した場合、ＳＷライブラリ１０ａのＡ機能のプログラム要素が実行され、Ａ機能部として動作する。このとき、Ａ機能部が、データアクセスプログラム１０ｃを実行し、Ａ機能に必要なデータ管理データを参照して格納位置を特定することで、データ集合体から、Ａ機能の実行に必要なデータが取得される。このようにすることで、効率的に所望のデータへアクセスすることができる。
【００４０】
図４の説明に戻る。
データアクセスプログラム作成部５は、データ定義情報解析部３からデータ定義情報の解析結果を入力し、この解析結果に基づいてデータアクセスプログラムを作成する（ステップＳＴ５）。ここで、データ定義情報の解析結果から得られる、アクセス対象のデータ集合体及びそのデータ構成を示す情報を用いて、当該データ集合体にデータアクセスするデータアクセスプログラムが作成される。
続いて、データアクセスプログラム出力部７は、データアクセスプログラム作成部５が作成したデータアクセスプログラムを入力すると、データアクセスプログラム出力定義情報を参照して、出力対象の定義内容に対応するデータアクセスプログラムを出力する（ステップＳＴ６）。
また、データアクセスプログラムは、データアクセスプログラム出力部７によって、例えば、図２の外部記憶装置１０へ出力され、保管される。データアクセスプログラムを実行する際は、ＣＰＵ８が外部記憶装置１０からメモリ９上に展開して実行される。
【００４１】
図１６は、データアクセスプログラムの一例を示す図であり、データ集合体から項目Ａのデータを取得するデータアクセスプログラムを示している。図１６に示す例では、１行目にアクセス対象のデータ集合体とその対象データＩＤ（データ番号ｉｄ）が設定され、２行目にｉｄ番目のデータの項目Ａへのオフセットが設定され、３行目には項目Ａのデータ長が設定される。そして、４行目にはｉｄ番目のデータにおける項目Ａのデータを取得することが記述されている。
【００４２】
データアクセスプログラム作成部５は、データ定義情報の解析結果として得られたアクセス対象のデータ集合体及びそのデータ構成から、図１６に示すような当該アクセス対象のデータ集合体における各データ（データ項目）を取得するためのデータアクセスプログラムを作成する。例えば、対象データＩＤ（データ番号ｉｄ）、固定長のデータ項目及びそのデータ長等については、データ定義情報の解析結果から取得された値が設定される。一方、可変長のデータ項目のデータ長やオフセットについては、データアクセスプログラムの実行時に、データ管理データを参照して設定される。
【００４３】
図１７は、データアクセスプログラム出力定義情報の一例を示す図である。図１７に示すように、データアクセスプログラム出力定義情報には、出力言語、出力タイプ、命名規則等が定義される。例えば、出力言語を「Ｊａｖａ」（登録商標；図中の記載も同様）とすると、Ｊａｖａで記述されたプログラムが出力対象となり、出力タイプを「インタフェースのみ出力」とすると、空実装のプログラムが出力される。また、命名規則を「自動」とすると、データアクセスプログラムのクラスや関数が自動的に命名される。これらの項目は、仕様によって変更可能である。なお、本情報は、ＸＭＬ形式やテキスト形式で記述することができる。
【００４４】
また、データアクセスプログラム出力定義情報は、データアクセスプログラム出力部７によって記憶内容の読み出しが可能なメモリに予め格納しておく。例えば、データアクセス装置１として機能するコンピュータに内蔵されるメモリを用いる。なお、入力装置１３を用いた外部からの操作によって、データアクセスプログラム出力定義情報を追加又は更新できるように構成してもよい。
【００４５】
図１８は、機能ごとに作成されたデータ管理データ及びデータアクセスプログラムの利用形態の概要を示す図である。図１８に示すように、ＳＷライブラリ１０ａに、Ａ機能、Ｂ機能及びＣ機能のプログラム要素が実装されており、機能ごとのデータ管理データ（Ａ機能に必要なデータ管理データ、Ｂ機能に必要なデータ管理データ、Ｃ機能に必要なデータ管理データ）１０ｂが、システムに組み込まれている場合を例に挙げる。
この場合、データアクセスプログラム出力部７が、データアクセスプログラム出力定義情報を参照して、データアクセスプログラム作成部５で作成されたデータアクセスプログラムを基に、機能ごとのデータアクセスプログラム（Ａアクセスプログラム、Ｂアクセスプログラム、Ｃアクセスプログラム）１０ｃを作成して、上記システムに組み込む。
【００４６】
当該システムのＣＰＵ８（図２参照）が、例えば、Ａ機能に関するアプリケーションを実行した場合、ＳＷライブラリ１０ａのＡ機能のプログラム要素が実行されて、Ａ機能部として動作する。このとき、Ａ機能部が、Ａ機能に対応するＡアクセスプログラムを実行すると、Ａ機能に必要なデータ管理データを参照して格納位置を特定することで、データ集合体から必要なデータが取得される。このように、機能ごとにデータ管理データ及びデータアクセスプログラムを使い分けることで、効率的かつ高速に所望のデータへアクセスすることができる。
【００４７】
以上のように、この実施の形態１によれば、ナビゲーション装置等の情報処理装置が、データ群（データ集合体）のデータ構成を示すデータ定義情報に基づいて当該データ群における実データの格納位置が規定されたデータ管理データと、データ定義情報に基づいてデータ構成が特定された実データへのアクセス機能を記述したデータアクセスプログラムとを備え、データ管理データを参照して実データの格納位置を特定し、データアクセスプログラムを実行して、データ群の実データにアクセスする。このようにすることで、効率的かつ高速に所望のデータにアクセスすることができる。
【００４８】
また、この実施の形態１によれば、実データを格納したデータ群のデータ構成を示すデータ定義情報を入力するデータ定義情報入力部２と、データ定義情報入力部２で入力されたデータ定義情報の内容を解析するデータ定義情報解析部３と、データ定義情報解析部３でデータ定義情報を解析して得られたデータ群のデータ構成から、当該データ群における実データの格納位置を規定したデータ管理データを作成するデータ管理データ作成部４と、データ定義情報解析部３でデータ定義情報を解析してデータ群におけるデータ構成が特定された実データへのアクセス機能を記述したデータアクセスプログラムを作成するデータアクセスプログラム作成部５と、データ管理データの出力対象内容が定義されたデータ管理データ出力定義情報を参照して、データ管理データ作成部４で作成されたデータ管理データから、出力対象内容を満たすデータ管理データを出力するデータ管理データ出力部６と、データアクセスプログラムの出力対象内容が定義されたデータアクセスプログラム出力定義情報を参照して、データアクセスプログラム作成部５で作成されたデータアクセスプログラムから、出力対象内容を満たすデータアクセスプログラムを出力するデータアクセスプログラム出力部７とを備える。このように構成することで、効率的、かつ高速に所望のデータにアクセスする際に使用されるデータ管理データ及びデータアクセスプログラムを自動作成することが可能である。
【００４９】
実施の形態２．
図１９は、この発明の実施の形態２によるナビゲーション装置の構成を示すブロック図である。図１９において、図１及び図２と同一の構成部には同一符号を付して説明を省略する。実施の形態２のナビゲーション装置１４は、実施の形態１のデータアクセス装置１を適用したナビゲーション装置であり、データアクセス装置１によって作成されたデータ管理データ１０ｂ及びデータアクセスプログラム１０ｃが組み込まれる。
【００５０】
ＳＷライブラリ１０ａには、ナビゲーション装置１４における各種の機能を実現するプログラム要素が登録される。例えば、ルート探索用に関するオブジェクトは、ルート探索における様々な機能を実現するプログラム要素からなる階層構造を有している。
地図データベース（地図ＤＢ）１０ｄは、地図データで構成したデータ集合体である。また、ナビゲーション装置１４は、図２に示すハードウェア構成で実現される。ここで、ＳＷライブラリ１０ａ、データ管理データ１０ｂ、データアクセスプログラム１０ｃ及び地図ＤＢ１０ｄは、外部記憶装置１０に格納される。
【００５１】
ナビ機能実行部１５は、ナビゲーションに関する各種の機能を実行する構成部であり、ＣＰＵ８が、ナビゲーションに関するアプリケーションを実行することで具現化される。このとき、ＣＰＵ８が、ＳＷライブラリ１０ａの特定の機能のプログラム要素を実行することで、当該機能を実行する機能部１５ａとして動作する。機能部１５ａは、データアクセスプログラム１０ｃを実行することで、データ管理データ１０ｂを参照しながら、地図ＤＢ１０ｄから必要なデータを取得する。
【００５２】
位置検出部１６は、ナビゲーション装置１４を搭載した車両の位置を検出する構成部であり、例えば、ＧＰＳ信号や、車速センサ、ジャイロセンサ等のセンサ群の測定値とマップマッチングなどを用いて自車の現在位置を求める。
データ定義情報１０ｅには、地図ＤＢ１０ｄの地図データ構成が定義されており、データ定義情報入力部２によって記憶内容が読み出し可能な記憶装置に格納される。
【００５３】
次に動作について説明する。
ここでは、一例として、地図ＤＢ１０ｄの地図図形データに対するデータ管理データの作成処理を示す。
図２０は、図１９の地図ＤＢにおけるポリゴン及びポイントのデータ構成を規定したＥＲ（Entity Relationship）図であり、地図図形としてポリゴンとポイントのデータ構成が定義されている。図２０に示すように、ポリゴンとポイントは、タイルに属しており、表示画面上の座標が設定されている。また、ポリゴンとポイントのデータは、パラメータｎｕｍＰｏｌｙｇｏｎ，ｎｕｍＰｏｉｎｔ，ｎｕｍＣｏｏｒｄに設定される値によって、データ数が変化するため、可変長データである。
【００５４】
図２１は、図２０の定義で構成される地図図形データを示す図であり、地図ＤＢ１０ｄにおける地図図形のデータ集合体を示している。なお、図２１のデータ構成は、例えば、図６に示したデータ集合体におけるデータ１〜４のうちの１つに相当する。
【００５５】
データ管理データ作成部４は、データ定義情報解析部３から入力したデータ定義情報の解析結果から、当該データ定義情報に定義された地図図形データに可変長データがあるか否かを判定する。上述したように、ポリゴンとポイントのデータは、可変長データであるので、データ管理データ作成部４は、地図ＤＢ１０ｄからポリゴンとポイントの実データを読み込んで、可変長データのデータサイズを解析する。
【００５６】
この解析により、データ管理データ作成部４は、当該データにおける可変長のデータ項目（図２１のパラメータｎｕｍＰｏｌｙｇｏｎ，ｎｕｍＰｏｉｎｔの値、ｎｕｍＣｏｏｒｄに設定されるポリゴン１，２及びポイント１，２の座標データ）及びそれらのデータ長を求めて、固定長のデータ項目（図２１のタイル、ポリゴン１，２、ポイント１，２のＩＤ）及びそれらのデータ長を合わせた実データ構成を特定し、これに基づいて各項目へのオフセット値を設定したデータ管理データを作成する。
【００５７】
データ管理データ出力部６は、データ管理データ作成部４が作成したデータ管理データを入力すると、データ管理データ出力定義情報に定義されたデータ管理データを出力し、ナビゲーション装置１４に組み込む。
図２２は、ポリゴン図形に対するデータ管理データを示す図であり、図２３は、ポイント図形に対するデータ管理データを示す図である。
例えば、データ管理データ出力定義情報として、地図描画を実行する際に必要なデータにポリゴンの座標（Ｃｏｏｒｄ）を定義することにより、データ管理データ出力部６が、データ管理データ作成部４が作成したデータ管理データからポリゴンの座標を抽出して、図２２に示すデータ管理データを作成する。
同様に、データ管理データ出力定義情報として、ポイントの座標（Ｃｏｏｒｄ）を定義することで、データ管理データ出力部６が、データ管理データ作成部４が作成したデータ管理データからポイントの座標を抽出して、図２３に示すデータ管理データを作成する。
【００５８】
図２４は、ポリゴン図形及びポイント図形の双方を管理するデータ管理データを示す図である。データ管理データ出力部６は、データ管理データ出力定義情報において、例えば地図描画を実行する際に必要なデータとして、ポリゴン及びポイントの座標が定義されている場合、図２４に示すように、ポリゴン及びポイントの座標データを同一のテーブルで管理するデータ管理データを作成する。このとき、データ管理データに図形種別カラムを設け、ポリゴンとポイントを識別する識別情報を設定してもよい。図２４の例では、図形種別“１”がポリゴン図形を示しており、図形種別“２”がポイント図形を示している。
【００５９】
上述のように作成したデータ管理データ１０ｂ及びデータアクセスプログラム１０ｃをナビゲーション装置１４に組み込む。
ルート探索や地図表示等の機能を実行する際、機能部１５ａが、データアクセスプログラム１０ｃを実行することで、データ管理データ１０ｂのオフセット値を参照しながら、地図ＤＢ１０ｄから必要な地図図形データを取得する。このようにすることで、効率的かつ高速に所望の地図データへアクセスすることができる。
【００６０】
また、上記実施の形態１と同様にデータ管理データ出力定義情報の内容を指定することにより、ルート探索や地図表示等のナビゲーション機能ごとのデータ管理データ１０ｂを作成してもよい。この場合、データ管理データ１０ｂには、ナビゲーション機能ごとに、その実行に必要なデータのアドレスあるいはオフセットが設定される。
このように、機能ごとにデータを分類管理することで、データのメンテナンスを容易に行うことができる。
【００６１】
さらに、ナビゲーション機能ごとのデータ管理データ１０ｂの作成に合わせ、上記実施の形態１と同様にデータアクセスプログラム出力定義情報の内容を指定することにより、ルート探索や地図表示等のナビゲーション機能ごとのデータアクセスプログラム１０ｃを作成してもよい。
この場合、ナビ機能実行部１５の機能部１５ａが、データアクセスプログラム１０ｃを実行することで、対応するナビゲーション機能のデータ管理データ１０ｂを参照して地図ＤＢ１０ｄへのアクセスが実行され、当該ナビゲーション機能に必要なデータが取得される。
【００６２】
図２５は実施の形態２によるナビゲーション装置の他の構成を示すブロック図である。これまでの説明では、データ管理データ１０ｂと地図ＤＢ１０ｄを、別個のデータとして設ける場合を示したが、図２５に示すナビゲーション装置１４Ａでは、データ管理データ１０ｂを地図ＤＢ１０ｄと一体化したデータとして備えている。
【００６３】
例えば、地図データのメッシュ単位にデータ管理データを設け、メッシュごとの処理に必要なデータを、当該メッシュに対応するデータ管理データを参照して、地図ＤＢ内での格納場所を特定することにより、別個のデータとした場合と比較して、さらに効率的かつ高速に所望の地図データへアクセスすることが可能である。
【００６４】
以上のように、この実施の形態２によれば、地図データの実データが格納された地図ＤＢ１０ｄのデータ構成を示すデータ定義情報１０ｅに基づいて地図ＤＢ１０ｄにおける実データの格納位置が規定されたデータ管理データ１０ｂと、データ定義情報１０ｅに基づいて地図ＤＢ１０ｄにおけるデータ構成が特定された実データへのアクセス機能を記述したデータアクセスプログラム１０ｃと、データ管理データ１０ｂを参照して実データの格納位置を特定し、データアクセスプログラム１０ｃを実行して、地図ＤＢ１０ｄの実データにアクセスする機能部１５ａとを備えたので、効率的かつ高速に所望の地図データへアクセスすることができる。
【００６５】
また、この実施の形態２によれば、データ管理データが、ナビゲーションの機能ごとに使用される実データの格納位置をそれぞれ規定したデータであるので、ナビゲーションの機能ごとに使用される地図データへ効率的かつ高速にアクセスできる。さらに、機能ごとに地図データが分類されることから、地図データのメンテナンスを容易に行うことができる。
【００６６】
さらに、この実施の形態２によれば、データアクセスプログラムが、ナビゲーションの機能ごとに使用される実データへのアクセス機能をそれぞれ記述したプログラムであるので、効率的かつ高速に機能ごとに対応した地図データへアクセスすることができる。
【００６７】
さらに、この実施の形態２によれば、図２５に示すように、データ管理データを地図ＤＢ１０ｄの一部に含まれるデータとしたので、別個のデータとした場合と比較してさらに効率的かつ高速に所望の地図データへアクセスすることができる。
【００６８】
実施の形態３．
図２６は、この発明の実施の形態３によるナビゲーション装置の構成を示すブロック図である。図２６において、図１、図２及び図１９と同一の構成部には同一符号を付して説明を省略する。実施の形態３におけるナビゲーション装置１４ａは、上記実施の形態２のナビゲーション装置１４の構成に、上記実施の形態１のデータアクセス装置１の構成である、データ定義情報入力部２、データ定義情報解析部３、データ管理データ作成部４、データアクセスプログラム作成部５、データ管理データ出力部６及びデータアクセスプログラム出力部７を備えている。
【００６９】
データ管理データ出力部６から出力されたデータ管理データは、図２に示した外部記憶装置１０等にデータ管理データ１０ｂとして保管され、データアクセスプログラム出力部７から出力されたデータアクセスプログラムも同様に、外部記憶装置１０等にデータアクセスプログラム１０ｃとして保管される。
ナビ機能実行部１５（機能部１５ａ）が、データ管理データ１０ｂを参照して実データの格納位置を特定し、データアクセスプログラム１０ｃを実行して地図ＤＢ１０ｄにアクセスすることにより、ナビゲーションに関する処理に使用する実データを取得する。
【００７０】
以上のように、実施の形態３によれば、ナビゲーション装置１４ａが、データアクセス装置１の構成を備えるので、上記実施の形態２のように、データアクセス装置１によるデータ管理データ１０ｂ及びデータアクセスプログラム１０ｃの組み込みを待つことなく、ナビゲーション装置１４ａ自身が、データ管理データ１０ｂ及びデータアクセスプログラム１０ｃを自動作成することができる。
【００７１】
実施の形態４．
この実施の形態４は、上記実施の形態２，３と同様にナビゲーション装置としての利用態様を示している。ナビゲーション装置では、例えば道路や建物といった地図を構成する地物が変更されると、これに応じて地図データベースを更新する必要がある。また、地図データベースの更新には、地図データの属性が追加されるようなデータ構造（データフォーマット）の変化を伴う場合がある。そこで、実施の形態４によるナビゲーション装置では、地図データベースに更新があると、更新対象の地物のデータを含む更新地図データベースのデータ構造を示すようにデータ定義情報を更新することで、地図データが更新されても効率的かつ高速なデータアクセスを可能としている。
【００７２】
図２７は、この発明の実施の形態４によるナビゲーション装置の構成を示すブロック図である。図２７において、図１、図２及び図１９と同一の構成部には同一符号を付して説明を省略する。実施の形態４のナビゲーション装置１４Ｂは、上記実施の形態３のナビゲーション装置１４ａの構成に、更新地図データベース（ＤＢ）１０ｆ、地図ＤＢ更新部１５ｂ及びデータ定義情報更新部１７を備える。なお、ナビゲーション装置１４Ｂは、図２に示すハードウェア構成で実現される。
【００７３】
更新地図ＤＢ１０ｆは、変更された地物の地図データを含む地図データベースである。ＳＷライブラリ１０ａ、データ管理データ１０ｂ、データアクセスプログラム１０ｃ、地図ＤＢ１０ｄ、データ定義情報１０ｅ及び更新地図ＤＢ１０ｆは、図２に示す外部記憶装置１０に格納される。
【００７４】
また、ＣＰＵ８が、ＳＷライブラリ１０ａにおける地図ＤＢ更新機能のプログラム要素を実行することで、当該機能を実行する地図ＤＢ更新部１５ｂとして動作する。
地図ＤＢ更新部１５ｂは、更新後のデータ定義情報を用いて作成されたデータアクセスプログラム１０ｃを実行し、更新後のデータ定義情報を用いて作成されたデータ管理データを参照して、地図ＤＢ１０ｄ及び更新地図ＤＢ１０ｆから地図データを取得することにより、ナビゲーション処理において更新後の地図データ内容を反映させる構成部である。
【００７５】
データ定義情報更新部１７は、既存の地図ＤＢ１０ｄと更新地図ＤＢ１０ｆとの変更箇所（更新対象の地物）の差分データを用いて、既存のデータ定義情報（地図ＤＢ１０ｄのデータ定義情報）を更新する構成部である。
【００７６】
次に動作について説明する。
（１）データ定義情報の更新
図２８は、実施の形態４のナビゲーション装置によるデータ定義情報の更新処理の流れを示すフローチャートである。
先ず、データ定義情報更新部１７は、既存の地図ＤＢ１０ｄの地図データを読み込み（ステップＳＴ２１）、続いて更新地図ＤＢ１０ｆの地図データを読み込む（ステップＳＴ２２）。例えば、地図ＤＢ１０ｄ及び更新地図ＤＢ１０ｆから位置が対応するタイル単位で、当該タイルに含まれる地図データを読み込む。
【００７７】
次に、データ定義情報更新部１７は、地図ＤＢ１０ｄ及び更新地図ＤＢ１０ｆから順次読み込んだ地図データを比較して、変更箇所（更新対象の地物）に対応する差分データを抽出する（ステップＳＴ２３）。例えば、地図ＤＢ１０ｄにおけるデータ項目Ａのデータサイズが２ｂｉｔであり、更新地図ＤＢ１０ｆのデータ項目Ａのデータサイズが４ｂｉｔになっている場合のように、対応するデータ間のデータサイズの変化を差分データとして特定する。なお、変更がない場合であっても、データサイズ変化＝０の差分データを抽出する。
【００７８】
データ定義情報更新部１７は、地図ＤＢ１０ｄの地図データと更新地図ＤＢ１０ｆの地図データとの差分データを抽出すると、上記地図データに対応するデータ定義情報を読み込み（ステップＳＴ２４）、上記差分データと上記データ定義情報とを比較して、当該データ定義情報における変更箇所を抽出する（ステップＳＴ２５）。
ここで、データ定義情報更新部１７は、データ定義情報に実質的な変更があるか否かを判定する（ステップＳＴ２６）。ここで、データサイズ変化＝０の差分データであって、当該データ定義情報に変更がない場合（ステップＳＴ２６；ＮＯ）、データ定義情報更新部１７は、当該地図データに対応するデータ定義情報の更新処理を終了する。
【００７９】
一方、データ定義情報に変更があれば（ステップＳＴ２６；ＹＥＳ）、データ定義情報更新部１７は、当該差分データを反映するようにデータ定義情報を更新する（ステップＳＴ２７）。例えば、上述のように、更新地図ＤＢ１０ｆのデータ項目Ａのデータサイズが４ｂｉｔになっている場合には、データ定義情報のデータ項目Ａを、更新地図ＤＢ１０ｆのデータ項目Ａのデータサイズ４ｂｉｔに変更する。
【００８０】
（２）データ管理データの更新
図２９は、実施の形態４のナビゲーション装置によるデータ管理データの更新処理の流れを示すフローチャートである。
データ定義情報更新部１７が、データ定義情報を更新する（ステップＳＴ３０）。この処理は、上述した図２８の処理に相当する。
続いて、データ定義情報入力部２が、更新されたデータ定義情報を入力する（ステップＳＴ３１）。データ定義情報入力部２に取得されたデータ定義情報は、データ定義情報入力部２からデータ定義情報解析部３へ出力される。
データ定義情報解析部３では、データ定義情報入力部２から入力したデータ定義情報の内容を解析する（ステップＳＴ３２）。このあと、データ管理データ出力部６は、データ管理データ出力定義情報を読み込む（ステップＳＴ３３）。
【００８１】
次に、データ管理データ作成部４は、データ定義情報解析部３から入力したデータ定義情報の解析結果から、当該データ定義情報で構造が定義された地図データ中に可変長データがあるか否かを判定する（ステップＳＴ３４）。地図データ中に可変長データがない場合（ステップＳＴ３４；ＮＯ）、データ管理データ作成部４は、当該地図データにおける固定長のデータ項目及びそのデータ長から各項目へのオフセットを特定し、これを設定したデータ管理データを作成する。この後、ステップＳＴ３５の処理へ移行する。
【００８２】
一方、データ中に可変長データがある場合（ステップＳＴ３４；ＹＥＳ）、データ管理データ作成部４は、可変長データ部のデータサイズを確認するため、更新地図ＤＢ１０ｆから当該地図データの実データを読み込み（ステップＳＴ３６）、可変長データ部のデータサイズを解析する（ステップＳＴ３７）。この解析により、データ管理データ作成部４は、当該地図データにおける可変長のデータ項目及びそのデータ長を求めて、固定長のデータ項目及びそのデータ長を合わせた実データ構成を特定し、これに基づいて各項目へのオフセット値を設定したデータ管理データを作成する。この後、ステップＳＴ３５の処理へ移行する。
【００８３】
ステップＳＴ３５において、データ管理データ出力部６は、データ管理データ作成部４が作成したデータ管理データ（更新地図ＤＢ１０ｆに対応するデータ管理データ）を入力し、データ管理データ出力定義情報を参照して出力対象の定義内容に対応するデータ管理データを出力し記憶装置（図２の外部記憶装置１０等）へ格納する。
【００８４】
（３）データアクセスプログラムの作成
更新地図ＤＢ１０ｆにおける地図データが新たなデータ項目を含む場合には、この項目のデータを取得するためのデータアクセスプログラムが必要となる。
この場合においても、上記実施の形態１と同様に、データアクセスプログラム作成部５が、更新後のデータ定義情報の解析結果として得られた更新地図ＤＢ１０ｆのデータ構成から、更新地図ＤＢ１０ｆの地図データ（データ項目）を取得するためのデータアクセスプログラムを作成する。
【００８５】
この後、データアクセスプログラム出力部７が、データアクセスプログラム作成部５に作成されたデータアクセスプログラムを入力し、データアクセスプログラム出力定義情報を参照して、出力対象の定義内容に対応するデータアクセスプログラムを出力し記憶装置（図２の外部記憶装置１０等）へ格納する。
【００８６】
（４）更新地図の反映
ルート探索や地図表示等の機能を実行する際に、ナビ機能実行部１５の地図ＤＢ更新部１５ｂが、更新後のデータ定義情報に基づき作成されたデータアクセスプログラム１０ｃを実行することで、更新後のデータ定義情報に基づき作成されたデータ管理データ１０ｂのオフセット値を参照して、更新地図ＤＢ１０ｆから必要な地図図形データを取得する。
【００８７】
以上のように、この実施の形態４によれば、地図ＤＢ１０ｄが更新地図１０ｆとして更新されると、更新されたデータ構成が反映されるようにデータ定義情報１０ｅを更新するデータ定義情報更新部１７を備える。この構成を有することにより、更新地図ＤＢ１０ｆに対応したデータ定義情報１０ｅを自動作成することができる。
【００８８】
また、この実施の形態４によれば、データ定義情報更新部１７が、既存の地図ＤＢ１０ｄにおける実データと更新地図ＤＢ１０ｆにおける実データとを比較して地図ＤＢ１０ｄからの変更箇所を抽出し、当該変更箇所のデータ構成が反映されるようにデータ定義情報１０ｅを更新する。このようにすることで、更新地図ＤＢ１０ｆに対応したデータ定義情報１０ｅを自動作成することができる。
【００８９】
さらに、この実施の形態４によれば、データ定義情報解析部３が、データ定義情報更新部１７によってデータ定義情報が更新されると、更新後のデータ定義情報の内容を解析し、データ管理データ作成部４が、データ定義情報解析部３で更新後のデータ定義情報を解析して得られた更新地図ＤＢ１０ｆのデータ構成から、更新地図ＤＢ１０ｆにおける実データの格納位置を規定したデータ管理データ１０ｂを作成し、データアクセスプログラム作成部５が、データ定義情報解析部３で更新後のデータ定義情報を解析して更新地図ＤＢ１０ｆにおけるデータ構成が特定された実データへのアクセス機能を記述したデータアクセスプログラム１０ｃを作成する。このように、更新地図ＤＢ１０ｆに対応したデータ定義情報１０ｅに更新されると、これに応じてデータ管理データ１０ｂ及びデータアクセスプログラム１０ｃが自動的に更新されることから、地図ＤＢが動的に更新されても、効率的かつ高速な地図データへのアクセスが可能である。
【００９０】
実施の形態５．
図３０は、この発明の実施の形態５によるナビゲーション装置の構成を示すブロック図である。図３０において、図１、図２、図１９及び図２７と同一の構成部には、同一符号を付して説明を省略する。実施の形態５のナビゲーション装置１４Ｃは、上記実施の形態４におけるナビゲーション装置１４Ｂの構成に更新情報データベース（ＤＢ）１０ｇを備え、データ定義情報更新部１７の代わりにデータ定義情報更新部１７ａを備える。なお、ナビゲーション装置１４Ｃは、図２に示すハードウェア構成で実現される。
【００９１】
更新情報ＤＢ１０ｇは、更新地図ＤＢ１０ｆの地図データにおける更新内容を定義した更新定義情報を格納するデータベースである。ＳＷライブラリ１０ａ、データ管理データ１０ｂ、データアクセスプログラム１０ｃ、地図ＤＢ１０ｄ、データ定義情報１０ｅ、更新地図ＤＢ１０ｆ及び更新情報ＤＢ１０ｇは、図２の外部記憶装置１０に格納される。
また、データ定義情報更新部１７ａは、更新情報ＤＢ１０ｇから読み出した更新定義情報を用いて、既存のデータ定義情報（地図ＤＢ１０ｄのデータ定義情報）を更新する構成部である。
【００９２】
次に動作について説明する。
図３１は、実施の形態５のナビゲーション装置によるデータ定義情報及びデータ管理データの更新処理の流れを示すフローチャートである。
先ず、データ定義情報更新部１７ａは、更新情報ＤＢ１０ｇの更新定義情報を読み込み（ステップＳＴ４０）、更新定義情報を解析する（ステップＳＴ４１）。
次に、データ定義情報更新部１７ａは、当該更新定義情報で更新内容が定義された地図データに対応するデータ定義情報を読み込み、更新定義情報の解析結果を反映するようにデータ定義情報を更新する（ステップＳＴ４２）。
【００９３】
図３２は、更新定義情報の一例を示す図である。図３２に示す更新定義情報では、対応する地図データにおける項目Ｃに続いてデータ長が８ｂｉｔの項目Ｆのデータを挿入する更新内容が定義されている。このように、更新定義情報には、更新内容として、例えば、更新対象のデータ項目、そのデータ長、及び、当該データ項目の地図データ（既存の地図ＤＢ１０ｄの地図データ）における挿入箇所等が定義される。
また、更新によってデータを削除する場合は、更新対象のデータ項目に削除対象の項目を設定し、データ長を０ｂｉｔを記述する。さらに、地図データのトップ位置にデータを挿入する場合には、挿入箇所に“０”を指定する。
【００９４】
図３３は、図３２の更新定義情報に基づくデータ定義情報の更新処理の概要を示す図である。図３２に示す更新定義情報は、上述したように、更新地図ＤＢ１０ｆの対応する地図データが、地図ＤＢ１０ｄの対応する地図データの項目Ｃに続いてデータ長が８ｂｉｔの項目Ｆのデータを挿入する更新がなされていることを示している。
そこで、データ定義情報更新部１７ａは、上記地図データに対応する既存のデータ定義情報を読み出し、項目Ｃに続いてデータ長が８ｂｉｔの項目Ｆのデータを挿入したデータ構成を示すデータ定義情報へ更新する。
【００９５】
この後、データ定義情報入力部２が、更新されたデータ定義情報を入力する（ステップＳＴ４３）。データ定義情報入力部２に取得されたデータ定義情報は、データ定義情報入力部２からデータ定義情報解析部３へ出力される。
データ定義情報解析部３では、データ定義情報入力部２から入力したデータ定義情報の内容を解析する（ステップＳＴ４４）。データ管理データ出力部６は、データ管理データ出力定義情報を読み込む（ステップＳＴ４５）。
【００９６】
次に、データ管理データ作成部４は、データ定義情報解析部３から入力したデータ定義情報の解析結果から、当該データ定義情報で構造が定義された地図データ中に可変長データがあるか否かを判定する（ステップＳＴ４６）。地図データ中に可変長データがない場合（ステップＳＴ４６；ＮＯ）、データ管理データ作成部４は、当該地図データにおける固定長のデータ項目及びそのデータ長から各項目へのオフセットを特定し、これを設定したデータ管理データを作成する。この後、ステップＳＴ４７の処理へ移行する。
【００９７】
一方、データ中に可変長データがある場合（ステップＳＴ４６；ＹＥＳ）、データ管理データ作成部４は、可変長データ部のデータサイズを確認するため、更新地図ＤＢ１０ｆから当該地図データの実データを読み込み（ステップＳＴ４８）、可変長データ部のデータサイズを解析する（ステップＳＴ４９）。この解析により、データ管理データ作成部４は、当該地図データにおける可変長のデータ項目及びそのデータ長を求めて、固定長のデータ項目及びそのデータ長を合わせた実データ構成を特定し、これに基づいて各項目へのオフセット値を設定したデータ管理データを作成する。この後、ステップＳＴ４７の処理へ移行する。
【００９８】
ステップＳＴ４７において、データ管理データ出力部６は、データ管理データ作成部４が作成したデータ管理データ（更新地図ＤＢ１０ｆに対応するデータ管理データ）を入力し、データ管理データ出力定義情報を参照して出力対象の定義内容に対応するデータ管理データを出力し記憶装置（図２の外部記憶装置１０等）へ格納する。
【００９９】
データアクセスプログラム作成部５及びデータアクセスプログラム出力部７による更新後のデータ定義情報に基づくデータアクセスプログラムの作成処理、及び、地図ＤＢ更新部１５ｂによる更新地図の反映処理については、上記実施の形態３と同様である。
【０１００】
以上のように、この実施の形態５によれば、データ定義情報更新部１７ａが、更新地図ＤＢ１０ｆにおける地図ＤＢ１０ｄからの変更内容を示す更新定義情報に基づいて、更新されたデータ構成が反映されるようにデータ定義情報１０ｅを更新する。このようにすることで、更新地図ＤＢ１０ｆに対応したデータ定義情報１０ｅを自動作成することができる。
【０１０１】
また、この実施の形態５によれば、データ定義情報解析部３が、データ定義情報更新部１７ａによってデータ定義情報が更新されると、更新後のデータ定義情報の内容を解析し、データ管理データ作成部４が、データ定義情報解析部３で更新後のデータ定義情報を解析して得られた更新地図ＤＢ１０ｆのデータ構成から、更新地図ＤＢ１０ｆにおける実データの格納位置を規定したデータ管理データ１０ｂを作成し、データアクセスプログラム作成部５が、データ定義情報解析部３で更新後のデータ定義情報を解析して更新地図ＤＢ１０ｆにおけるデータ構成が特定された実データへのアクセス機能を記述したデータアクセスプログラム１０ｃを作成する。このように、更新地図ＤＢ１０ｆに対応したデータ定義情報１０ｅに更新されると、これに応じてデータ管理データ１０ｂ及びデータアクセスプログラム１０ｃが自動的に更新されることから、地図ＤＢが動的に更新されても、効率的かつ高速な地図データへのアクセスが可能である。
【０１０２】
実施の形態６．
図３４は、この発明の実施の形態６によるナビゲーション装置の構成を示すブロック図である。図３４において、実施の形態６のナビゲーション装置１４Ｄは、上記実施の形態４の構成から、データ定義情報入力部２、データ定義情報解析部３、データ管理データ作成部４、データアクセスプログラム作成部５、データ管理データ出力部６、データアクセスプログラム出力部７及びデータ定義情報更新部１７を、データアクセス装置１Ａとして分離したものである。この構成において、ナビゲーション装置１４Ｄには、データアクセス装置１Ａによって作成あるいは更新されたデータ管理データ１０ｂ及びデータアクセスプログラム１０ｃが組み込まれる。
【０１０３】
また、図３５は、実施の形態６によるナビゲーション装置の他の構成を示すブロック図である。図３５において、ナビゲーション装置１４Ｅは、上記実施の形態５の構成から、データ定義情報入力部２、データ定義情報解析部３、データ管理データ作成部４、データアクセスプログラム作成部５、データ管理データ出力部６、データアクセスプログラム出力部７及びデータ定義情報更新部１７ａを、データアクセス装置１Ｂとして分離したものである。この構成において、ナビゲーション装置１４Ｅには、データアクセス装置１Ｂによって作成あるいは更新されたデータ管理データ１０ｂ及びデータアクセスプログラム１０ｃが組み込まれる。
【０１０４】
以上のように、この実施の形態６によれば、図３４又は図３５の構成とすることで、上記実施の形態３及び上記実施の形態４と同様の効果を得ることができる。
【０１０５】
なお、上記実施の形態３〜６において、データ管理データと地図ＤＢを、別個のデータとして設けた場合を示したが、図２５に示すようにデータ管理データを地図ＤＢと一体化したデータとして設けても構わない。
例えば、地図データのメッシュ単位にデータ管理データを設け、メッシュごとの処理に必要なデータを、当該メッシュに対応するデータ管理データを参照して、地図ＤＢ内での格納場所を特定することにより、別個のデータとした場合と比較して、さらに効率的かつ高速に所望の地図データへアクセスすることが可能である。
【産業上の利用可能性】
【０１０６】
この発明に係るナビゲーション装置は、地図データの実データに対して、効率的、かつ高速にアクセスできることから、迅速なナビゲーション処理が要求される車載用のナビゲーション装置に好適である。
【図１】
2011128948.tif 000003
【図２】
2011128948.tif 000004
【図３】
2011128948.tif 000005
【図４】
2011128948.tif 000006
【図５】
2011128948.tif 000007
【図６】
2011128948.tif 000008
【図７】
2011128948.tif 000009
【図８】
2011128948.tif 000010
【図９】
2011128948.tif 000011
【図１０】
2011128948.tif 000012
【図１１】
2011128948.tif 000013
【図１２】
2011128948.tif 000014
【図１３】
2011128948.tif 000015
【図１４】
2011128948.tif 000016
【図１５】
2011128948.tif 000017
【図１６】
2011128948.tif 000018
【図１７】
2011128948.tif 000019
【図１８】
2011128948.tif 000020
【図１９】
2011128948.tif 000021
【図２０】
2011128948.tif 000022
【図２１】
2011128948.tif 000023
【図２２】
2011128948.tif 000024
【図２３】
2011128948.tif 000025
【図２４】
2011128948.tif 000026
【図２５】
2011128948.tif 000027
【図２６】
2011128948.tif 000028
【図２７】
2011128948.tif 000029
【図２８】
2011128948.tif 000030
【図２９】
2011128948.tif 000031
【図３０】
2011128948.tif 000032
【図３１】
2011128948.tif 000033
【図３２】
2011128948.tif 000034
【図３３】
2011128948.tif 000035
【図３４】
2011128948.tif 000036
【図３５】
2011128948.tif 000037
【手続補正書】
【提出日】平成24年5月15日(2012.5.15)
【手続補正１】
【補正対象書類名】明細書
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、地図データベースにアクセスして所望の地図データを取得しながら、ナビゲーション処理を実行するナビゲーション装置に関するものである。
【背景技術】
【０００２】
例えば、特許文献１には、サービス機能を実行するサービス機能部のアドレスと、サービス機能実行部のポインタとをテーブルで管理しており、データアクセス又は特定のサービス機能を呼び出す際、当該テーブルを参照してポインタに対応するアドレスを取得し、当該アドレスに基づいてサービス機能実行部を起動し、サービス機能を実行するサービス機能提供装置が開示されている。当該装置は、上記のテーブルを参照することによって、共有ライブラリから、親プログラムにリンクされている機能をエントリ名で直接呼び出すことができる。
【０００３】
しかしながら、特許文献１では、実データにアクセスするデータアクセスプログラムと上述のアドレスやポインタの管理データとの関連が言及されていない。一般的に、データ仕様が変更された場合に、これに応じてデータアクセスプログラムの改修が必要であり、データの格納位置を示すアドレス又はオフセットの変更のみを管理しても、データアクセスプログラムが対応していなければ、効率的なデータアクセスはできない。
【０００４】
特に、ナビゲーション装置で用いる地図データは、一般的に、容量が可変長で、データ量が多く、更新も頻繁にあり、さらに、データフォーマット自体が変更されることも多々ある。この場合、変更後のデータ仕様でのデータアドレス又はオフセット、これに基づき実データにアクセスするデータアクセスプログラムが必要となる。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特許第３０２２８３７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
この発明は、上記のような課題を解決するためになされたもので、地図データベースや地図データのファイルシステムに格納された所望の地図データに対して効率的かつ高速にアクセスすることができるナビゲーション装置を得ることを目的とする。
【課題を解決するための手段】
【０００７】
この発明に係るナビゲーション装置は、地図データの実データが格納されたデータ群のデータ構成を示すデータ定義情報に基づいて、当該データ群における実データの格納位置が規定され、前記データ群とは別個に設けられたデータ管理データと、データ定義情報に基づいてデータ群におけるデータ構成が特定された実データへのアクセス機能を記述したデータアクセスプログラムと、データ管理データを参照して実データの格納位置を特定し、データアクセスプログラムを実行して、データ群の実データにアクセスする機能部とを備えるものである。
【発明の効果】
【０００８】
この発明によれば、地図データの実データが格納されたデータ群のデータ構成を示すデータ定義情報に基づいて、当該データ群における実データの格納位置が規定されたデータ管理データと、データ定義情報に基づいてデータ群におけるデータ構成が特定された実データへのアクセス機能を記述したデータアクセスプログラムとを有し、データ管理データを参照して実データの格納位置を特定し、データアクセスプログラムを実行して、データ群の実データにアクセスする。このように構成することで、効率的かつ高速に所望の地図データにアクセスすることができるという効果がある。
【図面の簡単な説明】
【０００９】
【図１】この発明の実施の形態１によるデータアクセス装置の構成を示すブロック図である。
【図２】この発明によるデータアクセス装置が適用される情報処理装置のハードウェア構成を示すブロック図である。
【図３】データベース等を構成するデータ集合体の概要を示す図である。
【図４】実施の形態１のデータアクセス装置による動作の流れを示すフローチャートである。
【図５】データ定義情報の一例を示す図である。
【図６】図５のデータ定義情報で各データの構造が特定されたデータ集合体の概要を示す図である。
【図７】データ管理データ作成部によるデータ管理データの作成処理の流れを示すフローチャートである。
【図８】データ集合体の実データ構成の一例を示す図である。
【図９】データ集合体の実データ構成の他の表現例を示す図である。
【図１０】データ集合体の実データ構成の他の表現例を示す図である。
【図１１】データ管理データの一例を示す図である。
【図１２】Ａ機能を実行する際に必要なデータ項目を示す図である。
【図１３】データ管理データ出力定義情報の一例を示す図である。
【図１４】データ管理データの一例を示す図である。
【図１５】機能ごとに作成されたデータ管理データの利用形態の概要を示す図である。
【図１６】データアクセスプログラムの一例を示す図である。
【図１７】データアクセスプログラム出力定義情報の一例を示す図である。
【図１８】機能ごとに作成されたデータ管理データ及びデータアクセスプログラムの利用形態の概要を示す図である。
【図１９】この発明の実施の形態２によるナビゲーション装置の構成を示すブロック図である。
【図２０】図１９の地図ＤＢにおけるポリゴン及びポイントのデータ構成を規定したＥＲ図である。
【図２１】図２０の定義で構成される地図図形データを示す図である。
【図２２】ポリゴン図形に対するデータ管理データを示す図である。
【図２３】ポイント図形に対するデータ管理データを示す図である。
【図２４】ポリゴン図形及びポイント図形の双方を管理するデータ管理データを示す図である。
【図２５】実施の形態２によるナビゲーション装置の他の構成を示すブロック図である。
【図２６】この発明の実施の形態３によるナビゲーション装置の構成を示すブロック図である。
【図２７】この発明の実施の形態４によるナビゲーション装置の構成を示すブロック図である。
【図２８】実施の形態４のナビゲーション装置によるデータ定義情報の更新処理の流れを示すフローチャートである。
【図２９】実施の形態４のナビゲーション装置によるデータ管理データの更新処理の流れを示すフローチャートである。
【図３０】この発明の実施の形態５によるナビゲーション装置の他の構成を示すブロック図である。
【図３１】実施の形態５のナビゲーション装置によるデータ定義情報及びデータ管理データの更新処理の流れを示すフローチャートである。
【図３２】更新定義情報の一例を示す図である。
【図３３】図３２の更新定義情報に基づくデータ定義情報の更新処理の概要を示す図である。
【図３４】この発明の実施の形態６によるナビゲーション装置の構成を示すブロック図である。
【図３５】実施の形態６によるナビゲーション装置の他の構成を示すブロック図である。
【発明を実施するための形態】
【００１０】
以下、この発明をより詳細に説明するために、この発明を実施するための形態について、添付の図面に従って説明する。
実施の形態１．
図１は、この発明の実施の形態１によるデータアクセス装置の構成を示すブロック図である。図１において、実施の形態１におけるデータアクセス装置１は、データ管理データ及びデータアクセスプログラムを自動作成する装置である。
データ管理データとは、ある目的を果たすためのシステムによって使用されるデータの集合体（データベース又はファイルシステム）（データ群）におけるデータの格納場所を示すアドレス又はデータの先頭若しくはデータの先頭から特定の構成要素（データ項目）までの距離を示すオフセット（データ群における格納位置）が設定されたデータである。データアクセスプログラムとは、データ管理データを参照して、データ集合体の実データにアクセスするプログラムである。
【００１１】
また、データアクセス装置１は、構成として、データ定義情報入力部２、データ定義情報解析部３、データ管理データ作成部４、データアクセスプログラム作成部５、データ管理データ出力部６、及びデータアクセスプログラム出力部７を備える。
データ定義情報入力部２は、データ定義情報を入力する構成部であり、例えば外部記憶装置からデータ定義情報を読み込む。データ定義情報解析部３は、データ定義情報を解析する構成部である。データ定義情報は、アクセス対象のデータ集合体におけるデータの構成を定義した情報である。例えば、データを構成するデータ項目及びそのデータ長が定義される。
【００１２】
データ管理データ作成部４は、データ定義情報解析部３の解析結果に基づいて、データ管理データを作成する構成部である。また、データアクセスプログラム作成部５は、データ定義情報解析部３の解析結果に基づいて、データアクセスプログラムを作成する構成部である。データ管理データ出力部６は、データ管理データ出力定義情報を参照しながら、データ管理データ作成部４に作成されたデータ管理データを基に、出力対象のデータ管理データを作成して出力する構成部である。ここで、データ管理データ出力定義情報とは、出力対象のデータ管理データの出力形式及び出力対象のデータ項目を示す情報である。
【００１３】
データアクセスプログラム出力部７は、データアクセスプログラム出力定義情報を参照しながら、データアクセスプログラム作成部５に作成されたデータアクセスプログラムを基に、出力対象のデータアクセスプログラムを作成して出力する構成部である。ここで、データアクセスプログラム出力定義情報とは、出力対象のデータアクセスプログラムの、出力言語、出力タイプ、命名規則等を示す情報である。
【００１４】
図２は、この発明によるデータアクセス装置が適用される情報処理装置のハードウェア構成を示すブロック図である。この情報処理装置としては、例えば、カーナビゲーション装置や、携帯電話、ＰＤＡ（Personal Digital Assistant）などの移動体情報端末が挙げられる。図２において、外部記憶装置１０には、この発明の趣旨に合致したデータアクセス用処理プログラム、この情報処理装置で実行されるカーナビゲーション等の処理を実現するためのアプリケーションソフトウェア、当該処理における各種の機能部が実装されたソフトウェアライブラリ、上記のアプリケーションソフトウェアによる処理で利用されるデータ（例えば、地図データ）が格納される。
なお、外部記憶装置１０としては、ハードディスク装置（ＨＤＤ）、ＣＤやＤＶＤなどの記憶媒体及びそのドライブ装置、ＵＳＢ（Universal Serial Bus）メモリなどが挙げられる。
【００１５】
上記データアクセス用処理プログラムや、上記アプリケーションソフトウェアのプログラム、ソフトウェアライブラリは、外部記憶装置１０からメモリ９上に展開され、ＣＰＵ８によって実行される。ＣＰＵ８が、上記データアクセス用処理プログラムを実行することで、図１で示したデータ定義情報入力部２、データ定義情報解析部３、データ管理データ作成部４、データアクセスプログラム作成部５、データ管理データ出力部６、及びデータアクセスプログラム出力部７が、ハードウェアとソフトウェアが協働した具体的な手段として実現される。
【００１６】
ＣＰＵ８による演算結果は、バスを介して表示装置１１へ出力されて画面表示される。表示装置１１は、例えば、カーナビゲーションにおける地図表示などを実行する。この表示装置１１としては、液晶ディスプレイやプラズマディスプレイが挙げられる。
通信装置１２は、装置外部と通信を行う装置であり、ナビゲーション装置の場合には、ＧＰＳ（Global Positioning System）電波やＦＭ電波を受信する。
入力装置１３は、装置外部から操作入力するための装置であり、キーボードや操作スイッチ、表示装置１１と組み合わされたタッチパネル等で実現される。ナビゲーション装置の場合、ルート探索の条件は、この入力装置１３を用いて入力される。
【００１７】
なお、図２では、上記データアクセス用処理プログラム、アプリケーションソフトウェア、ソフトウェアライブラリ、上記アプリケーションソフトウェアによる処理で利用されるデータが、外部記憶装置１０に全て格納される場合を示したが、これらソフトウェアのそれぞれ又はこれらの少なくとも１つが、ＣＰＵ８によって記憶内容が読み取り可能な別個の記憶装置に記憶されても構わない。
【００１８】
図３は、データベース等を構成するデータ集合体の概要を示す図であり、データを表現した矩形の横方向の長さがデータ長を示している。図３に示すように、本発明で取り扱うデータ１，２，３，・・・は、データサイズが予め固定される固定長データ、及び状況に応じてデータサイズが変化する可変長データの２種類から構成される。また、固定長データ及び可変長データは、データフォーマットに応じた各項目のデータで構成されている。このようなデータ集合体（データ群）がデータアクセス対象のデータベース又はファイルシステムに相当する。
【００１９】
次に動作について説明する。
図４は、実施の形態１のデータアクセス装置による動作の流れを示すフローチャートである。以降では、データベース又はファイルシステムなどのデータ集合体におけるデータの格納場所を示す情報を定義したデータ定義情報から、各データの格納位置（オフセット又はアドレス）を示すデータ管理データと、データ管理データを参照してデータ集合体の実データにアクセスするデータアクセスプログラムを自動作成する処理について述べる。
【００２０】
先ず、データ定義情報入力部２は、外部記憶装置等にアクセスして、データ定義情報を入力する（ステップＳＴ１）。データ定義情報入力部２に取得されたデータ定義情報は、データ定義情報入力部２からデータ定義情報解析部３へ出力される。
データ定義情報解析部３では、データ定義情報入力部２から入力したデータ定義情報の内容を解析する（ステップＳＴ２）。
【００２１】
図５は、データ定義情報の一例を示す図である。データ定義情報は、図３に示すデータ集合体を構成する個々のデータに対応して設定され、図５に示すように、各データが含む各項目のデータ及びそのデータ長が規定される。図５に示すデータ定義情報で特定されるデータは、Ａ〜Ｅの５項目のデータを含み、項目Ａ〜Ｄのデータは固定長データであり、項目Ｅのデータは可変長データである。
【００２２】
図６は、図５のデータ定義情報で各データの構造が特定されたデータ集合体の概要を示す図であり、データを表現した矩形の横方向の長さがデータ長を示している。図６に示すデータ集合体には、データ１，２，３，４，・・・が、この順で格納されており、各データ１，２，３，４，・・・についてデータ定義情報が与えられる。データ定義情報解析部３が、各データ１，２，３，４，・・・のデータ定義情報の内容を解析することにより、図６に示すように、各データ１，２，３，４，・・・における固定長の項目Ａ〜Ｄのデータ及びそのデータ長並びに可変長の項目Ｅのデータの有無が特定される。
【００２３】
ステップＳＴ３において、データ管理データ作成部４は、データ定義情報解析部３の解析結果に基づいて、データ管理データを作成する。ここでは、データ定義情報を解析して得られた各データの固定長のデータ項目及びそのデータ長並びに可変長のデータ項目の有無から当該データ集合体の実データ構成を特定し、これに基づいて、各データの先頭へのオフセットを規定したデータ管理データを作成する場合について述べる。
【００２４】
図７は、データ管理データ作成部によるデータ管理データの作成処理の流れを示すフローチャートであり、図４のステップＳＴ３の詳細を示している。
先ず、データ管理データ作成部４は、データ定義情報解析部３の解析結果を入力する（ステップＳＴ１０）。続いて、データ管理データ作成部４は、入力したデータ定義情報の解析結果から、当該データ定義情報で構造が定義されたデータ中に可変長データがあるか否かを判定する（ステップＳＴ１１）。データ中に可変長データがない場合（ステップＳＴ１１；ＮＯ）、データ管理データ作成部４は、当該データにおける固定長のデータ項目及びそのデータ長から各項目へのオフセットを特定し、これを設定したデータ管理データを作成する（ステップＳＴ１２）。
【００２５】
一方、データ中に可変長データがある場合（ステップＳＴ１１；ＹＥＳ）、データ管理データ作成部４は、可変長データ部のデータサイズを確認するために、データ集合体から当該データの実データを読み込み（ステップＳＴ１３）、可変長データ部のデータサイズを解析する（ステップＳＴ１４）。この解析により、データ管理データ作成部４は、当該データにおける可変長のデータ項目及びそのデータ長を求めて、固定長のデータ項目及びそのデータ長を合わせた実データ構成を特定し、これに基づいて各項目へのオフセット値を設定したデータ管理データを作成する（ステップＳＴ１２）。
【００２６】
図８は、データ集合体の実データ構成の一例を示す図であり、各データが可変長データを含む図６に示したデータ集合体の実データ構成を示している。データ管理データ作成部４は、実データを解析して求めた可変長データ部のデータサイズと、固定長データ部の各項目及びそのデータ長とを合わせて考慮することにより、図８に示すような実データ構成を特定する。
【００２７】
図８の例では、データ番号１，２，３，４に対応するデータ１，２，３，４の実データ構成として、各データ１，２，３，４，・・・の先頭へアクセスするためのオフセット、当該データ全体のデータサイズ、固定長データ部の固定長（ｂｉｔ）及び可変長データ部の可変長（ｂｉｔ）が設定されている。なお、図８に示すオフセット値では、先頭からのデータ位置を絶対位置で示しているが、１つ前のデータの位置からの差分（相対位置）で表現しても構わない。
【００２８】
図９は、データ集合体の実データ構成の他の表現例を示す図であり、図８の実データ構成に対して各項目へのオフセット値を追加している。図９に示すように、データ１，２，３，４の実データ構成として各項目Ａ〜Ｅへのオフセットを設定する。この実データ構成に基づいてデータ管理データを作成することで、データ１，２，３，４のデータ項目へのアクセスを効率的に行うことができる。例えば、データ番号３のデータにおける項目Ｃのへのアクセスを容易に指定可能である。
【００２９】
図１０は、データ集合体の実データ構成の他の表現例を示す図であり、図９の実データ構成に対して各項目データへのオフセットを数式で表した場合を示している。データ定義情報の解析結果から固定長データ部のデータサイズを特定し、実データ解析で可変長データ部のデータサイズを特定することにより、データ番号ｎを変数とした数式で各項目へのオフセットを表すことができる。
【００３０】
図１１は、データ管理データの一例を示す図である。図１１に示すように、データ管理データは、データ集合体のデータごとに作成され、対応するデータにおける各項目Ａ〜Ｅへのオフセット値及びデータサイズが設定される。
【００３１】
図４の説明に戻る。
データ管理データ出力部６は、データ管理データ作成部４が作成したデータ管理データを入力すると、データ管理データ出力定義情報を参照して出力対象の定義内容に対応するデータ管理データを出力する（ステップＳＴ４）。
例えば、図１１に示した全ての項目Ａ〜Ｅのデータが必要な機能であれば、データ管理データ出力定義情報に出力対象項目として項目Ａ〜Ｅを定義しておくことにより、図１１に示すデータ管理データが出力される。
【００３２】
また、機能ごとに処理で使用されるデータ項目が異なる場合がある。
図１２は、Ａ機能を実行する際に必要なデータ項目を示す図であり、Ａ機能を実行する際に必要なデータ項目が、図６に示すデータ集合体における各データ１〜４の項目Ａ，Ｃ，Ｅのデータであることを示している。この場合、図６に示すデータ集合体のデータ位置を示すデータ管理データのうち、項目Ａ，Ｃ，Ｅへのアクセスに必要なデータのみが設定されたデータ管理データを出力すれば、項目Ａ，Ｃ，Ｅのデータへ効率的にアクセスすることができる。そこで、本発明では、データ管理データ出力定義情報を用いて、機能ごとに必要なデータのみにアクセスするデータ管理データを規定する。
【００３３】
図１３は、データ管理データ出力定義情報の一例を示す図である。ここで、データ管理データ出力定義情報には、出力対象のデータ管理データを定義する情報として、出力形式及び出力項目が機能ごとに定義される。図１３に示す例では、Ａ機能を実行する際に必要なデータである、図６に示すデータ集合体の項目Ａ，Ｃ，Ｅのデータが出力対象項目１，２，３として設定されている。また、Ｂ機能を実行する際に必要なデータとして、図６に示すデータ集合体の項目Ａ，Ｂ，Ｄのデータが出力対象項目１，２，３となっている。
【００３４】
データ管理データ出力定義情報は、ＸＭＬ（eXtensible Markup Language）形式、又はテキスト形式で記述できる。また、データ管理データ出力定義情報は、データ管理データ出力部６によって記憶内容の読み出しが可能なメモリに予め格納しておく。例えば、データアクセス装置１として機能するコンピュータに内蔵されるメモリを用いる。なお、入力装置１３を用いた外部からの操作によって、データ管理データ出力定義情報を追加又は更新できるように構成してもよい。
【００３５】
図１４は、データ管理データの一例を示す図であり、Ａ機能を実行する際に必要なデータへのオフセットを設定したデータ管理データを示している。データ管理データ出力部６は、図１３に示すデータ管理データ出力定義情報を参照し、Ａ機能に対応するデータ管理データとして、図１１に示す各項目Ａ〜Ｅへのオフセットが設定されたデータ管理データのうち、Ａ機能を実行する際に必要なデータ項目である項目Ａ，Ｃ，Ｅへのオフセットを抽出し、図１４に示すような項目Ａ，Ｃ，Ｅへのアクセスに必要なデータのみを設定したデータ管理データを作成する。
【００３６】
また、データ管理データは、データ管理データ出力部６によって、例えば、図２の外部記憶装置１０へ出力され、保管される。データ管理データを利用する際は、ＣＰＵ８が、外部記憶装置１０からメモリ９上に展開して、その内容が参照される。
【００３７】
図１５は、機能ごとに作成されたデータ管理データの利用形態の概要を示す図である。カーナビゲーション装置等のシステム（図２に示す情報処理装置）は、各種機能（ルート探索や地図表示等）を実現する様々なプログラム要素が登録されたソフトウェアライブラリ（以下、ＳＷライブラリと記載する）を使用して、上記各種の機能を実行する。
【００３８】
図１５に示すように、上記システムにおけるＳＷライブラリ１０ａに、Ａ機能、Ｂ機能及びＣ機能のプログラム要素が実装されている場合を例に挙げる。この場合、上述のように、機能ごとのデータ管理データ（Ａ機能に必要なデータ管理データ、Ｂ機能に必要なデータ管理データ、Ｃ機能に必要なデータ管理データ）１０ｂを作成して、データアクセスプログラム１０ｃとともに、当該システムに組み込む。なお、プログラム要素とは、そのプログラムで使用される関数及びその属性、これらを分類するクラス、パッケージ、メソッド等である。
【００３９】
当該システムのＣＰＵ８（図２参照）が、例えば、Ａ機能に関するアプリケーションを実行した場合、ＳＷライブラリ１０ａのＡ機能のプログラム要素が実行され、Ａ機能部として動作する。このとき、Ａ機能部が、データアクセスプログラム１０ｃを実行し、Ａ機能に必要なデータ管理データを参照して格納位置を特定することで、データ集合体から、Ａ機能の実行に必要なデータが取得される。このようにすることで、効率的に所望のデータへアクセスすることができる。
【００４０】
図４の説明に戻る。
データアクセスプログラム作成部５は、データ定義情報解析部３からデータ定義情報の解析結果を入力し、この解析結果に基づいてデータアクセスプログラムを作成する（ステップＳＴ５）。ここで、データ定義情報の解析結果から得られる、アクセス対象のデータ集合体及びそのデータ構成を示す情報を用いて、当該データ集合体にデータアクセスするデータアクセスプログラムが作成される。
続いて、データアクセスプログラム出力部７は、データアクセスプログラム作成部５が作成したデータアクセスプログラムを入力すると、データアクセスプログラム出力定義情報を参照して、出力対象の定義内容に対応するデータアクセスプログラムを出力する（ステップＳＴ６）。
また、データアクセスプログラムは、データアクセスプログラム出力部７によって、例えば、図２の外部記憶装置１０へ出力され、保管される。データアクセスプログラムを実行する際は、ＣＰＵ８が外部記憶装置１０からメモリ９上に展開して実行される。
【００４１】
図１６は、データアクセスプログラムの一例を示す図であり、データ集合体から項目Ａのデータを取得するデータアクセスプログラムを示している。図１６に示す例では、１行目にアクセス対象のデータ集合体とその対象データＩＤ（データ番号ｉｄ）が設定され、２行目にｉｄ番目のデータの項目Ａへのオフセットが設定され、３行目には項目Ａのデータ長が設定される。そして、４行目にはｉｄ番目のデータにおける項目Ａのデータを取得することが記述されている。
【００４２】
データアクセスプログラム作成部５は、データ定義情報の解析結果として得られたアクセス対象のデータ集合体及びそのデータ構成から、図１６に示すような当該アクセス対象のデータ集合体における各データ（データ項目）を取得するためのデータアクセスプログラムを作成する。例えば、対象データＩＤ（データ番号ｉｄ）、固定長のデータ項目及びそのデータ長等については、データ定義情報の解析結果から取得された値が設定される。一方、可変長のデータ項目のデータ長やオフセットについては、データアクセスプログラムの実行時に、データ管理データを参照して設定される。
【００４３】
図１７は、データアクセスプログラム出力定義情報の一例を示す図である。図１７に示すように、データアクセスプログラム出力定義情報には、出力言語、出力タイプ、命名規則等が定義される。例えば、出力言語を「Ｊａｖａ」（登録商標；図中の記載も同様）とすると、Ｊａｖａで記述されたプログラムが出力対象となり、出力タイプを「インタフェースのみ出力」とすると、空実装のプログラムが出力される。また、命名規則を「自動」とすると、データアクセスプログラムのクラスや関数が自動的に命名される。これらの項目は、仕様によって変更可能である。なお、本情報は、ＸＭＬ形式やテキスト形式で記述することができる。
【００４４】
また、データアクセスプログラム出力定義情報は、データアクセスプログラム出力部７によって記憶内容の読み出しが可能なメモリに予め格納しておく。例えば、データアクセス装置１として機能するコンピュータに内蔵されるメモリを用いる。なお、入力装置１３を用いた外部からの操作によって、データアクセスプログラム出力定義情報を追加又は更新できるように構成してもよい。
【００４５】
図１８は、機能ごとに作成されたデータ管理データ及びデータアクセスプログラムの利用形態の概要を示す図である。図１８に示すように、ＳＷライブラリ１０ａに、Ａ機能、Ｂ機能及びＣ機能のプログラム要素が実装されており、機能ごとのデータ管理データ（Ａ機能に必要なデータ管理データ、Ｂ機能に必要なデータ管理データ、Ｃ機能に必要なデータ管理データ）１０ｂが、システムに組み込まれている場合を例に挙げる。
この場合、データアクセスプログラム出力部７が、データアクセスプログラム出力定義情報を参照して、データアクセスプログラム作成部５で作成されたデータアクセスプログラムを基に、機能ごとのデータアクセスプログラム（Ａアクセスプログラム、Ｂアクセスプログラム、Ｃアクセスプログラム）１０ｃを作成して、上記システムに組み込む。
【００４６】
当該システムのＣＰＵ８（図２参照）が、例えば、Ａ機能に関するアプリケーションを実行した場合、ＳＷライブラリ１０ａのＡ機能のプログラム要素が実行されて、Ａ機能部として動作する。このとき、Ａ機能部が、Ａ機能に対応するＡアクセスプログラムを実行すると、Ａ機能に必要なデータ管理データを参照して格納位置を特定することで、データ集合体から必要なデータが取得される。このように、機能ごとにデータ管理データ及びデータアクセスプログラムを使い分けることで、効率的かつ高速に所望のデータへアクセスすることができる。
【００４７】
以上のように、この実施の形態１によれば、ナビゲーション装置等の情報処理装置が、データ群（データ集合体）のデータ構成を示すデータ定義情報に基づいて当該データ群における実データの格納位置が規定されたデータ管理データと、データ定義情報に基づいてデータ構成が特定された実データへのアクセス機能を記述したデータアクセスプログラムとを備え、データ管理データを参照して実データの格納位置を特定し、データアクセスプログラムを実行して、データ群の実データにアクセスする。このようにすることで、効率的かつ高速に所望のデータにアクセスすることができる。
【００４８】
また、この実施の形態１によれば、実データを格納したデータ群のデータ構成を示すデータ定義情報を入力するデータ定義情報入力部２と、データ定義情報入力部２で入力されたデータ定義情報の内容を解析するデータ定義情報解析部３と、データ定義情報解析部３でデータ定義情報を解析して得られたデータ群のデータ構成から、当該データ群における実データの格納位置を規定したデータ管理データを作成するデータ管理データ作成部４と、データ定義情報解析部３でデータ定義情報を解析してデータ群におけるデータ構成が特定された実データへのアクセス機能を記述したデータアクセスプログラムを作成するデータアクセスプログラム作成部５と、データ管理データの出力対象内容が定義されたデータ管理データ出力定義情報を参照して、データ管理データ作成部４で作成されたデータ管理データから、出力対象内容を満たすデータ管理データを出力するデータ管理データ出力部６と、データアクセスプログラムの出力対象内容が定義されたデータアクセスプログラム出力定義情報を参照して、データアクセスプログラム作成部５で作成されたデータアクセスプログラムから、出力対象内容を満たすデータアクセスプログラムを出力するデータアクセスプログラム出力部７とを備える。このように構成することで、効率的、かつ高速に所望のデータにアクセスする際に使用されるデータ管理データ及びデータアクセスプログラムを自動作成することが可能である。
【００４９】
実施の形態２．
図１９は、この発明の実施の形態２によるナビゲーション装置の構成を示すブロック図である。図１９において、図１及び図２と同一の構成部には同一符号を付して説明を省略する。実施の形態２のナビゲーション装置１４は、実施の形態１のデータアクセス装置１を適用したナビゲーション装置であり、データアクセス装置１によって作成されたデータ管理データ１０ｂ及びデータアクセスプログラム１０ｃが組み込まれる。
【００５０】
ＳＷライブラリ１０ａには、ナビゲーション装置１４における各種の機能を実現するプログラム要素が登録される。例えば、ルート探索用に関するオブジェクトは、ルート探索における様々な機能を実現するプログラム要素からなる階層構造を有している。
地図データベース（地図ＤＢ）１０ｄは、地図データで構成したデータ集合体である。また、ナビゲーション装置１４は、図２に示すハードウェア構成で実現される。ここで、ＳＷライブラリ１０ａ、データ管理データ１０ｂ、データアクセスプログラム１０ｃ及び地図ＤＢ１０ｄは、外部記憶装置１０に格納される。
【００５１】
ナビ機能実行部１５は、ナビゲーションに関する各種の機能を実行する構成部であり、ＣＰＵ８が、ナビゲーションに関するアプリケーションを実行することで具現化される。このとき、ＣＰＵ８が、ＳＷライブラリ１０ａの特定の機能のプログラム要素を実行することで、当該機能を実行する機能部１５ａとして動作する。機能部１５ａは、データアクセスプログラム１０ｃを実行することで、データ管理データ１０ｂを参照しながら、地図ＤＢ１０ｄから必要なデータを取得する。
【００５２】
位置検出部１６は、ナビゲーション装置１４を搭載した車両の位置を検出する構成部であり、例えば、ＧＰＳ信号や、車速センサ、ジャイロセンサ等のセンサ群の測定値とマップマッチングなどを用いて自車の現在位置を求める。
データ定義情報１０ｅには、地図ＤＢ１０ｄの地図データ構成が定義されており、データ定義情報入力部２によって記憶内容が読み出し可能な記憶装置に格納される。
【００５３】
次に動作について説明する。
ここでは、一例として、地図ＤＢ１０ｄの地図図形データに対するデータ管理データの作成処理を示す。
図２０は、図１９の地図ＤＢにおけるポリゴン及びポイントのデータ構成を規定したＥＲ（Entity Relationship）図であり、地図図形としてポリゴンとポイントのデータ構成が定義されている。図２０に示すように、ポリゴンとポイントは、タイルに属しており、表示画面上の座標が設定されている。また、ポリゴンとポイントのデータは、パラメータｎｕｍＰｏｌｙｇｏｎ，ｎｕｍＰｏｉｎｔ，ｎｕｍＣｏｏｒｄに設定される値によって、データ数が変化するため、可変長データである。
【００５４】
図２１は、図２０の定義で構成される地図図形データを示す図であり、地図ＤＢ１０ｄにおける地図図形のデータ集合体を示している。なお、図２１のデータ構成は、例えば、図６に示したデータ集合体におけるデータ１〜４のうちの１つに相当する。
【００５５】
データ管理データ作成部４は、データ定義情報解析部３から入力したデータ定義情報の解析結果から、当該データ定義情報に定義された地図図形データに可変長データがあるか否かを判定する。上述したように、ポリゴンとポイントのデータは、可変長データであるので、データ管理データ作成部４は、地図ＤＢ１０ｄからポリゴンとポイントの実データを読み込んで、可変長データのデータサイズを解析する。
【００５６】
この解析により、データ管理データ作成部４は、当該データにおける可変長のデータ項目（図２１のパラメータｎｕｍＰｏｌｙｇｏｎ，ｎｕｍＰｏｉｎｔの値、ｎｕｍＣｏｏｒｄに設定されるポリゴン１，２及びポイント１，２の座標データ）及びそれらのデータ長を求めて、固定長のデータ項目（図２１のタイル、ポリゴン１，２、ポイント１，２のＩＤ）及びそれらのデータ長を合わせた実データ構成を特定し、これに基づいて各項目へのオフセット値を設定したデータ管理データを作成する。
【００５７】
データ管理データ出力部６は、データ管理データ作成部４が作成したデータ管理データを入力すると、データ管理データ出力定義情報に定義されたデータ管理データを出力し、ナビゲーション装置１４に組み込む。
図２２は、ポリゴン図形に対するデータ管理データを示す図であり、図２３は、ポイント図形に対するデータ管理データを示す図である。
例えば、データ管理データ出力定義情報として、地図描画を実行する際に必要なデータにポリゴンの座標（Ｃｏｏｒｄ）を定義することにより、データ管理データ出力部６が、データ管理データ作成部４が作成したデータ管理データからポリゴンの座標を抽出して、図２２に示すデータ管理データを作成する。
同様に、データ管理データ出力定義情報として、ポイントの座標（Ｃｏｏｒｄ）を定義することで、データ管理データ出力部６が、データ管理データ作成部４が作成したデータ管理データからポイントの座標を抽出して、図２３に示すデータ管理データを作成する。
【００５８】
図２４は、ポリゴン図形及びポイント図形の双方を管理するデータ管理データを示す図である。データ管理データ出力部６は、データ管理データ出力定義情報において、例えば地図描画を実行する際に必要なデータとして、ポリゴン及びポイントの座標が定義されている場合、図２４に示すように、ポリゴン及びポイントの座標データを同一のテーブルで管理するデータ管理データを作成する。このとき、データ管理データに図形種別カラムを設け、ポリゴンとポイントを識別する識別情報を設定してもよい。図２４の例では、図形種別“１”がポリゴン図形を示しており、図形種別“２”がポイント図形を示している。
【００５９】
上述のように作成したデータ管理データ１０ｂ及びデータアクセスプログラム１０ｃをナビゲーション装置１４に組み込む。
ルート探索や地図表示等の機能を実行する際、機能部１５ａが、データアクセスプログラム１０ｃを実行することで、データ管理データ１０ｂのオフセット値を参照しながら、地図ＤＢ１０ｄから必要な地図図形データを取得する。このようにすることで、効率的かつ高速に所望の地図データへアクセスすることができる。
【００６０】
また、上記実施の形態１と同様にデータ管理データ出力定義情報の内容を指定することにより、ルート探索や地図表示等のナビゲーション機能ごとのデータ管理データ１０ｂを作成してもよい。この場合、データ管理データ１０ｂには、ナビゲーション機能ごとに、その実行に必要なデータのアドレスあるいはオフセットが設定される。
このように、機能ごとにデータを分類管理することで、データのメンテナンスを容易に行うことができる。
【００６１】
さらに、ナビゲーション機能ごとのデータ管理データ１０ｂの作成に合わせ、上記実施の形態１と同様にデータアクセスプログラム出力定義情報の内容を指定することにより、ルート探索や地図表示等のナビゲーション機能ごとのデータアクセスプログラム１０ｃを作成してもよい。
この場合、ナビ機能実行部１５の機能部１５ａが、データアクセスプログラム１０ｃを実行することで、対応するナビゲーション機能のデータ管理データ１０ｂを参照して地図ＤＢ１０ｄへのアクセスが実行され、当該ナビゲーション機能に必要なデータが取得される。
【００６２】
図２５は実施の形態２によるナビゲーション装置の他の構成を示すブロック図である。これまでの説明では、データ管理データ１０ｂと地図ＤＢ１０ｄを、別個のデータとして設ける場合を示したが、図２５に示すナビゲーション装置１４Ａでは、データ管理データ１０ｂを地図ＤＢ１０ｄと一体化したデータとして備えている。
【００６３】
例えば、地図データのメッシュ単位にデータ管理データを設け、メッシュごとの処理に必要なデータを、当該メッシュに対応するデータ管理データを参照して、地図ＤＢ内での格納場所を特定することにより、別個のデータとした場合と比較して、さらに効率的かつ高速に所望の地図データへアクセスすることが可能である。
【００６４】
以上のように、この実施の形態２によれば、地図データの実データが格納された地図ＤＢ１０ｄのデータ構成を示すデータ定義情報１０ｅに基づいて地図ＤＢ１０ｄにおける実データの格納位置が規定されたデータ管理データ１０ｂと、データ定義情報１０ｅに基づいて地図ＤＢ１０ｄにおけるデータ構成が特定された実データへのアクセス機能を記述したデータアクセスプログラム１０ｃと、データ管理データ１０ｂを参照して実データの格納位置を特定し、データアクセスプログラム１０ｃを実行して、地図ＤＢ１０ｄの実データにアクセスする機能部１５ａとを備えたので、効率的かつ高速に所望の地図データへアクセスすることができる。
【００６５】
また、この実施の形態２によれば、データ管理データが、ナビゲーションの機能ごとに使用される実データの格納位置をそれぞれ規定したデータであるので、ナビゲーションの機能ごとに使用される地図データへ効率的かつ高速にアクセスできる。さらに、機能ごとに地図データが分類されることから、地図データのメンテナンスを容易に行うことができる。
【００６６】
さらに、この実施の形態２によれば、データアクセスプログラムが、ナビゲーションの機能ごとに使用される実データへのアクセス機能をそれぞれ記述したプログラムであるので、効率的かつ高速に機能ごとに対応した地図データへアクセスすることができる。
【００６７】
さらに、この実施の形態２によれば、図２５に示すように、データ管理データを地図ＤＢ１０ｄの一部に含まれるデータとしたので、別個のデータとした場合と比較してさらに効率的かつ高速に所望の地図データへアクセスすることができる。
【００６８】
実施の形態３．
図２６は、この発明の実施の形態３によるナビゲーション装置の構成を示すブロック図である。図２６において、図１、図２及び図１９と同一の構成部には同一符号を付して説明を省略する。実施の形態３におけるナビゲーション装置１４ａは、上記実施の形態２のナビゲーション装置１４の構成に、上記実施の形態１のデータアクセス装置１の構成である、データ定義情報入力部２、データ定義情報解析部３、データ管理データ作成部４、データアクセスプログラム作成部５、データ管理データ出力部６及びデータアクセスプログラム出力部７を備えている。
【００６９】
データ管理データ出力部６から出力されたデータ管理データは、図２に示した外部記憶装置１０等にデータ管理データ１０ｂとして保管され、データアクセスプログラム出力部７から出力されたデータアクセスプログラムも同様に、外部記憶装置１０等にデータアクセスプログラム１０ｃとして保管される。
ナビ機能実行部１５（機能部１５ａ）が、データ管理データ１０ｂを参照して実データの格納位置を特定し、データアクセスプログラム１０ｃを実行して地図ＤＢ１０ｄにアクセスすることにより、ナビゲーションに関する処理に使用する実データを取得する。
【００７０】
以上のように、実施の形態３によれば、ナビゲーション装置１４ａが、データアクセス装置１の構成を備えるので、上記実施の形態２のように、データアクセス装置１によるデータ管理データ１０ｂ及びデータアクセスプログラム１０ｃの組み込みを待つことなく、ナビゲーション装置１４ａ自身が、データ管理データ１０ｂ及びデータアクセスプログラム１０ｃを自動作成することができる。
【００７１】
実施の形態４．
この実施の形態４は、上記実施の形態２，３と同様にナビゲーション装置としての利用態様を示している。ナビゲーション装置では、例えば道路や建物といった地図を構成する地物が変更されると、これに応じて地図データベースを更新する必要がある。また、地図データベースの更新には、地図データの属性が追加されるようなデータ構造（データフォーマット）の変化を伴う場合がある。そこで、実施の形態４によるナビゲーション装置では、地図データベースに更新があると、更新対象の地物のデータを含む更新地図データベースのデータ構造を示すようにデータ定義情報を更新することで、地図データが更新されても効率的かつ高速なデータアクセスを可能としている。
【００７２】
図２７は、この発明の実施の形態４によるナビゲーション装置の構成を示すブロック図である。図２７において、図１、図２及び図１９と同一の構成部には同一符号を付して説明を省略する。実施の形態４のナビゲーション装置１４Ｂは、上記実施の形態３のナビゲーション装置１４ａの構成に、更新地図データベース（ＤＢ）１０ｆ、地図ＤＢ更新部１５ｂ及びデータ定義情報更新部１７を備える。なお、ナビゲーション装置１４Ｂは、図２に示すハードウェア構成で実現される。
【００７３】
更新地図ＤＢ１０ｆは、変更された地物の地図データを含む地図データベースである。ＳＷライブラリ１０ａ、データ管理データ１０ｂ、データアクセスプログラム１０ｃ、地図ＤＢ１０ｄ、データ定義情報１０ｅ及び更新地図ＤＢ１０ｆは、図２に示す外部記憶装置１０に格納される。
【００７４】
また、ＣＰＵ８が、ＳＷライブラリ１０ａにおける地図ＤＢ更新機能のプログラム要素を実行することで、当該機能を実行する地図ＤＢ更新部１５ｂとして動作する。
地図ＤＢ更新部１５ｂは、更新後のデータ定義情報を用いて作成されたデータアクセスプログラム１０ｃを実行し、更新後のデータ定義情報を用いて作成されたデータ管理データを参照して、地図ＤＢ１０ｄ及び更新地図ＤＢ１０ｆから地図データを取得することにより、ナビゲーション処理において更新後の地図データ内容を反映させる構成部である。
【００７５】
データ定義情報更新部１７は、既存の地図ＤＢ１０ｄと更新地図ＤＢ１０ｆとの変更箇所（更新対象の地物）の差分データを用いて、既存のデータ定義情報（地図ＤＢ１０ｄのデータ定義情報）を更新する構成部である。
【００７６】
次に動作について説明する。
（１）データ定義情報の更新
図２８は、実施の形態４のナビゲーション装置によるデータ定義情報の更新処理の流れを示すフローチャートである。
先ず、データ定義情報更新部１７は、既存の地図ＤＢ１０ｄの地図データを読み込み（ステップＳＴ２１）、続いて更新地図ＤＢ１０ｆの地図データを読み込む（ステップＳＴ２２）。例えば、地図ＤＢ１０ｄ及び更新地図ＤＢ１０ｆから位置が対応するタイル単位で、当該タイルに含まれる地図データを読み込む。
【００７７】
次に、データ定義情報更新部１７は、地図ＤＢ１０ｄ及び更新地図ＤＢ１０ｆから順次読み込んだ地図データを比較して、変更箇所（更新対象の地物）に対応する差分データを抽出する（ステップＳＴ２３）。例えば、地図ＤＢ１０ｄにおけるデータ項目Ａのデータサイズが２ｂｉｔであり、更新地図ＤＢ１０ｆのデータ項目Ａのデータサイズが４ｂｉｔになっている場合のように、対応するデータ間のデータサイズの変化を差分データとして特定する。なお、変更がない場合であっても、データサイズ変化＝０の差分データを抽出する。
【００７８】
データ定義情報更新部１７は、地図ＤＢ１０ｄの地図データと更新地図ＤＢ１０ｆの地図データとの差分データを抽出すると、上記地図データに対応するデータ定義情報を読み込み（ステップＳＴ２４）、上記差分データと上記データ定義情報とを比較して、当該データ定義情報における変更箇所を抽出する（ステップＳＴ２５）。
ここで、データ定義情報更新部１７は、データ定義情報に実質的な変更があるか否かを判定する（ステップＳＴ２６）。ここで、データサイズ変化＝０の差分データであって、当該データ定義情報に変更がない場合（ステップＳＴ２６；ＮＯ）、データ定義情報更新部１７は、当該地図データに対応するデータ定義情報の更新処理を終了する。
【００７９】
一方、データ定義情報に変更があれば（ステップＳＴ２６；ＹＥＳ）、データ定義情報更新部１７は、当該差分データを反映するようにデータ定義情報を更新する（ステップＳＴ２７）。例えば、上述のように、更新地図ＤＢ１０ｆのデータ項目Ａのデータサイズが４ｂｉｔになっている場合には、データ定義情報のデータ項目Ａを、更新地図ＤＢ１０ｆのデータ項目Ａのデータサイズ４ｂｉｔに変更する。
【００８０】
（２）データ管理データの更新
図２９は、実施の形態４のナビゲーション装置によるデータ管理データの更新処理の流れを示すフローチャートである。
データ定義情報更新部１７が、データ定義情報を更新する（ステップＳＴ３０）。この処理は、上述した図２８の処理に相当する。
続いて、データ定義情報入力部２が、更新されたデータ定義情報を入力する（ステップＳＴ３１）。データ定義情報入力部２に取得されたデータ定義情報は、データ定義情報入力部２からデータ定義情報解析部３へ出力される。
データ定義情報解析部３では、データ定義情報入力部２から入力したデータ定義情報の内容を解析する（ステップＳＴ３２）。このあと、データ管理データ出力部６は、データ管理データ出力定義情報を読み込む（ステップＳＴ３３）。
【００８１】
次に、データ管理データ作成部４は、データ定義情報解析部３から入力したデータ定義情報の解析結果から、当該データ定義情報で構造が定義された地図データ中に可変長データがあるか否かを判定する（ステップＳＴ３４）。地図データ中に可変長データがない場合（ステップＳＴ３４；ＮＯ）、データ管理データ作成部４は、当該地図データにおける固定長のデータ項目及びそのデータ長から各項目へのオフセットを特定し、これを設定したデータ管理データを作成する。この後、ステップＳＴ３５の処理へ移行する。
【００８２】
一方、データ中に可変長データがある場合（ステップＳＴ３４；ＹＥＳ）、データ管理データ作成部４は、可変長データ部のデータサイズを確認するため、更新地図ＤＢ１０ｆから当該地図データの実データを読み込み（ステップＳＴ３６）、可変長データ部のデータサイズを解析する（ステップＳＴ３７）。この解析により、データ管理データ作成部４は、当該地図データにおける可変長のデータ項目及びそのデータ長を求めて、固定長のデータ項目及びそのデータ長を合わせた実データ構成を特定し、これに基づいて各項目へのオフセット値を設定したデータ管理データを作成する。この後、ステップＳＴ３５の処理へ移行する。
【００８３】
ステップＳＴ３５において、データ管理データ出力部６は、データ管理データ作成部４が作成したデータ管理データ（更新地図ＤＢ１０ｆに対応するデータ管理データ）を入力し、データ管理データ出力定義情報を参照して出力対象の定義内容に対応するデータ管理データを出力し記憶装置（図２の外部記憶装置１０等）へ格納する。
【００８４】
（３）データアクセスプログラムの作成
更新地図ＤＢ１０ｆにおける地図データが新たなデータ項目を含む場合には、この項目のデータを取得するためのデータアクセスプログラムが必要となる。
この場合においても、上記実施の形態１と同様に、データアクセスプログラム作成部５が、更新後のデータ定義情報の解析結果として得られた更新地図ＤＢ１０ｆのデータ構成から、更新地図ＤＢ１０ｆの地図データ（データ項目）を取得するためのデータアクセスプログラムを作成する。
【００８５】
この後、データアクセスプログラム出力部７が、データアクセスプログラム作成部５に作成されたデータアクセスプログラムを入力し、データアクセスプログラム出力定義情報を参照して、出力対象の定義内容に対応するデータアクセスプログラムを出力し記憶装置（図２の外部記憶装置１０等）へ格納する。
【００８６】
（４）更新地図の反映
ルート探索や地図表示等の機能を実行する際に、ナビ機能実行部１５の地図ＤＢ更新部１５ｂが、更新後のデータ定義情報に基づき作成されたデータアクセスプログラム１０ｃを実行することで、更新後のデータ定義情報に基づき作成されたデータ管理データ１０ｂのオフセット値を参照して、更新地図ＤＢ１０ｆから必要な地図図形データを取得する。
【００８７】
以上のように、この実施の形態４によれば、地図ＤＢ１０ｄが更新地図１０ｆとして更新されると、更新されたデータ構成が反映されるようにデータ定義情報１０ｅを更新するデータ定義情報更新部１７を備える。この構成を有することにより、更新地図ＤＢ１０ｆに対応したデータ定義情報１０ｅを自動作成することができる。
【００８８】
また、この実施の形態４によれば、データ定義情報更新部１７が、既存の地図ＤＢ１０ｄにおける実データと更新地図ＤＢ１０ｆにおける実データとを比較して地図ＤＢ１０ｄからの変更箇所を抽出し、当該変更箇所のデータ構成が反映されるようにデータ定義情報１０ｅを更新する。このようにすることで、更新地図ＤＢ１０ｆに対応したデータ定義情報１０ｅを自動作成することができる。
【００８９】
さらに、この実施の形態４によれば、データ定義情報解析部３が、データ定義情報更新部１７によってデータ定義情報が更新されると、更新後のデータ定義情報の内容を解析し、データ管理データ作成部４が、データ定義情報解析部３で更新後のデータ定義情報を解析して得られた更新地図ＤＢ１０ｆのデータ構成から、更新地図ＤＢ１０ｆにおける実データの格納位置を規定したデータ管理データ１０ｂを作成し、データアクセスプログラム作成部５が、データ定義情報解析部３で更新後のデータ定義情報を解析して更新地図ＤＢ１０ｆにおけるデータ構成が特定された実データへのアクセス機能を記述したデータアクセスプログラム１０ｃを作成する。このように、更新地図ＤＢ１０ｆに対応したデータ定義情報１０ｅに更新されると、これに応じてデータ管理データ１０ｂ及びデータアクセスプログラム１０ｃが自動的に更新されることから、地図ＤＢが動的に更新されても、効率的かつ高速な地図データへのアクセスが可能である。
【００９０】
実施の形態５．
図３０は、この発明の実施の形態５によるナビゲーション装置の構成を示すブロック図である。図３０において、図１、図２、図１９及び図２７と同一の構成部には、同一符号を付して説明を省略する。実施の形態５のナビゲーション装置１４Ｃは、上記実施の形態４におけるナビゲーション装置１４Ｂの構成に更新情報データベース（ＤＢ）１０ｇを備え、データ定義情報更新部１７の代わりにデータ定義情報更新部１７ａを備える。なお、ナビゲーション装置１４Ｃは、図２に示すハードウェア構成で実現される。
【００９１】
更新情報ＤＢ１０ｇは、更新地図ＤＢ１０ｆの地図データにおける更新内容を定義した更新定義情報を格納するデータベースである。ＳＷライブラリ１０ａ、データ管理データ１０ｂ、データアクセスプログラム１０ｃ、地図ＤＢ１０ｄ、データ定義情報１０ｅ、更新地図ＤＢ１０ｆ及び更新情報ＤＢ１０ｇは、図２の外部記憶装置１０に格納される。
また、データ定義情報更新部１７ａは、更新情報ＤＢ１０ｇから読み出した更新定義情報を用いて、既存のデータ定義情報（地図ＤＢ１０ｄのデータ定義情報）を更新する構成部である。
【００９２】
次に動作について説明する。
図３１は、実施の形態５のナビゲーション装置によるデータ定義情報及びデータ管理データの更新処理の流れを示すフローチャートである。
先ず、データ定義情報更新部１７ａは、更新情報ＤＢ１０ｇの更新定義情報を読み込み（ステップＳＴ４０）、更新定義情報を解析する（ステップＳＴ４１）。
次に、データ定義情報更新部１７ａは、当該更新定義情報で更新内容が定義された地図データに対応するデータ定義情報を読み込み、更新定義情報の解析結果を反映するようにデータ定義情報を更新する（ステップＳＴ４２）。
【００９３】
図３２は、更新定義情報の一例を示す図である。図３２に示す更新定義情報では、対応する地図データにおける項目Ｃに続いてデータ長が８ｂｉｔの項目Ｆのデータを挿入する更新内容が定義されている。このように、更新定義情報には、更新内容として、例えば、更新対象のデータ項目、そのデータ長、及び、当該データ項目の地図データ（既存の地図ＤＢ１０ｄの地図データ）における挿入箇所等が定義される。
また、更新によってデータを削除する場合は、更新対象のデータ項目に削除対象の項目を設定し、データ長を０ｂｉｔを記述する。さらに、地図データのトップ位置にデータを挿入する場合には、挿入箇所に“０”を指定する。
【００９４】
図３３は、図３２の更新定義情報に基づくデータ定義情報の更新処理の概要を示す図である。図３２に示す更新定義情報は、上述したように、更新地図ＤＢ１０ｆの対応する地図データが、地図ＤＢ１０ｄの対応する地図データの項目Ｃに続いてデータ長が８ｂｉｔの項目Ｆのデータを挿入する更新がなされていることを示している。
そこで、データ定義情報更新部１７ａは、上記地図データに対応する既存のデータ定義情報を読み出し、項目Ｃに続いてデータ長が８ｂｉｔの項目Ｆのデータを挿入したデータ構成を示すデータ定義情報へ更新する。
【００９５】
この後、データ定義情報入力部２が、更新されたデータ定義情報を入力する（ステップＳＴ４３）。データ定義情報入力部２に取得されたデータ定義情報は、データ定義情報入力部２からデータ定義情報解析部３へ出力される。
データ定義情報解析部３では、データ定義情報入力部２から入力したデータ定義情報の内容を解析する（ステップＳＴ４４）。データ管理データ出力部６は、データ管理データ出力定義情報を読み込む（ステップＳＴ４５）。
【００９６】
次に、データ管理データ作成部４は、データ定義情報解析部３から入力したデータ定義情報の解析結果から、当該データ定義情報で構造が定義された地図データ中に可変長データがあるか否かを判定する（ステップＳＴ４６）。地図データ中に可変長データがない場合（ステップＳＴ４６；ＮＯ）、データ管理データ作成部４は、当該地図データにおける固定長のデータ項目及びそのデータ長から各項目へのオフセットを特定し、これを設定したデータ管理データを作成する。この後、ステップＳＴ４７の処理へ移行する。
【００９７】
一方、データ中に可変長データがある場合（ステップＳＴ４６；ＹＥＳ）、データ管理データ作成部４は、可変長データ部のデータサイズを確認するため、更新地図ＤＢ１０ｆから当該地図データの実データを読み込み（ステップＳＴ４８）、可変長データ部のデータサイズを解析する（ステップＳＴ４９）。この解析により、データ管理データ作成部４は、当該地図データにおける可変長のデータ項目及びそのデータ長を求めて、固定長のデータ項目及びそのデータ長を合わせた実データ構成を特定し、これに基づいて各項目へのオフセット値を設定したデータ管理データを作成する。この後、ステップＳＴ４７の処理へ移行する。
【００９８】
ステップＳＴ４７において、データ管理データ出力部６は、データ管理データ作成部４が作成したデータ管理データ（更新地図ＤＢ１０ｆに対応するデータ管理データ）を入力し、データ管理データ出力定義情報を参照して出力対象の定義内容に対応するデータ管理データを出力し記憶装置（図２の外部記憶装置１０等）へ格納する。
【００９９】
データアクセスプログラム作成部５及びデータアクセスプログラム出力部７による更新後のデータ定義情報に基づくデータアクセスプログラムの作成処理、及び、地図ＤＢ更新部１５ｂによる更新地図の反映処理については、上記実施の形態３と同様である。
【０１００】
以上のように、この実施の形態５によれば、データ定義情報更新部１７ａが、更新地図ＤＢ１０ｆにおける地図ＤＢ１０ｄからの変更内容を示す更新定義情報に基づいて、更新されたデータ構成が反映されるようにデータ定義情報１０ｅを更新する。このようにすることで、更新地図ＤＢ１０ｆに対応したデータ定義情報１０ｅを自動作成することができる。
【０１０１】
また、この実施の形態５によれば、データ定義情報解析部３が、データ定義情報更新部１７ａによってデータ定義情報が更新されると、更新後のデータ定義情報の内容を解析し、データ管理データ作成部４が、データ定義情報解析部３で更新後のデータ定義情報を解析して得られた更新地図ＤＢ１０ｆのデータ構成から、更新地図ＤＢ１０ｆにおける実データの格納位置を規定したデータ管理データ１０ｂを作成し、データアクセスプログラム作成部５が、データ定義情報解析部３で更新後のデータ定義情報を解析して更新地図ＤＢ１０ｆにおけるデータ構成が特定された実データへのアクセス機能を記述したデータアクセスプログラム１０ｃを作成する。このように、更新地図ＤＢ１０ｆに対応したデータ定義情報１０ｅに更新されると、これに応じてデータ管理データ１０ｂ及びデータアクセスプログラム１０ｃが自動的に更新されることから、地図ＤＢが動的に更新されても、効率的かつ高速な地図データへのアクセスが可能である。
【０１０２】
実施の形態６．
図３４は、この発明の実施の形態６によるナビゲーション装置の構成を示すブロック図である。図３４において、実施の形態６のナビゲーション装置１４Ｄは、上記実施の形態４の構成から、データ定義情報入力部２、データ定義情報解析部３、データ管理データ作成部４、データアクセスプログラム作成部５、データ管理データ出力部６、データアクセスプログラム出力部７及びデータ定義情報更新部１７を、データアクセス装置１Ａとして分離したものである。この構成において、ナビゲーション装置１４Ｄには、データアクセス装置１Ａによって作成あるいは更新されたデータ管理データ１０ｂ及びデータアクセスプログラム１０ｃが組み込まれる。
【０１０３】
また、図３５は、実施の形態６によるナビゲーション装置の他の構成を示すブロック図である。図３５において、ナビゲーション装置１４Ｅは、上記実施の形態５の構成から、データ定義情報入力部２、データ定義情報解析部３、データ管理データ作成部４、データアクセスプログラム作成部５、データ管理データ出力部６、データアクセスプログラム出力部７及びデータ定義情報更新部１７ａを、データアクセス装置１Ｂとして分離したものである。この構成において、ナビゲーション装置１４Ｅには、データアクセス装置１Ｂによって作成あるいは更新されたデータ管理データ１０ｂ及びデータアクセスプログラム１０ｃが組み込まれる。
【０１０４】
以上のように、この実施の形態６によれば、図３４又は図３５の構成とすることで、上記実施の形態３及び上記実施の形態４と同様の効果を得ることができる。
【０１０５】
なお、上記実施の形態３〜６において、データ管理データと地図ＤＢを、別個のデータとして設けた場合を示したが、図２５に示すようにデータ管理データを地図ＤＢと一体化したデータとして設けても構わない。
例えば、地図データのメッシュ単位にデータ管理データを設け、メッシュごとの処理に必要なデータを、当該メッシュに対応するデータ管理データを参照して、地図ＤＢ内での格納場所を特定することにより、別個のデータとした場合と比較して、さらに効率的かつ高速に所望の地図データへアクセスすることが可能である。
【手続補正２】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
地図データの実データが格納されたデータ群から取得した前記地図データの実データを用いて、ナビゲーションに関する処理を実行するナビゲーション装置において、
前記データ群のデータ構成を示すデータ定義情報に基づいて当該データ群における前記実データの格納位置が規定され、前記データ群とは別個に設けられたデータ管理データと、
前記データ定義情報に基づいて前記データ群におけるデータ構成が特定された前記実データへのアクセス機能を記述したデータアクセスプログラムと、
前記データ管理データを参照して前記実データの格納位置を特定し、前記データアクセスプログラムを実行して、前記データ群の前記実データにアクセスする機能部とを備えたことを特徴とするナビゲーション装置。
【請求項２】
前記データ管理データは、ナビゲーションの機能ごとに使用される前記実データの格納位置をそれぞれ規定したデータであることを特徴とする請求項１記載のナビゲーション装置。
【請求項３】
前記データアクセスプログラムは、ナビゲーションの機能ごとに使用される前記実データへのアクセス機能をそれぞれ記述したプログラムであることを特徴とする請求項２記載のナビゲーション装置。
【国際調査報告】
2011128948.tif 000038
2011128948.tif 000039