(57)【特許請求の範囲】
【請求項１】
地図に描画するオブジェクトの形状を表すデータが格納された形状情報を有するオブジェクトデータを記憶する地図情報記憶部と、
前記地図情報記憶部から読み出したオブジェクトデータの形状情報を用いて、前記オブジェクトの形状を算出して描画する形状算出部とを備え、
一方のオブジェクトと他方の１つ又は複数のオブジェクトとで互いに平行となる平行箇所と平行でない非平行箇所を有する場合に、前記１つ又は複数のオブジェクトの形状情報には、前記非平行箇所の形状を表すデータと、前記平行箇所の形状を表すデータの代わりに、前記一方のオブジェクト及びその前記平行箇所を指定する参照箇所指示データとを格納し、
前記形状算出部は、前記オブジェクトの形状情報を前記地図情報記憶部から取得し、前記取得した形状情報の前記非平行箇所の形状を表すデータから前記オブジェクトの非平行箇所の形状を算出し、前記取得した形状情報の前記参照箇所指示データで指定されたオブジェクトの形状情報を前記地図情報記憶部から取得し、取得した前記参照箇所指示データで指定されたオブジェクトの形状情報の中の前記参照箇所指示データが示す平行箇所のデータを用いて前記オブジェクトの前記平行箇所の形状を算出し、前記算出した平行箇所の形状と非平行箇所の形状とを結合して得られた形状を前記オブジェクトの形状として描画するようにしたことを特徴とする地図情報処理装置。
【請求項２】
前記形状算出部は、前記参照箇所指示データで指定された前記平行箇所の形状を表す形状点列を前記１つ又は複数のオブジェクトへ平行移動した点列として、前記１つ又は複数のオブジェクトにおける前記平行箇所の形状を算出することを特徴とする請求項１記載の地図情報処理装置。
【請求項３】
前記参照箇所指示データは、前記一方のオブジェクトにおける前記平行箇所と前記他方の１つ又は複数のオブジェクトにおける前記平行箇所との離隔量を示す離隔情報を有し、
前記形状算出部は、前記一方のオブジェクトの前記平行箇所の形状を表す形状点列を、前記参照箇所指示データの離隔情報が示す離隔量だけ、前記１つ又は複数のオブジェクトへ平行移動した点列として、当該１つ又は複数のオブジェクトにおける前記平行箇所の形状を算出することを特徴とする請求項２記載の地図情報処理装置。
【請求項４】
前記形状情報は、前記オブジェクトの形状を表す形状点列を所定向きに辿った先頭の形状点を、前記地図に設定した所定の座標系で一意に位置が決定される絶対座標で表し、前記先頭以降の形状点を、前記先頭の形状点から前記所定向きに形状点を辿った順に１つ前に辿った形状点の座標に対する相対座標で表したことを特徴とする請求項１または請求項２記載の地図情報処理装置。
【請求項５】
前記形状算出部は、前記１つ又は複数のオブジェクトにおける前記平行箇所の一端の形状点の絶対座標を算出し、前記参照箇所指示データで指定された前記一方のオブジェクトにおける前記平行箇所の形状を表す形状点の相対座標を用いて、前記１つ又は複数のオブジェクトの前記平行箇所の前記一端の形状点に続く各形状点の絶対座標を算出することを特徴とする請求項４記載の地図情報処理装置。
【請求項６】
前記一方のオブジェクトにおける前記平行箇所と前記他方の１つ又は複数のオブジェクトにおける前記平行箇所とのいずれか一方に対応する形状点がない場合に、当該対応する形状点がないオブジェクトの形状情報に当該形状点を示すデータを追加することを特徴とする請求項１から請求項５のうちのいずれか１項記載の地図情報処理装置。
【請求項７】
地図に描画するオブジェクトの形状を表すデータが格納された形状情報を有するオブジェクトデータを記憶する地図情報記憶部と、
前記地図情報記憶部から読み出したオブジェクトデータの形状情報を用いて、前記オブジェクトの形状を算出して描画する形状算出部とを備え、
一方のオブジェクトの一部の形状に線形変換を施すと、他方の１つ又は複数のオブジェクトが当該線形変換を施した形状に平行となる平行箇所を有する場合、前記１つ又は複数のオブジェクトの形状情報には、当該平行箇所の形状を表すデータの代わりに、前記線形変換の内容を示す線形変換情報を有し、前記一方のオブジェクトにおける前記一部の形状を指定する参照箇所指示データを格納し、
前記形状算出部は、前記参照箇所指示データで指定された前記一部の形状を表すデータを前記一方のオブジェクトの形状情報から取得し、当該形状に前記線形変換情報が示す線形変換を施したデータを用いて、前記１つ又は複数のオブジェクトにおける前記平行箇所の形状を算出することを特徴とする地図情報処理装置。
【請求項８】
前記形状算出部は、前記参照箇所指示データで指定された前記一部の形状に対して前記線形変換情報が示す線形変換を施した形状を表す形状点列を、前記１つ又は複数のオブジェクトへ平行移動した点列として、前記１つ又は複数のオブジェクトにおける前記平行箇所の形状を算出することを特徴とする請求項７記載の地図情報処理装置。
【請求項９】
地図に描画するオブジェクトの形状を表すデータが格納された形状情報を有するオブジェクトデータを記憶する地図情報記憶部と、
前記地図情報記憶部から読み出したオブジェクトデータの形状情報を用いて、前記オブジェクトの形状を算出して描画する形状算出部とを備え、
前記地図情報記憶部は、複数のオブジェクトのいずれかのオブジェクトの一部の形状に線形変換を施すと、前記複数のオブジェクトが当該線形変換を施した形状に平行となる平行箇所を有する場合に、前記線形変換を施すことで前記平行箇所に平行となる前記一部の形状に合同な形状を表すデータを格納する参照形状データを記憶し、
前記複数のオブジェクトの各形状情報には、前記平行箇所の形状を表すデータの代わりに、前記線形変換の内容を示す線形変換情報を有し、前記参照形状データを指定する参照箇所指示データを格納し、
前記形状算出部は、前記参照箇所指示データで指定された前記参照形状データにおける前記合同な形状を表すデータに前記線形変換情報が示す線形変換を施したデータを用いて、前記複数のオブジェクトにおける前記平行箇所の形状を算出することを特徴とする地図情報処理装置。
【請求項１０】
前記形状算出部は、前記参照箇所指示データで指定された前記参照形状データにおける前記合同な形状に対し前記線形変換情報が示す線形変換を施した形状を表す形状点列を、前記複数のオブジェクトのそれぞれへ平行移動した点列として、前記複数のオブジェクトにおける前記平行箇所の形状を算出することを特徴とする請求項９記載の地図情報処理装置。
【請求項１１】
前記線形変換を施した形状を表す形状点列から形状点を間引く間引き処理部と、前記線形変換を施した形状を補間する形状点を当該形状を表す形状点列に挿入する補間処理部とを備えたことを特徴とする請求項７または請求項９記載の地図情報処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、カーナビゲーション装置、携帯電話、携帯情報端末等の移動体又は固定されたコンピュータで使用される地図情報の地図情報処理装置に関するものである。
【背景技術】
【０００２】
従来の地図情報処理装置として、例えば特許文献１に開示されるものがある。
この装置では、複数の多角形を合成して地図表示を行うにあたり、合成する多角形を構成する辺のデータと、多角形が使用する辺を多角形ごとに指定するデータとを設けることで、複数の多角形で共通する辺のデータを重複して設けないようにしている。
このようにすることにより、複数の多角形で共通する辺のデータが重複してデータ量が増加することや、これらの辺のデータの表示処理の誤差によって、辺がずれて表示されることを防止することができる。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開平９−１５２８３３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
特許文献１に代表される従来の技術では、近接する２つの多角形において、互いに平行する同一形状の辺が存在していても、複数の多角形で共通する辺のデータではないため、各多角形の辺のデータとしてそれぞれ格納される。つまり、これらの辺のデータについては、たとえ同一形状であっても、辺データが重複することになる。
この場合、上述の多角形が非常に接近していると、これらの多角形をそれぞれ描画する際、互いに平行する同一形状の辺のデータに誤差が生じて、２つの多角形の辺が重なって表示される可能性があるという課題があった。
【０００５】
また、近接する２つの多角形の辺が完全には平行でなく、一方の多角形における辺を回転、拡大、縮小等の線形変換を施したものが、他方の多角形における辺になっている場合であっても、複数の多角形で共通する辺のデータではないため、各多角形の辺のデータとしてそれぞれ格納される。このように、回転、拡大、縮小等の処理を施せば、同一形状のデータとして処理し得る辺のデータであるにも拘わらず、それぞれが別個に格納されて、重複を防止できない。
【０００６】
この発明は、上記のような課題を解決するためになされたもので、オブジェクトの形状を表す形状情報のデータ量を削減し、かつ、近接した２つのオブジェクトで互いに平行する同一形状の辺の描画誤りを低減することができる地図情報処理装置を得ることを目的とする。
【課題を解決するための手段】
【０００７】
この発明に係る地図情報処理装置は、地図に描画するオブジェクトの形状を表すデータが格納された形状情報を有するオブジェクトデータを記憶する地図情報記憶部と、前記地図情報記憶部から読み出したオブジェクトデータの形状情報を用いて、前記オブジェクトの形状を算出して描画する形状算出部とを備え、一方のオブジェクトと他方の１つ又は複数のオブジェクトとで互いに平行となる平行箇所と平行でない非平行箇所を有する場合に、前記１つ又は複数のオブジェクトの形状情報には、前記非平行箇所の形状を表すデータと、前記平行箇所の形状を表すデータの代わりに、前記一方のオブジェクト及びその前記平行箇所を指定する参照箇所指示データとを格納し、前記形状算出部は、前記オブジェクトの形状情報を前記地図情報記憶部から取得し、前記取得した形状情報の前記非平行箇所の形状を表すデータから前記オブジェクトの非平行箇所の形状を算出し、前記取得した形状情報の前記参照箇所指示データで指定されたオブジェクトの形状情報を前記地図情報記憶部から取得し、取得した前記参照箇所指示データで指定されたオブジェクトの形状情報の中の前記参照箇所指示データが示す平行箇所のデータを用いて前記オブジェクトの前記平行箇所の形状を算出し、前記算出した平行箇所の形状と非平行箇所の形状とを結合して得られた形状を前記オブジェクトの形状として描画するようにしたものである。
【発明の効果】
【０００８】
この発明によれば、一方のオブジェクトと他方の１つ又は複数のオブジェクトとで互いに平行となる平行箇所を有する場合、１つ又は複数のオブジェクトの形状情報には、平行箇所の形状を表すデータの代わりに、一方のオブジェクトの平行箇所を指定する参照箇所指示データを格納し、当該参照箇所指示データで指定された平行箇所を含む一方のオブジェクトの形状情報を用いて１つ又は複数のオブジェクトの平行箇所の形状を算出する。このようにすることで、オブジェクトの形状を表す形状情報のデータ量を削減し、かつ、近接した２つのオブジェクトで互いに平行する同一形状の辺の描画誤りを低減することができるという効果がある。
【図面の簡単な説明】
【０００９】
【図１】この発明の実施の形態１による地図情報処理装置の構成を示すブロック図である。
【図２】図１の地図情報記憶部に格納された地図情報のデータ構造の一例を示す図である。
【図３】正規化座標でメッシュ内の点を表現した場合を示す図である。
【図４】図２の道路網データに含まれる道路データの一例を示す図である。
【図５】リンク列の一例を示す図である。
【図６】図２の背景データの一例を示す図である。
【図７】図６の背景データにおける面データの一例を示す図である。
【図８】参照箇所指示データの構成を示す図である。
【図９】図６の背景データにおける線データの一例を示す図である。
【図１０】面の形状の一部が道路の形状の一部と平行箇所を有する場合を説明するための図である。
【図１１】図１０の面Ａ０の形状情報を示す図である。
【図１２】面の形状の一部が他の面の形状の一部と平行箇所を有する場合を説明するための図である。
【図１３】図１２の面Ａ１の形状情報の一例を示す図である。
【図１４】図１２の面Ａ２の形状情報の一例を示す図である。
【図１５】面の形状の一部が線の一部と平行箇所を有する場合を説明するための図である。
【図１６】図１５の線ＬＮ１の形状情報の一例を示す図である。
【図１７】図１５の面Ａ３の形状情報の一例を示す図である。
【図１８】線の一部が面の形状の一部と平行箇所を有する場合を説明するための図である。
【図１９】図１８の面Ａ４の形状情報の一例を示す図である。
【図２０】図１８の線ＬＮ０の形状情報の一例を示す図である。
【図２１】図１の地図情報処理装置による地図描画処理に関する動作の流れを示すフローチャートである。
【図２２】面データ又は線データの描画処理の詳細を示すフローチャートである。
【図２３】形状算出及び形状点列データへの追加処理の詳細を示すフローチャートである。
【図２４】この発明の実施の形態２による地図情報処理装置で扱う参照箇所指示データの一例を示す図である。
【図２５】実施の形態２の仕様で表現した面Ａ１の形状情報を示す図である。
【図２６】実施の形態２の仕様で表現した面Ａ２の形状情報を示す図である。
【図２７】実施の形態２の仕様で表現した面Ａ４の形状情報を示す図である。
【図２８】実施の形態２の仕様で表現した線ＬＮ０の形状情報を示す図である。
【図２９】実施の形態２における面データ又は線データの描画処理の流れを示すフローチャートである。
【図３０】形状算出及び形状点列データへの追加処理の詳細を示すフローチャートである。
【図３１】一方のオブジェクトの平行箇所の端点に対応する形状点がもう一方のオブジェクトに存在しない場合を示す図である。
【図３２】実施の形態３における、面Ａ５に、面Ａ６の平行箇所の端点に対応する形状点を追加する処理を説明するための図である。
【図３３】面Ａ５の形状情報を示す図である。
【図３４】面Ａ６の形状情報を示す図である。
【図３５】面Ａ５の形状情報を示す図である。
【図３６】面Ａ６の形状情報を示す図である。
【図３７】実施の形態４における参照形状リストの一例を示す図である。
【図３８】実施の形態４における参照箇所指示データの構成を示す図である。
【図３９】実施の形態４の仕様で表現した面Ａ１の形状情報を示す図である。
【図４０】実施の形態４の仕様で表現した面Ａ２の形状情報を示す図である。
【図４１】実施の形態４における形状算出及び形状点列データへの追加処理の詳細を示すフローチャートである。
【図４２】この発明の実施の形態５による地図情報処理装置の構成を示すブロック図である。
【図４３】実施の形態５における参照箇所指示データの構成を示す図である。
【図４４】線形変換を施すことでオブジェクト間で平行な箇所が形成される場合を説明するための図である。
【図４５】実施の形態６における参照箇所指示データの構成を示す図である。
【発明を実施するための形態】
【００１０】
実施の形態１．
図１は、この発明の実施の形態１による地図情報処理装置の構成を示すブロック図である。図１において、入力部１は、使用者の操作又は指示に応じてプロセッサ４へ指示信号を与える操作スイッチ群であり、入力手段として機能する。入力手段としては、上記操作スイッチ群以外に、表示部５の表示面に装着されたタッチパネル、リモートコントロールスイッチ等を使用してもよい。
【００１１】
位置検出部２は、例えばＧＰＳ（Global Positioning System）受信機、車速センサ、加速度センサ、角速度センサ等を用いた位置検出手段であって、当該地図情報処理装置を搭載している移動体の現在位置を検出し、検出した現在位置を示す位置情報をプロセッサ４へ提供する。地図情報記憶部３は、例えば、地図情報記憶媒体として、ハードディスクを用いたハードディスクドライブで構成された地図情報記憶手段であり、地図情報を予め記憶しておく。
【００１２】
プロセッサ４は、入力部１を介して与えられた指示信号、位置検出部２によって取得された現在位置を示す位置情報、及び地図情報記憶部３から読み出した地図情報を用いて、各種の地図情報処理を行う地図情報処理手段として機能する。
また、プロセッサ４は、描画処理部７、描画メモリ８及び表示制御部９を有し、描画処理部７が所要の図形を描画メモリ８に描画して、表示制御部９が描画メモリ８の内容を表示部５に表示する。なお、描画処理部７は、描画処理において所要の図形を構成する多角形の形状を算出する形状算出部１０を備える。
なお、形状算出部１０を含む描画処理部７、描画メモリ８、及び表示制御部９は、プロセッサ４が、本発明の趣旨に従う地図情報処理用プログラムを実行することで、ハードウェアとソフトウェアが協働した具体的な手段として実現される。
【００１３】
各種の地図情報処理の内容としては、位置検出部２によって取得された現在位置を示す位置情報と地図情報記憶部３から読み出した地図情報とに基づいて、移動体の現在位置を推定するマップマッチング処理、出発地から目的地までの経路を算出する経路探索処理、経路探索処理で得られた経路に従って出発地から目的地までの案内を行う経路誘導処理、現在位置周辺の地図の表示処理、都市、道路、施設、住所、電話番号、交差点等の各種情報を検索する各種検索処理等が含まれる。
また、地図情報処理には、地図情報記憶部３から読み出した地図情報に基づいてマップマッチング処理で推定された現在位置を中心とする地図を描画する処理、この地図上に、地図情報処理の結果として得られた移動体の現在位置、経路探索処理で得られた好適な経路、その経路に従って出発地から目的地まで案内を行うための案内情報を描画する処理、各種入力情報の描画、検索で得られた各種情報の描画等の、描画処理部７を用いた描画処理が含まれる。
【００１４】
表示部５は、液晶ディスプレイからなる表示装置であって、上述した各種の描画処理で描画メモリ８に描画された内容を、表示制御部９の制御に従って表示する表示手段として機能する。音声出力部６は、プロセッサ４による各種の地図情報処理の結果として得られた情報を、音声で使用者に提示する構成部であり、経路探索処理によって得られた好適な経路に従って出発地から目的地までの案内を行う案内情報や、検索で得られた各種情報等を、音声で使用者に提示する。
【００１５】
この発明では、地図情報の作成範囲を、所定の間隔の緯線及び経線で囲まれた４辺形とする。また、地図情報は、情報の詳細さの度合いによって階層化される。地図情報の作成範囲は、各階層ごとに、所定の間隔の緯線及び経線で囲まれた領域であるメッシュに区画して管理される。
【００１６】
図２は、図１の地図情報記憶部に格納された地図情報のデータ構造の一例を示す図である。図２において、地図情報は、地図管理情報、各階層のメッシュに対応して設けた地図データ、経路計算データ及び検索データを有する。ここで、地図管理情報は、階層ごとの地図データ、経路計算データを管理するデータ、及び検索データを管理する情報を有し、各メッシュの地図データ、経路計算データの当該地図情報における格納位置及びデータサイズ等を階層ごとに有しており、各検索データの当該地図情報における格納位置及びデータサイズ等を有している。
【００１７】
地図データは、地図データヘッダ、道路網データ、背景データ、名称データ、経路誘導データからなる。地図データヘッダは、地図データ内の各データを管理する情報を有し、道路網データは、マップマッチングや道路の表示に使用する道路形状、道路の接続関係等を表す情報（道路データ）を有する。また、背景データは、河川や海等を表す面データ、線状の河川や鉄道等を表す線データ、及び施設シンボル等を表す点データを有する。名称データは、地図上の地物の名称を示すデータであり、対応する地物のデータに対応付けて登録される。経路誘導データは、交差点等での経路案内に要する情報を有する。経路計算データは、経路探索処理に適したデータ構造で道路網を表すデータである。
【００１８】
以下の説明では、道路データが表す個々の道路、背景データが表す個々の面、線、点を総称して、オブジェクトと呼ぶ。
また、個々の面、線、点に関する各種情報を格納したデータを、オブジェクトデータと呼び、図４で後述するリンクレコード、面レコード、線レコードがオブジェクトデータに相当する。
【００１９】
メッシュ内の点の位置は、正規化座標で表すものとする。
図３は、正規化座標でメッシュ内の点を表現した場合を示す図である。図３において、メッシュの左下隅を（０，０）、右上隅を（０ｘ１０００，０ｘ１０００）とし、経線の東方向をＸ座標の正方向とし、緯線の北方向をＹ座標の正方向とし、メッシュ内の点Ｐの座標を（ｘ，ｙ）で表している。ただし、０≦ｘ≦０ｘ１０００、０≦ｙ≦０ｘ１０００である。メッシュ内の地点と正規化座標とは一対一に対応するので、正規化座標は、メッシュ内での位置を一意に示すことができる。なお、先頭に０ｘを付した表記は、１６進表記であることを意味する。
このように、正規化座標のＸ座標及びＹ座標はそれぞれ２バイトで表され、正規化座標は４バイト長となる。
【００２０】
この実施の形態１では、右上隅を（０ｘ１０００，０ｘ１０００）としたが、例えば、（０ｘ８０００，０ｘ８０００）のように他の値としてもよい。
また、メッシュ内の点の位置を一意に表す座標系として、上記以外にその点の緯度及び経度を用いてもよく、メッシュ中央の点に対する相対緯度及び相対経度を用いてもよい。
なお、上記正規化座標、緯度及び経度、相対緯度及び相対経度のようにメッシュ内の点の位置を一意に表す座標を絶対座標と呼ぶ。
【００２１】
図４は、図２の道路網データに含まれる道路データの一例を示す図である。図４において、道路データは、道路上の地点を表すノードと、ノードとノードとを結ぶ道路を表すリンクとを用いて、メッシュ内の道路網を表すデータである。また、道路データは、道路データヘッダとリンク列レコードの並びからなる。
【００２２】
道路データヘッダは、道路データのデータサイズ、リンク列レコードの数等を表す情報を有する。リンク列レコードは、道路の連なりを表すリンクの並びであるリンク列を表すデータであり、リンク列レコードヘッダとリンクレコードの並びから構成される。
リンクレコードは、当該リンク列を構成するリンクを表すデータであり、道路の連なりの順に並べられる。リンク列レコードヘッダは、リンク列レコードのデータサイズ、リンクレコードの数、道路の種類等を表す情報を有する。
【００２３】
なお、リンクの両端のノードのうち、そのリンクが属するリンク列の先頭側に位置するノードをリンク先頭ノードと呼ぶ。また、便宜上、リンク列の終端に位置するノードも、リンク先頭ノードと呼ぶ。
【００２４】
リンクレコードは、リンクレコードヘッダと、リンク先頭ノードが同一の他のリンク列のリンク先頭ノードを指し示す接続情報と、当該リンクの形状を表す形状点の位置を表す形状点データの並びである形状情報とから構成される。
リンクレコードヘッダは、リンクレコードのデータサイズ、形状点の数、当該リンクの道路幅員、通行規制等の各種属性を表す情報を有する。
形状点データは、当該リンクにおいてリンク先頭ノードからもう一方のノードに向う順に並べられ、先頭の形状点データとしてリンク先頭ノードの位置を表す正規化座標が格納され、以降の形状点には、１つ前に位置する形状点に対する相対座標がその形状点データとして格納される。
正規化座標は、Ｘ座標とＹ座標の順に格納され、相対座標のＸ成分を相対Ｘ座標と呼び、Ｙ成分を相対Ｙ座標と呼ぶ。相対Ｘ座標と相対Ｙ座標は、それぞれ１バイトの整数で表されるので、相対座標は２バイト長となる。また、相対座標は、相対Ｘ座標、相対Ｙ座標の順に地図情報記憶部３に格納される。
【００２５】
図５は、リンク列の一例を示す図である。図５において、リンク列０は、図４のリンク列レコード０に対応しており、リンクＬ００〜Ｌ０２を、リンクＬ００、リンクＬ０１、リンクＬ０２の順に並べたものである。
リンクＬ００の両端のノードは、ノードＮ００とノードＮ０１であり、リンクＬ０１の両端のノードは、ノードＮ０１とノードＮ０２であり、リンクＬ０２の両端のノードは、ノードＮ０２とノードＮ０３である。
また、リンクＬ００のリンク先頭ノードはノードＮ００であり、リンクＬ０１のリンク先頭ノードはノードＮ０１、リンクＬ０２のリンク先頭ノードはノードＮ０２である。
なお、リンク列０の終端のノードＮ０３もリンク先頭ノードとする。
【００２６】
リンク列１は、図４のリンク列レコード１に対応しており、リンクＬ１０，Ｌ１１を、リンクＬ１０、リンクＬ１１の順に並べたものである。リンクＬ１０の両端のノードは、ノードＮ１０とノードＮ１１であり、リンクＬ１１の両端のノードは、ノードＮ１１とノードＮ１２である。また、リンクＬ１０のリンク先頭ノードはノードＮ１０であり、リンクＬ１１のリンク先頭ノードはノードＮ１１である。なお、リンク列１の終端のノードＮ１２もリンク先頭ノードとする。
【００２７】
図５において、ノードＮ０１とノードＮ１１とは同一地点にある。つまり、リンク列０とリンク列１は、この地点で交差しており、ノードＮ０１とノードＮ１１とは同一ノードである。この場合に、リンク列０のリンクＬ０１に関するリンクレコードの接続情報は、リンクＬ０１のリンク先頭ノードＮ０１と同一のノードであるリンク列１のノードＮ１１を示している。また、リンク列１のリンクＬ１１に関するリンクレコードの接続情報は、リンクＬ１１のリンク先頭ノードＮ１１と同一のノードであるリンク列０のノードＮ０１を示している。このように、交差点において交差するリンク列を辿るように接続情報を設けることにより、交差点において交差するリンク列を全て求めることができる。
【００２８】
リンク列０の形状情報には、例えば、リンクＬ０１の形状点として、形状点Ｎ０１，Ｓ０１１〜Ｓ０１７が格納される。ここで、ノードＮ０１の正規化座標を（Ｘ０１０，Ｙ０１０）、Ｓ０１ｉの正規化座標を（Ｘ０１ｉ，Ｙ０１ｉ）（ｉ＝１〜７）とするとき、先頭の形状点データ０として、正規化座標（Ｘ０１０，Ｙ０１０）を格納し、形状点Ｓ０１ｉの形状点データｉとして、相対座標（Ｘ０１ｉ−１−Ｘ０１ｉ，Ｙ０１ｉ−１−Ｙ０１ｉ）（ｉ＝１〜７）を格納する。他のリンクの形状点データの場合も同様にして形状情報に格納される。形状情報における形状点データの並び順を形状点番号と呼ぶ。
【００２９】
なお、図４におけるリンクレコード０＿３は、リンクレコードヘッダとノードＮ０３の接続情報とから構成されており、形状情報は持たない。他のリンク列に対しても同様に、終端ノードに対するリンクレコードを設ける。
【００３０】
また、道路データにおけるリンク列レコードの並び順をリンク列番号と呼び、リンク列レコードにおけるリンクレコードの並び順をリンク番号と呼び、リンク列番号とリンク番号を指定することで、特定のリンク、リンクレコードを指定することができる。例えば、図４において、リンク列番号が“０”で、リンク番号が“１”であると、リンクレコード０＿１が特定され、図５に示すリンクＬ０１が特定される。
【００３１】
図６は、図２の背景データの一例を示す図である。図６に示すように、背景データは、面データ、線データ、点データ、及び、これらのデータを管理するための背景ヘッダから構成される。
【００３２】
図７は、図６の背景データにおける面データの一例を示す図である。面データは、当該メッシュに存在する各面に対応して設けた面レコードの並びと、面レコードの数等を示す面ヘッダとから構成される。面レコードの並び順を面レコード番号と呼び、面を特定するために使用する。以下では、面レコード番号をＭＡ（＝０，１，２，３，４，・・・）で表す。なお、図７において、ＫＡ＝面レコードの数−１である。
【００３３】
面レコードは、面レコードのデータサイズ、面の種類、形状点データの数等を示す面レコードヘッダと、面の形状を表す形状情報とから構成される。形状情報は、面を構成する形状点の位置を表すための形状点データの並びから構成され、形状点データは、面に付与された所定の向きに形状点を辿る順に格納される。
なお、最初に格納された形状点を始点、最後に格納された形状点を終点と呼ぶ。
実施の形態１では、上記所定の向きを右回りとするが、左回りとしてもよく、面ヘッダに向きの情報を設け、多角形ごとに向きを定めてもよい。
【００３４】
始点の形状点データには、始点の正規化座標が格納される。正規化座標は、Ｘ座標、Ｙ座標の順に格納する。始点よりも後に並んだ形状点については、１つ前の形状点に対する相対座標をその形状点データとして格納する。上述したように、相対座標のＸ成分である相対Ｘ座標とＹ成分である相対Ｙ座標は、それぞれ１バイトの整数で表すことから、相対座標は２バイト長となる。相対座標は、相対Ｘ座標、相対Ｙ座標の順に格納される。
また、相対Ｘ座標、相対Ｙ座標は、それぞれ−１２７〜１２７の値をとるようにする。
形状情報における形状点データの並び順を形状点番号と呼ぶ。
【００３５】
この発明では、当該面の形状が他のオブジェクトの形状と平行する箇所を有するとき、平行箇所を構成する形状点列に対して１つの形状点データを設け、その形状点データとして参照箇所指示データを格納する。
【００３６】
図８は、上述した参照箇所指示データの構成を示す図である。図８に示すように、参照箇所指示データは、相対Ｘ座標、オブジェクト種別、オブジェクト識別子、平行箇所開始情報、及び平行箇所終了情報から構成される。
相対Ｘ座標は、参照箇所指示データを他の形状点データから区別するための情報であって、参照箇所指示データの先頭の１バイトに設けられる。相対Ｘ座標としては、例えば、値を“−１２８”とする。このように、相対Ｘ座標の値を“−１２８”とすることで、他の形状点データの相対座標（−１２７〜１２７の値をとる）と区別できる。
【００３７】
オブジェクト種別は、自身のオブジェクトとの間で平行箇所がある、他のオブジェクトの種類（道路、面、線）を示す情報である。
オブジェクト識別子は、オブジェクト種別で指定された種類のオブジェクトの中で平行箇所を含むオブジェクトを指定する。オブジェクト種別が道路のときのオブジェクト識別子は、該当するリンク列番号とリンク番号を示す。また、オブジェクト種別が面のときのオブジェクト識別子は、該当する面レコード番号を示す。オブジェクト種別が線のときのオブジェクト識別子は、該当する線レコード番号を示す。
【００３８】
平行箇所開始情報は、オブジェクト種別とオブジェクト識別子で指定されたオブジェクト（平行箇所を有する相手のオブジェクト）において、平行箇所の開始点となる形状点を示す情報であり、平行箇所の開始点となる形状点の形状点番号が設定される。
平行箇所終了情報は、オブジェクト種別とオブジェクト識別子で指定されたオブジェクトにおいて、平行箇所が終了する形状点を示す情報であり、平行箇所の終了点となる形状点の形状点番号が設定される。
なお、平行箇所終了情報を、形状点番号でなく、平行箇所の形状点の数としてもよい。この場合、平行箇所開始情報に設定された形状点番号が、平行箇所終了情報に設定された形状点番号よりも大きいときは、平行箇所の形状点の数を負とする。
【００３９】
図９は、図６の背景データにおける線データの一例を示す図である。線データは、当該メッシュに存在する各線に対応して設けた線レコードの並びと、線レコードの数等を示す線ヘッダとから構成される。ここで、線レコードの並び順を線レコード番号と呼び、線を特定するために使用する。以下では、線レコード番号をＭＬ（＝０，１，２，３，４，・・・）で表す。なお、図９において、ＫＬ＝線レコードの数−１である。
【００４０】
また、線レコードは、線レコードのデータサイズ、線の種類、形状点データの数等を示す線レコードヘッダと、線の形状を表す形状情報とから構成される。
形状情報は、線を形作る形状点の位置を表す形状点データの並びから構成され、形状点データは、折れ線に付与された所定の向きで形状点を辿る順に格納される。
なお、最初に格納された形状点を始点、最後に格納された形状点を終点と呼ぶ。
【００４１】
始点の形状点データには、始点の正規化座標が格納される。正規化座標は、Ｘ座標、Ｙ座標の順に格納する。始点より後に並んだ形状点については、１つ前の形状点に対する相対座標をその形状点データとして格納する。
上述したように、相対座標のＸ成分である相対Ｘ座標とＹ成分である相対Ｙ座標とは、それぞれ１バイトの整数で表されるので、相対座標は２バイト長となる。相対座標は、相対Ｘ座標、相対Ｙ座標の順に格納される。
また、相対Ｘ座標、相対Ｙ座標は、それぞれ−１２７〜１２７の値をとるようにする。
形状情報における形状点データの並び順を形状点番号と呼ぶ。
【００４２】
この発明では、当該線の形状が他のオブジェクトの形状と平行する箇所を有するとき、平行箇所を構成する形状点列に対して１つの形状点データを設けて、面の場合と同様に、その形状点データとして、図８に示す参照箇所指示データを格納する。
【００４３】
図１０は、面の形状の一部が道路の形状の一部と平行箇所を有する場合を説明するための図である。図１０において、面Ａ０は、図７に示す面レコード０に対応する。また、面Ａ０の形状点Ａ０３〜Ａ０７は、図５に示すリンク列０のリンクＬ０１における形状点Ｓ０１２〜Ｓ０１６と平行になっている。従って、形状点Ｓ０１２＋ｎ（ｎ＝０，１，・・・，４）の正規化座標から形状点Ａ０３＋ｎの正規化座標を減じて得られる離隔量は、全て同一である。
【００４４】
図１１は、図１０の面Ａ０の形状情報を示す図である。図１１に示すように、面Ａ０の形状情報には、形状点ＡＰ００の形状点データ０として、形状点ＡＰ００の正規化座標が格納され、形状点ＡＰ０１の形状点データ１として、形状点ＡＰ００に対する形状点ＡＰ０１の相対座標が格納され、形状点ＡＰ０２の形状点データ２として、形状点ＡＰ０１に対する形状点ＡＰ０２の相対座標が格納され、形状点ＡＰ０３の形状点データ３として、形状点ＡＰ０２に対する形状点ＡＰ０３の相対座標が格納される。
形状点データ３に続いて、形状点データ４として、形状点ＡＰ０３〜ＡＰ０７に関する参照箇所指示データが格納される。この参照箇所指示データには、相対Ｘ座標として、“−１２８”が設定され、オブジェクト種別として、平行箇所を有する相手の種別である“道路”が設定され、オブジェクト識別子として、当該道路を特定するリンク列番号“０”及びリンク番号“１”が設定される。さらに、平行箇所開始情報として、面Ａ０の向きで道路側の平行箇所開始点となる形状点（Ｓ０１２）の形状点番号“２”が設定され、平行箇所終了情報として、面Ａ０の向きで道路側の平行箇所終了点となる形状点（Ｓ０１６）の形状点番号“６”が設定される。
さらに、形状点データ４に続いて、形状点ＡＰ０８の形状点データ５である、形状点ＡＰ０７に対する形状点ＡＰ０８の相対座標が格納され、形状点ＡＰ０９の形状点データ６である、形状点ＡＰ０８に対する形状点ＡＰ０９の相対座標が格納される。
【００４５】
図１２は、面の形状の一部が他の面の形状の一部と平行箇所を有する場合を説明するための図である。図１２において、面Ａ１は、図７の面レコード１に対応し、面Ａ２は、図７における面レコード２（ＭＡ＝２）に対応する。面Ａ２における形状点ＡＰ２２〜ＡＰ２５が存在する部分が、面Ａ１の形状点ＡＰ１５〜ＡＰ１２が存在する部分と平行になっている。従って、形状点ＡＰ１５−ｎ（ｎ＝０，１，２，３）の正規化座標から形状点ＡＰ２２＋ｎの正規化座標を減じて得られる各離隔量は全て同一である。
【００４６】
図１３は、図１２の面Ａ１の形状情報の一例を示す図である。図１３に示すように、面Ａ１の形状情報には、形状点ＡＰ１０の形状点データ０として、形状点ＡＰ１０の正規化座標が格納される。これに続き、形状点ＡＰ１１の形状点データ１として形状点ＡＰ１０に対する形状点ＡＰ１１の相対座標が格納され、以降同様にｎ＝２〜６に対して、形状点ＡＰ１ｎの形状点データｎとして形状点ＡＰ１ｎ−１に対する形状点ＡＰ１ｎの相対座標が格納される。
【００４７】
図１４は、図１２の面Ａ２の形状情報の一例を示す図である。図１４に示すように、面Ａ２の形状情報には、形状点ＡＰ２０の形状点データ０として、形状点ＡＰ２０の正規化座標が格納される。これに続き、形状点ＡＰ２１の形状点データ１として形状点ＡＰ２０に対する形状点ＡＰ２１の相対座標が格納され、形状点ＡＰ２２の形状点データ２として形状点ＡＰ２１に対する形状点ＡＰ２２の相対座標が格納される。
この後、形状点データ３として形状点ＡＰ２２〜ＡＰ２５に関する参照箇所指示データが格納される。参照箇所指示データには、相対Ｘ座標として、“−１２８”が設定され、オブジェクト種別として、平行箇所を有する相手（面Ａ１）の種別である“面”が設定され、オブジェクト識別子として、面Ａ１の面レコード番号である“１”が設定され、平行箇所開始情報として、面Ａ２の向きで面Ａ１側の平行箇所開始点となる形状点（ＡＰ１５）の形状点番号“５”が設定され、平行箇所終了情報として、面Ａ２の向きで面Ａ１側の平行箇所終了点となる形状点（ＡＰ１２）の形状点番号“２”が設定される。
上記参照箇所指示データに続いて、面Ａ２の形状情報には、形状点ＡＰ２６の形状点データ４として、形状点ＡＰ２５に対する形状点ＡＰ２６の相対座標が格納される。
【００４８】
図１５は、面の形状の一部が線の一部と平行箇所を有する場合を説明するための図である。図１５において、線ＬＮ１は、図９に示す線レコード１に対応している。また、面Ａ３は、図７における面レコード３（ＭＡ＝３）に対応する。
面Ａ３における形状点ＡＰ３２〜ＡＰ３５が存在する部分が、線ＬＮ１における形状点ＬＰ１５〜ＬＰ１２が存在する部分と平行になっている。従って、形状点ＬＰ１５−ｎ（ｎ＝０，１，２，３）の正規化座標から形状点ＡＰ３２＋ｎの正規化座標を減じて得られる離隔量は全て同一である。
【００４９】
図１６は、図１５の線ＬＮ１の形状情報の一例を示す図である。図１６に示すように、線ＬＮ１の形状情報には、形状点ＬＰ１０の形状点データ０として、形状点ＬＰ１０の正規化座標が格納される。これに続いて、形状点ＬＰ１１の形状点データ１として、形状点ＬＰ１０に対する形状点ＬＰ１１の相対座標が格納され、以降同様にｎ＝２〜６に対して、形状点ＬＰ１ｎの形状点データｎとして、形状点ＬＰ１ｎ−１に対する形状点ＬＰ１ｎの相対座標が格納される。
【００５０】
図１７は、図１５の面Ａ３の形状情報の一例を示す図である。図１７に示すように、面Ａ３の形状情報には、形状点ＡＰ３０の形状点データ０として、形状点ＡＰ３０の正規化座標が格納される。これに続き、形状点ＡＰ３１の形状点データ１として形状点ＡＰ３０に対する形状点ＡＰ３１の相対座標と、形状点ＡＰ３２の形状点データ２として形状点ＡＰ３１に対する形状点ＡＰ３２の相対座標が格納される。
この後、形状点データ３として形状点ＡＰ３２〜ＡＰ３５に関する参照箇所指示データが格納される。参照箇所指示データには、相対Ｘ座標として、“−１２８”が設定され、オブジェクト種別として、平行箇所を有する相手（線ＬＮ１）の種別である“線”が設定され、オブジェクト識別子として、線ＬＮ１の線レコード番号である“１”が設定され、平行箇所開始情報として、面Ａ３の向きで線ＬＮ１側の平行箇所開始点となる形状点（ＬＰ１５）の形状点番号“５”が設定され、平行箇所終了情報として、面Ａ３の向きで線ＬＮ１側の平行箇所終了点となる形状点（ＬＰ１２）の形状点番号“２”が設定される。
上記参照箇所指示データに続いて、面Ａ３の形状情報には、形状点ＡＰ３６の形状点データ４として、形状点ＡＰ３５に対する形状点ＡＰ３６の相対座標が格納される。
【００５１】
図１８は、線の一部が面の形状の一部と平行箇所を有する場合を説明するための図である。図１８において、線ＬＮ０は、図９に示す線レコード０に対応している。面Ａ４は、図７における面レコード４（ＭＡ＝４）に対応する。
面Ａ４における形状点ＡＰ４２〜ＡＰ４５が存在する部分が、線ＬＮ０における形状点ＬＰ０２〜ＬＰ０５が存在する部分と平行になっている。従って、形状点ＡＰ４２＋ｎ（ｎ＝０，１，２，３）の正規化座標から形状点ＬＰ０２＋ｎの正規化座標を減じて得られる離隔量は全て同一である。
【００５２】
図１９は、図１８の面Ａ４の形状情報の一例を示す図である。図１９に示すように、面Ａ４の形状情報には、形状点ＡＰ４０の形状点データ０として、形状点ＡＰ４０の正規化座標が格納される。これに続いて、形状点ＡＰ４１の形状点データ１として、形状点ＡＰ４０に対する形状点ＡＰ４１の相対座標が格納され、以降同様にｎ＝２〜６に対して、形状点ＡＰ４ｎの形状点データｎとして、形状点ＡＰ４ｎ−１に対する形状点ＡＰ４ｎの相対座標が格納される。
【００５３】
図２０は、図１８の線ＬＮ０の形状情報の一例を示す図である。図２０に示すように、線ＬＮ０の形状情報には、形状点ＬＰ００の形状点データ０として、形状点ＬＰ００の正規化座標が格納される。これに続いて、形状点ＬＰ０１の形状点データ１として形状点ＬＰ００に対する形状点ＬＰ０１の相対座標と、形状点ＬＰ０２の形状点データ２として形状点ＬＰ０１に対する形状点ＬＰ０２の相対座標が格納される。
この後、形状点データ３として形状点ＬＰ０２〜ＬＰ０５に関する参照箇所指示データが格納される。参照箇所指示データには、相対Ｘ座標として、“−１２８”が設定され、オブジェクト種別として、平行箇所を有する相手（面Ａ４）の種別である“面”が設定され、オブジェクト識別子として、面Ａ４の面レコード番号である“４”が設定され、平行箇所開始情報として線ＬＮ０の方向で面Ａ４側の平行箇所開始点となる形状点（ＡＰ４２）の形状点番号“２”が設定され、平行箇所終了情報として線ＬＮ０の方向で面Ａ４側の平行箇所終了点となる形状点（ＬＰ４５）の形状点番号“５”が設定される。
上記参照箇所指示データに続いて、線ＬＮ０の形状情報には、形状点ＬＰ０６の形状点データ４として、形状点ＬＰ０５に対する形状点ＬＰ０６の相対座標が格納され、形状点ＬＰ０７の形状点データ５として、形状点ＬＰ０６に対する形状点ＬＰ０７の相対座標が格納される。
【００５４】
上記の場合の他、線の一部が道路形状の一部と平行な箇所を有する場合や、線の一部が他の線の一部と平行な箇所を有する場合についても、形状情報は、上記と同様なデータ構成となる。
【００５５】
上述したように、実施の形態１では、オブジェクト間で形状の一部に平行箇所を有する場合に、一方のオブジェクトで当該平行箇所の形状点の相対座標を格納しないので、オブジェクトのデータ量を削減できる。
また、平行箇所の形状点の相対座標の代わりに上記一方のオブジェクトに参照箇所指示データを設けることで、他方のオブジェクトの平行箇所の形状点の相対座標を元に、当該一方のオブジェクトの平行箇所の形状点の正規化座標を算出することができる。
従って、平行箇所の形状点の相対座標に相当するデータ量を削減しつつ、参照箇所指示データを設けたオブジェクトの形状を描画することが可能である。平行箇所の形状を描画する処理の詳細は、図２１、図２２、図２３を用いて後述する。
【００５６】
なお、上述の例では、平行箇所を有するオブジェクトが１対１の場合を示したが、平行箇所を有するオブジェクトが１対Ｎ（複数）であっても構わない。この場合、１つのオブジェクトを、参照箇所指示データで平行箇所が参照される参照先のオブジェクトとし、残りのＮ個のオブジェクトを、自身の平行箇所における形状点の正規化座標を算出する際、当該参照箇所指示データで指示される上記参照先のオブジェクトの平行箇所を参照する参照元のオブジェクトとする。つまり、参照先のオブジェクトの形状情報に平行箇所の形状点の相対座標を格納し、参照元となる残りのＮ個のオブジェクトの形状情報には、当該平行箇所を参照する参照箇所指示データをそれぞれ設ける。このようにすることで、オブジェクトのデータ量をさらに削減することが可能である。
【００５７】
次に動作について説明する。
図２１は、図１の地図情報処理装置による地図描画処理に関する動作の流れを示すフローチャートである。以降では、マップマッチング処理で得られた現在位置を含む所定の階層のメッシュを中心とした所定数のメッシュの地図を描画する場合を述べる。
【００５８】
プロセッサ４は、マップマッチング処理で得られた現在位置を含む所定の階層のメッシュを中心とした所要のメッシュを決定する（ステップＳＴ１００）。
ステップＳＴ１１０において、プロセッサ４の描画処理部７は、ステップＳＴ１００で決定された所定の階層の所要のメッシュのうち、１つのメッシュの地図データを地図情報記憶部３から読み取る。
【００５９】
描画処理部７は、ステップＳＴ１１０で読み取った地図データの背景データの面データ、線データ及び点データに従って、面、線、点を描画メモリ８に描画する（ステップＳＴ１２０）。
【００６０】
次に、描画処理部７は、ステップＳＴ１１０で読み取った地図データの道路網データにおける道路データの各リンク列レコードの形状情報に従って、道路を描画メモリ８に描画する（ステップＳＴ１３０）。
続いて、描画処理部７は、ステップＳＴ１１０で読み取った地図データの名称データに従って、名称を描画メモリ８に描画する（ステップＳＴ１４０）。
【００６１】
ステップＳＴ１５０において、描画処理部７は、ステップＳＴ１００で決定した所要のメッシュの全ての地図データの描画が終了したか否かを判定する。ここで、全ての地図データの描画が終了していれば（ステップＳＴ１５０；ＹＥＳ）、ステップＳＴ１６０の処理へ移行する。また、全ての地図データの描画が終了していなければ（ステップＳＴ１５０；ＮＯ）、描画処理部７は、ステップＳＴ１１０の処理へ戻り、残りのメッシュの地図データの描画を行う。
【００６２】
ステップＳＴ１６０では、プロセッサ４の表示制御部９が、上述した一連のステップの処理で描画メモリ８に描画された地図を表示部５に表示する。
【００６３】
図２２は、面データ又は線データの描画処理の詳細を示すフローチャートであり、図２１のステップＳＴ１２０の処理に相当する。
先ず、描画処理部７が、面データの描画時には、本ステップに来るたびに地図情報記憶部３に記憶される面データから面レコードを１つずつ取り出し、線データの描画時には、本ステップに来るたびに地図情報記憶部３に記憶される線データから線レコードを１つずつ取り出す（ステップＳＴ２００）。
なお、面レコード又は線レコードは、本ステップに来るごとにそれぞれの並びの順に取り出される。例えば、面データ描画時であれば、本ステップに来たときに、図７に示した面レコードが、面レコード０，面レコード１，・・・，面レコードＫＡの順に取り出される。また、線データ描画時であれば、本ステップに来たときに、図９に示した線レコードが、線レコード０，線レコード１，・・・，線レコードＫＬの順に取り出される。
【００６４】
次に、描画処理部７は、ステップＳＴ２００で取得したレコード（面レコード又は線レコード）の形状情報の先頭に格納されている始点の形状点データを取り出す（ステップＳＴ２１０）。例えば、面データ描画時であれば、面レコード０における形状情報（例えば、図１１参照）から形状点データ０が取り出される。図７に示す面レコードＭＡ（ＭＡ＝１，２，３，４，・・・）においても同様である。また、線データ描画時であれば、線レコード０における形状情報（例えば、図２０参照）から形状点データ０が取り出される。図９に示す線レコードＭＬ（ＭＬ＝１，２，３，４，・・・）においても同様である。
【００６５】
プロセッサ４のメモリには、面又は線の形状点の正規化座標を格納するための形状点列データが設けられる。形状点の正規化座標を形状点列データに格納する順序は、面又は線に規定された、形状点を配列する方向の順である。
ここでは、面の形状点の正規化座標は始点から右回りの順に形状点列データに格納し、線の形状点の正規化座標は、始点から終点に向かう順に形状点列データに格納する。
形状点列データに新たに追加する正規化座標は、それまで形状点列データに格納されていた正規化座標の次に格納される。
なお、形状点列データに格納されている正規化座標のうち、末尾の正規化座標を、形状点列データの末尾の正規化座標と呼ぶ。
【００６６】
ステップＳＴ２２０において、描画処理部７は、ステップＳＴ２１０で取得した形状点データ、すなわち始点の正規化座標を、上記の形状点列データの先頭に格納する。
例えば、図７に示す面レコード０に対して、図１０に示す形状点ＡＰ００の正規化座標が形状点列データの先頭に格納される。図７に示す面レコードＭＡ（ＭＡ＝１，２，３，４，・・・）においても同様である。
図９に示す線レコード０に対して、図１８に示す形状点ＬＰ００の正規化座標が形状点列データの先頭に格納される。図９に示す線レコード１においても同様である。
【００６７】
ステップＳＴ２３０では、描画処理部７が、本ステップに来るたびに、ステップＳＴ２００で取得したレコード（面レコード又は線レコード）の形状情報から始点以降の形状点データを１つずつ取り出す。なお、形状点データは、本ステップＳＴ２３０に来るたびに形状情報における並びの順に取り出される。
例えば、面データ描画時であれば、本ステップＳＴ２３０に来たときに、図７に示した面レコード０の形状情報（図１１参照）から形状点データ１、形状点データ２、・・・、形状点データ６の順に取り出される。図７に示す面レコードＭＡ（ＭＡ＝１，２，３，４，・・・）においても同様である。
また、線データ描画時であれば、本ステップＳＴ２３０に来たときに、図９に示した線レコード０の形状情報（図２０参照）から形状点データ１、形状点データ２、・・・、形状点データ５の順に取り出される。図９に示す線レコード１においても同様である。
【００６８】
次に、描画処理部７は、ステップＳＴ２３０で取得した形状点データが参照箇所指示データであるか否かを判定する（ステップＳＴ２４０）。ここでは、形状点データの最初の１バイトの値が“−１２８”であるか否かが調べられ、“−１２８”であれば、当該形状点データは参照箇所指示データであるものとして（ステップＳＴ２４０；ＹＥＳ）、ステップＳＴ２５０の処理へ移行する。
また、“−１２８”でなければ、当該形状点データは参照箇所指示データではなく（ステップＳＴ２４０；ＮＯ）、当該形状点データは、相対座標を表すものとして、ステップＳＴ２６０の処理へ移行する。
例えば、面データ描画時であれば、図７に示した面レコード０の形状情報（図１１参照）おいて、形状点データ１から形状点データ３まで、形状点データ５、形状点データ６には、相対座標が格納されており、最初の１バイトは−１２７〜１２７の相対Ｘ座標であるため、ステップＳＴ２６０の処理へ移行する。また、形状点データ４については、最初の１バイトに“−１２８”が格納されており、参照箇所指示データであるため、ステップＳＴ２５０の処理へ移行する。図７における面レコード２（ＭＡ＝２）の形状情報（図１４参照）、図７における面レコード３（ＭＡ＝３）の形状情報（図１７参照）についても同様である。
なお、図７に示す面レコード１の形状情報（図１３参照）と、図７に示す面レコード４の形状情報（図１９参照）は、先頭以外の形状点データが全て相対座標であるため、全てステップＳＴ２６０の処理へ移行する。
線データ描画時であれば、図９に示す線レコード０の形状情報（図２０参照）おいて、形状点データ１、形状点データ２、形状点データ４、形状点データ５には、相対座標が格納されており、最初の１バイトは−１２７〜１２７の相対Ｘ座標であるため、ステップＳＴ２６０の処理へ移行する。
また、形状点データ３については、最初の１バイトに“−１２８”が格納されており、参照箇所指示データであるため、ステップＳＴ２５０の処理へ移行する。
図９における線レコード１の形状情報（図１６参照）については、先頭以外の形状点データは全て相対座標であるため、全てステップＳＴ２６０の処理へ移行する。
【００６９】
ステップＳＴ２５０において、描画処理部７の形状算出部１０は、ステップＳＴ２３０で取得した形状点データ、すなわち、参照箇所指示データが示す参照先のオブジェクトの平行箇所における形状点を、当該参照箇所指示データが設定された参照元のオブジェクトの平行箇所に相当する部分へ平行移動させた点として、当該参照元のオブジェクトにおける平行箇所の形状点の正規化座標を算出し、形状点列データに追加する。
例えば、図１０に示す場合には、形状算出部１０が、リンクＬ０１の形状点Ｓ０１３〜Ｓ０１６を平行移動して、面Ａ０における平行箇所の形状点ＡＰ０４〜ＡＰ０７の正規化座標を算出する。算出した形状点ＡＰ０４〜ＡＰ０７の正規化座標は、形状点列データに追加される。
また、図１２に示す場合、形状算出部１０が、面Ａ１の形状点ＡＰ１４〜ＡＰ１２を平行移動して、面Ａ２の平行箇所の形状点ＡＰ２３〜ＡＰ２５の正規化座標を算出する。算出した形状点ＡＰ２３〜ＡＰ２５の正規化座標は、形状点列データに追加される。
図１５の場合は、形状算出部１０が、線ＬＮ１の形状点ＬＰ１４〜ＬＰ１２を平行移動して、面Ａ３の平行箇所の形状点ＡＰ３３〜ＡＰ３５の正規化座標を算出する。算出した形状点ＡＰ３３〜ＡＰ３５の正規化座標は、形状点列データに追加される。
図１８の場合には、形状算出部１０が、面Ａ４の形状点ＡＰ４３〜ＡＰ４５を平行移動して、線ＬＮ０の平行箇所の形状点ＬＰ０３〜ＬＰ０５の正規化座標を算出する。算出した形状点ＬＰ０３〜ＬＰ０５の正規化座標は、形状点列データに追加される。
【００７０】
ステップＳＴ２６０において、形状算出部１０は、ステップＳＴ２３０で取得した形状点データが示す相対座標を形状点列データの末尾の正規化座標に加算し、加算結果の座標を、当該形状点データに対応する形状点の正規化座標として求める。
形状算出部１０は、ステップＳＴ２６０にて求めた正規化座標を形状点列データに追加する（ステップＳＴ２７０）。
【００７１】
例えば、形状情報に参照箇所指示データが含まれる場合には、図７に示す面レコード０の形状情報（図１１参照）に対して、ステップＳＴ２３０で形状点データ１が取得されているとき、ステップＳＴ２６０において、形状点列データの末尾には、図１０に示す形状点ＡＰ００の正規化座標が格納されている。そこで、形状点ＡＰ００の正規化座標に形状点データ１の相対座標を加算することで、図１０に示す形状点ＡＰ０１の正規化座標が算出され、ステップＳＴ２７０で形状点ＡＰ０１の正規化座標が形状点列データに追加される。
【００７２】
ステップＳＴ２３０で形状点データ２が取得されているときには、ステップＳＴ２６０において、形状点列データの末尾には、図１０に示す形状点ＡＰ０１の正規化座標が格納されている。そこで、形状点ＡＰ０１の正規化座標に形状点データ２の相対座標を加算することで、図１０に示す形状点ＡＰ０２の正規化座標が算出され、ステップＳＴ２７０で形状点ＡＰ０２の正規化座標が形状点列データに追加される。
【００７３】
ステップＳＴ２３０で形状点データ３が取得されているときには、ステップＳＴ２６０において、形状点列データの末尾には、図１０に示す形状点ＡＰ０２の正規化座標が格納されている。そこで、形状点ＡＰ０２の正規化座標に形状点データ３の相対座標を加算することで、図１０に示す形状点ＡＰ０３の正規化座標が算出され、ステップＳＴ２７０で形状点ＡＰ０３の正規化座標が形状点列データに追加される。
【００７４】
また、ステップＳＴ２３０で形状点データ５が取得されているときには、既に参照箇所指示データである形状点データ４が取得されて、ステップＳＴ２５０で上記の処理が実行され、形状点列データの末尾には、図１０に示す形状点ＡＰ０７の正規化座標が格納されている。そこで、ステップＳＴ２６０で形状点ＡＰ０７の正規化座標に形状点データ５の相対座標を加算することで、図１０に示す形状点ＡＰ０８の正規化座標が算出され、ステップＳＴ２７０で形状点ＡＰ０８の正規化座標が形状点列データに追加される。
【００７５】
ステップＳＴ２３０で形状点データ６が取得されているとき、ステップＳＴ２６０において、形状点列データの末尾には、図１０に示す形状点ＡＰ０８の正規化座標が格納されている。そこで、形状点ＡＰ０８の正規化座標に形状点データ６の相対座標を加算することで、図１０に示す形状点ＡＰ０９の正規化座標が算出され、ステップＳＴ２７０で形状点ＡＰ０９の正規化座標が形状点列データに追加される。
この時点で、形状点列データには、図１０に示す面Ａ０の形状点ＡＰ００〜ＡＰ０９の順にそれらの正規化座標が格納されている。
【００７６】
なお、図７における面レコード２（ＭＡ＝２）の形状情報（図１４参照）についても、上記と同様の処理を実行することで、図１２に示す面Ａ２の各形状点の正規化座標が形状点列データに格納される。
また、図７における面レコード３（ＭＡ＝３）の形状情報（図１７参照）についても、上記と同様の処理を実行することで、図１５に示す面Ａ３の各形状点の正規化座標が形状点列データに格納される。
さらに、図９に示す線レコード０の形状情報（図２０参照）に対しても、上記と同様の処理を実行することで、図１８に示す線ＬＮ０の各形状点の正規化座標が形状点列データに格納される。
【００７７】
一方、形状情報に参照箇所指示データを含まない場合には、図７に示す面レコード１の形状情報（図１３参照）に対して、ステップＳＴ２３０で形状点データ１が取得されているとき、ステップＳＴ２６０において、形状点列データの末尾には、図１２に示す形状点ＡＰ１０の正規化座標が格納されている。そこで、形状点ＡＰ１０の正規化座標に形状点データ１の相対座標を加算することにより、図１２に示す形状点ＡＰ１１の正規化座標が算出され、ステップＳＴ２７０で形状点ＡＰ１１の正規化座標が形状点列データに追加される。
【００７８】
ステップＳＴ２３０で形状点データ２が取得されているとき、ステップＳＴ２６０において、形状点列データの末尾には、図１２に示す形状点ＡＰ１１の正規化座標が格納されている。そこで、形状点ＡＰ１１の正規化座標に形状点データ２の相対座標を加算することにより、図１２に示す形状点ＡＰ１２の正規化座標が算出され、ステップＳＴ２７０で形状点ＡＰ１２の正規化座標が形状点列データに追加される。
【００７９】
ステップＳＴ２３０で形状点データ３〜６が取得されているときも、上記と同様の処理を実行することで、ステップＳＴ２６０において、形状点列データの末尾には、図１２に示す形状点ＡＰ１３〜ＡＰ１６の正規化座標が算出され、ステップＳＴ２７０で、算出結果の各正規化座標が形状点列データに追加される。
【００８０】
形状点ＡＰ１６の正規化座標が形状点列データに追加された時点で、形状点列データには、図１２に示す面Ａ１の形状点ＡＰ００〜ＡＰ０６の順にそれらの正規化座標が格納されている。
また、図７における面レコード４（ＭＡ＝４）の形状情報（図１９参照）についても、上記と同様の処理を施すことにより、図１８に示す面Ａ４の形状点の正規化座標が形状点列データに格納される。
さらに、図９に示す線レコード１の形状情報（図１６参照）についても、上記と同様の処理を施すことにより、図１５に示す線ＬＮ１の形状点の正規化座標が形状点列データに格納される。
【００８１】
続いて、形状算出部１０は、ステップＳＴ２３０で取得された形状点データが、終点の形状点データであるか否かを判定する（ステップＳＴ２８０）。ここで、終点であれば（ステップＳＴ２８０；ＹＥＳ）、ステップＳＴ２９０の処理へ移行する。終点でなければ（ステップＳＴ２８０；ＮＯ）、ステップＳＴ２３０の処理へ戻る。
本ステップＳＴ２８０によって、ステップＳＴ２００で取得されたレコードの始点以外の全ての形状点データについてステップＳＴ２３０からステップＳＴ２７０までの処理が行われる。
【００８２】
形状算出部１０は、形状点列データに格納される各正規化座標に対応する形状点を、形状点列データの先頭から順に、次に格納されている正規化座標に対応する形状点との間の直線データを描画メモリ８へ書き込むことで、各形状点を結んだ直線を描画する（ステップＳＴ２９０）。
線データ描画時には、形状点列データの末尾の正規化座標に対応する形状点への直線を描画すると、本ステップＳＴ２９０を終了する。一方、面データ描画時には、形状点列データの末尾の正規化座標に対応する形状点を描画した後、当該形状点から、形状点列データの先頭の正規化座標に対応する形状点との間の直線を描画して、本ステップＳＴ２９０を終了する。
例えば、図１０に示す面Ａ０の形状点ＡＰ００〜ＡＰ０９の正規化座標が、形状点列データに順に格納されている場合、形状点ＡＰ０ｎ（ｎ＝０，１，２，・・・，８）と形状点ＡＰ０ｎ＋１との間をそれぞれ結ぶ直線データが描画され、最後に形状点ＡＰ０９と形状点ＡＰ００との間を結ぶ直線データが描画された時点でステップＳＴ２９０が終了する。
また、図１８に示す線ＬＮ０の形状点ＬＰ００〜ＬＰ０７の正規化座標が形状点列データに格納されている場合は、形状点ＡＰ０ｎ（ｎ＝０，１，２，・・・，６）と形状点ＡＰ０ｎ＋１との間をそれぞれ結び直線データが描画された時点でステップＳＴ２９０が終了する。
図１２に示す面Ａ１，Ａ２、図１５に示す面Ａ３、図１８に示す面Ａ３、図１５に示す線ＬＮ１についても、上記と同様にして描画される。
【００８３】
なお、上記描画において、線の色、線のパターン、面の色、面のパターン等は、ステップＳＴ２００で取得したレコードのレコードヘッダにおける線の種類又は面の種類に応じて定められる。
【００８４】
ステップＳＴ３００において、形状算出部１０は、面データ又は線データにおける全てのレコードについて、上記の描画処理が終了したか否かを調べる。このとき、終了していなければ（ステップＳＴ３００；ＮＯ）、ステップＳＴ２００へ戻り、終了していれば（ステップＳＴ３００；ＹＥＳ）、面データ又は線データの描画処理を終了する。
【００８５】
図２３は、形状算出及び形状点列データへの追加処理の詳細を示すフローチャートであり、図２２のステップＳＴ２５０の処理に相当する。
先ず、形状算出部１０は、ステップＳＴ２３０で取得した形状点データ、すなわち参照箇所指示データのオブジェクト種別及びオブジェクト識別子が示すリンクレコード、面レコード、線レコードを、地図情報記憶部３から取得する（ステップＳＴ４００）。
例えば、ステップＳＴ２３０で取得された参照箇所指示データが、図１１に示す形状点データ４の参照箇所指示データである場合、この参照箇所指示データのオブジェクト種別は“道路”であり、オブジェクト識別子は、図４に示す道路データのリンク列レコード０のリンクレコード０＿１を示している。このため、リンクレコード０＿１が取得される。
ステップＳＴ２３０で取得された参照箇所指示データが、図１４に示す形状点データ３の参照箇所指示データである場合は、この参照箇所指示データにおけるオブジェクト種別は“面”であり、オブジェクト識別子は、図７に示す面レコード１を示している。このため、面レコード１が取得される。
ステップＳＴ２３０で取得された参照箇所指示データが、図１７に示す形状点データ３の参照箇所指示データであるときには、この参照箇所指示データのオブジェクト種別は“線”であり、オブジェクト識別子は、図９に示す線レコード１を示している。このため、線レコード１が取得される。
ステップＳＴ２３０で取得された参照箇所指示データが、図２０に示す形状点データ３の参照箇所指示データであるとき、この参照箇所指示データのオブジェクト種別は“面”であり、オブジェクト識別子は、図７における面レコード４（ＭＡ＝４）を示している。このため、面レコード４が取得される。
【００８６】
ステップＳＴ４１０において、形状算出部１０は、ステップＳＴ２３０で取得された形状点データ、すなわち参照箇所指示データの平行箇所開始情報が示す形状点番号（以下、開始形状点番号と呼ぶ）と平行箇所終了情報が示す形状点番号（以下、終了形状点番号と呼ぶ）とを比較し、この比較結果から、オブジェクト間の平行箇所の対応関係が逆か否かを判定する。具体的には、開始形状点番号が終了形状点番号よりも大きい場合、平行箇所の対応関係が逆であるとして（ステップＳＴ４１０；ＹＥＳ）、ステップＳＴ４２０の処理へ移行し、開始形状点番号が終了形状点番号よりも小さい場合には、平行箇所の対応関係が同一であるとして（ステップＳＴ４１０；ＮＯ）、ステップＳＴ４３０の処理へ移行する。
【００８７】
ステップＳＴ４２０では、形状算出部１０が、終了形状点番号の１つ前の形状点番号の形状点データから逆の順に開始形状点番号の形状点データまでを辿り、順次、形状点列データの末尾の正規化座標から上記形状点データが示す相対座標を減ずることによって得られた正規化座標を形状点列データに追加し、ステップＳＴ２５０の処理を終了する。
例えば、ステップＳＴ２３０で取得された参照箇所指示データが、図１４に示す形状情報における形状点データ３の参照箇所指示データであるとき、開始形状点番号は“５”、終了形状点番号は“２”である。このため、ステップＳＴ４１０で対応関係が逆と判定されて当該ステップＳＴ４２０へ来ている。
また、ステップＳＴ２５０に来たとき、形状点列データには、図１２に示す形状点ＡＰ２０，ＡＰ２１，ＡＰ２２の順にそれらの正規化座標が格納されているため、当該ステップＳＴ４２０へ来た時点では、形状点列データの末尾には、形状点ＡＰ２２の正規化座標が格納されている。
そこで、形状算出部１０は、ステップＳＴ４００で取得された、図７に示す面レコード１から、図１３に示す形状点データ４、すなわち形状点ＡＰ１４の相対座標を取得して、形状点列データの末尾にある形状点ＡＰ２２の正規化座標から上記相対座標を減ずることにより、形状点ＡＰ２３の正規化座標を算出し、形状点列データに追加する。
次に、形状算出部１０は、面レコード１の図１３に示す形状情報から形状点データ３、すなわち形状点ＡＰ１３の相対座標を取得して、形状点列データの末尾にある形状点ＡＰ２３の正規化座標から当該相対座標を減ずることにより、形状点ＡＰ２４の正規化座標を算出し、形状点列データに追加する。
続いて、形状算出部１０は、面レコード１から図１３に示す形状点データ２、すなわち形状点ＡＰ１２の相対座標を取得して、形状点列データの末尾にある形状点ＡＰ２４の正規化座標から当該相対座標を減ずることにより、形状点ＡＰ２５の正規化座標を算出し、形状点列データに追加する。
上述のようにして、形状算出部１０が、形状点ＡＰ１４，ＡＰ１３，ＡＰ１２の相対座標と形状点列データの末尾にある面Ａ２の形状点の正規化座標とを用いて、面Ａ１の形状点ＡＰ１４，ＡＰ１３，ＡＰ１２を面Ａ２へそれぞれ平行移動した点として、面Ａ２の形状点ＡＰ２３，ＡＰ２４，ＡＰ２５の正規化座標を算出し、形状点列データに追加する。
なお、ステップＳＴ２３０で取得された参照箇所指示データが、図１７に示す形状情報における形状点データ３の参照箇所指示データであるときであっても、上記と同様にして、図１５に示す形状点ＬＰ１４，ＬＰ１３，ＬＰ１２を面Ａ３へそれぞれ平行移動した点として、面Ａ３の形状点ＡＰ３３，ＡＰ３４，ＡＰ３５の正規化座標が算出され、形状点列データに追加される。
【００８８】
ステップＳＴ４３０では、形状算出部１０が、開始形状点番号の１つ後（次）の形状点番号の形状点データから順に終了形状点番号の形状点データまでを辿り、順次、形状点列データの末尾の正規化座標から上記形状点データが示す相対座標を加算することによって得られた正規化座標を形状点列データに追加し、ステップＳＴ２５０の処理を終了する。
例えば、ステップＳＴ２３０で取得された参照箇所指示データが、図１１に示す形状情報における形状点データ４の参照箇所指示データであるとき、開始形状点番号は“２”、終了形状点番号は“６”である。このため、ステップＳＴ４１０で対応関係が同一と判定されて、当該ステップＳＴ４３０へ来ている。
また、ステップＳＴ２５０に来たときには、形状点列データには、図１０に示す形状点ＡＰ００，ＡＰ０１，ＡＰ０２，ＡＰ０３の順にそれらの正規化座標が格納されているため、当該ステップＳＴ４３０へ来た時点では、形状点列データの末尾には、形状点ＡＰ０３の正規化座標が格納されている。
そこで、形状算出部１０は、ステップＳＴ４００で取得された、図４に示すリンクレコード０＿１から、図４に示す形状点データ３、すなわち、図１０に示す形状点Ｓ０１３の相対座標を取得し、形状点列データの末尾にある形状点ＡＰ０３の正規化座標に当該相対座標を加算ことで、図１１に示す形状点ＡＰ０４の正規化座標を算出して形状点列データに追加する。
次に、形状算出部１０は、リンクレコード０＿１から図４に示す形状点データ４、すなわち、形状点Ｓ０１４の相対座標を取得し、形状点列データの末尾にある形状点ＡＰ０４の正規化座標に当該相対座標を加算することで、形状点ＡＰ０５の正規化座標を算出して形状点列データに追加する。同様にして、形状点ＡＰ０６，ＡＰ０７の正規化座標を算出し、形状点列データに追加する。
このようにして、リンクＬ０１の形状点Ｓ０１３，Ｓ０１４，Ｓ０１５，Ｓ０１６を面Ａ０へそれぞれ平行移動した点として、面Ａ０の形状点ＡＰ０４，ＡＰ０５，ＡＰ０６，ＡＰ０７の正規化座標が求められ、形状点列データに追加される。
なお、ステップＳＴ２３０で取得された参照箇所指示データが、図２０に示す形状情報における形状点データ３の参照箇所指示データであるときであっても、上記同様にして、図１８に示す形状点ＡＰ４３，ＡＰ４４，ＡＰ４５を線ＬＮ０へそれぞれ平行移動した点として、線ＬＮ０の形状点ＬＰ０３，ＬＰ０４，ＬＰ０５の正規化座標が算出され、形状点列データに追加される。
【００８９】
従来の地図情報処理装置では、２つのオブジェクト間で平行箇所を含んでいる場合であっても、形状点の座標をオブジェクトごとに独立してデータ化しているために、データ化する際に発生した誤差によって２つのオブジェクトが平行に描画されなかったり、２つのオブジェクトが近接している場合には、平行箇所で２つのオブジェクトの形状が重なって描画される場合があった。
これに対して、本発明の実施の形態１では、上記のように、一方のオブジェクトの平行箇所における形状点の正規化座標を、他方のオブジェクトの平行箇所の形状点を上記一方のオブジェクトへそれぞれ平行移動した点として算出する。このようにすることで、オブジェクトの該当箇所を正確に平行に描画することができ、オブジェクト間が非常に近接している場合であっても、平行箇所で２つのオブジェクトの形状が重なって描画されることを防止できる。
【００９０】
以上のように、この実施の形態１によれば、一方のオブジェクトと他方の１つ又は複数のオブジェクトとで互いに平行となる平行箇所を有する場合に、１つ又は複数のオブジェクトの形状情報には、平行箇所の形状を表すデータの代わりに、一方のオブジェクトの平行箇所を指定する参照箇所指示データを格納し、当該参照箇所指示データで指定された平行箇所を含む一方のオブジェクトの形状情報を用いて１つ又は複数のオブジェクトの平行箇所の形状を算出する。このようにオブジェクト形状の一部のデータを持たないようにすることで、オブジェクトの形状情報のデータ量を削減できる。
また、参照箇所指示データで指定された平行箇所の形状を表すデータを用いて１つ又は複数のオブジェクトの平行箇所の形状を算出することから、形状情報から除去した箇所の形状点の座標データを持たなくても、除去した箇所の形状を求めることができる。
【００９１】
また、この実施の形態１によれば、形状算出部１０が、参照箇所指示データで指定された平行箇所の形状を表す形状点列を１つ又は複数のオブジェクトへ平行移動した点列として、１つ又は複数のオブジェクトにおける平行箇所の形状を算出するので、オブジェクトの形状情報のデータ量を削減しつつ、形状情報から除去した箇所の形状点の座標データを持たなくても、除去した箇所の形状を求めることができる。
【００９２】
さらに、この実施の形態１によれば、形状情報が、オブジェクトの形状を表す形状点列を所定向きに辿った先頭の形状点を、地図に設定した所定の座標系で一意に位置が決定される正規化座標で表し、先頭以降の形状点を、先頭の形状点から所定向きに形状点を辿った順に１つ前に辿った形状点の座標に対する相対座標で表し、一方のオブジェクトと他方の１つ又は複数のオブジェクトとで互いに平行となる平行箇所を有する場合に、１つ又は複数のオブジェクトの形状情報には、平行箇所の形状を表すデータの代わりに、一方のオブジェクトの平行箇所を指定する参照箇所指示データを格納する。
このように相対位置を使用したことで形状点のデータ量を削減できる。
また、平行箇所の形状点列の各点に対して相対位置を表す形状点データを設けずに平行箇所の形状点列に対する形状点データとして参照箇所指示データを設けたことで、データ量を削減できる。
さらに、相対位置を使用することで離隔量による平行移動が不要なため、参照箇所指示データで指定された平行箇所の形状から、１つ又は複数のオブジェクトの平行箇所の形状を算出する処理を容易にすることができる。
【００９３】
さらに、この実施の形態１によれば、形状算出部１０が、１つ又は複数のオブジェクトにおける平行箇所の一端の形状点の正規化座標を算出し、参照箇所指示データで指定された一方のオブジェクトにおける平行箇所の形状を表す形状点の相対座標を用いて１つ又は複数のオブジェクトの平行箇所の一端の形状点に続く各形状点の正規化座標を算出する。このようにすることで、形状算出部１０が、１つ又は複数のオブジェクトの平行箇所の形状を算出するにあたり、当該オブジェクトの平行箇所を容易に特定することができ、当該平行箇所の形状の算出も容易となる。
【００９４】
実施の形態２．
この実施の形態２は、上記実施の形態１で示した形状情報における全ての形状点データとして、対応する形状点の正規化座標を格納するようにし、参照箇所指示データにオブジェクト間の平行箇所における離隔量を設定したものである。ただし、参照箇所指示データの平行箇所開始情報が示す形状点の正規化座標は形状情報に格納しないようにする。
なお、実施の形態２における地図情報処理装置の構成は、実施の形態１で図１を用いて説明したものと基本的に同一であるので、装置構成については図１を参照する。
【００９５】
図２４は、この発明の実施の形態２による地図情報処理装置で扱う参照箇所指示データの一例を示す図である。実施の形態２における参照箇所指示データは、図２４に示すように、上記実施の形態１での“相対Ｘ座標”の代わりに、値を“０ｘＦＦＦＦ”とした“正規化Ｘ座標”を格納し、隔離情報を追加している。
隔離情報は、当該参照箇所指示データを有する形状情報が設定されたオブシェクトと、もう一方のオブジェクトとの平行箇所における離隔量を示す情報である。具体的には、当該離隔情報では、上記参照箇所指示データを有するオブシェクトの平行箇所における形状点の正規化座標を（Ｘ１，Ｙ１）とし、もう一方のオブジェクトの平行箇所の対応する形状点の正規化座標を（Ｘ２，Ｙ２）とするとき、離隔量を（Ｘ２−Ｘ１，Ｙ２−Ｙ１）としている。
【００９６】
具体例を挙げて説明する。
図２５は、実施の形態２の仕様で表現した図１２の面Ａ１の形状情報を示す図である。図２５に示すように、実施の形態２では、図１３の形状情報における形状点データの相対座標を全て正規化座標に変更する。
図２６は、実施の形態２の仕様で表現した図１２の面Ａ２の形状情報を示す図である。図２６に示すように、実施の形態２では、図１４の形状情報における形状点データの相対座標を正規化座標に変更し、図１４の形状情報における形状点データ２を取り除き、形状点データ３の参照箇所指示データを、図２４に示す仕様に変更している。
図２７は、実施の形態２の仕様で表現した図１８の面Ａ４の形状情報を示す図である。図２７に示すように、実施の形態２では、図１９の形状情報における形状点データの相対座標を正規化座標に変更する。
図２８は、実施の形態２の仕様で表現した図１８の線ＬＮ０の形状情報を示す図である。図２８に示すように、実施の形態２では、図２０の形状情報における形状点データの相対座標を正規化座標に変更し、図２０の形状情報における形状点データ２を取り除いて、形状点データ３の参照箇所指示データを、図２４に示す仕様に変更している。
このように、実施の形態２では、オブジェクトの形状の一部が他のオブジェクトの形状の一部に平行箇所を有する場合に、平行箇所の形状点の正規化座標を格納しないため、オブジェクトのデータを削減できる。
また、上記のような仕様の参照箇所指示データを設けることで、当該参照箇所指示データが設定されたオブジェクトの平行箇所の形状点の正規化座標を、当該参照箇所指示データで指示されるオブジェクトの平行箇所における形状点の正規化座標を元に算出することができる。
【００９７】
次に動作について説明する。
実施の形態２の地図情報処理装置による地図描画処理に関する動作は、図２１で示した上記実施の形態１の動作と基本的に同様であるが、ステップＳＴ１２０における面データ又は線データの描画処理が異なる。そこで、以降では、実施の形態２に特有な描画処理について主に説明する。
図２９は、実施の形態２における面データ又は線データの描画処理の流れを示すフローチャートであり、図２１のステップＳＴ１２０に対応する処理を示している。
先ず、描画処理部７が、図２２に示したステップＳＴ２００の処理と同様にして、面データの描画時には、本ステップに来るたびに地図情報記憶部３に記憶される面データから面レコードを１つずつ並び順に取り出し、線データの描画時には、本ステップに来るたびに地図情報記憶部３に記憶される線データから線レコードを１つずつ並び順に取り出す（ステップＳＴ５００）。
【００９８】
ステップＳＴ５１０において、描画処理部７は、本ステップに来るたびに、ステップＳＴ５００で取得したレコード（面レコード又は線レコード）の形状情報に格納されている始点の形状点データから順に１つずつ形状点データを取り出す。なお、形状点データは、本ステップに来るたびに形状情報における並びの順に取り出される。
【００９９】
次に、描画処理部７は、ステップＳＴ５１０で取得した形状点データが参照箇所指示データであるか否かを判定する（ステップＳＴ５２０）。ここでは、形状点データの最初の２バイトの値が“０ｘＦＦＦＦ”であるか否かが調べられ、“０ｘＦＦＦＦ”であれば、当該形状点データは参照箇所指示データであるものとして（ステップＳＴ５２０；ＹＥＳ）、ステップＳＴ５３０の処理へ移行する。
また、“０ｘＦＦＦＦ”でなければ、当該形状点データは参照箇所指示データではなく（ステップＳＴ５２０；ＮＯ）、当該形状点データは、正規化座標を表すものとして、ステップＳＴ５４０の処理へ移行する。
例えば、面データ描画時であれば、図７における面レコード２（ＭＡ＝２）の形状情報（図２６参照）おいて、形状点データ０、形状点データ１、形状点データ３には、正規化座標が格納されており、最初の２バイトは“０ｘＦＦＦＦ”ではないため、ステップＳＴ５４０の処理へ移行する。また、形状点データ２については、最初の２バイトに“０ｘＦＦＦＦ”が格納されており、参照箇所指示データであるため、ステップＳＴ５３０の処理へ移行する。図７に示す面レコード０、図７における面レコード３（ＭＡ＝３）についても同様である。
図７に示す面レコード１の形状情報（図２５参照）及び図７における面レコード４（ＭＡ＝４）の形状情報（図２７参照）については、形状点データが、全て正規化座標であるため、ステップＳＴ５４０の処理へ移行する。
線データ描画時であれば、図９に示す線レコード０の形状情報（図２８参照）おいて、形状点データ０、形状点データ１、形状点データ３、形状点データ４には、正規化座標が格納されているため、ステップＳＴ５４０の処理へ移行する。
また、形状点データ２については、最初の２バイトに“０ｘＦＦＦＦ”が格納されており、参照箇所指示データであるため、ステップＳＴ５３０の処理へ移行する。
図９における線レコード１の形状情報（図１６参照）は、先頭以外の形状点データが、全て相対座標であるため、実施の形態２の仕様とする場合、全てが正規化座標に変更される。従って、この形状点データも、全てステップＳＴ５４０の処理へ移行する。
【０１００】
ステップＳＴ５３０では、描画処理部７の形状算出部１０が、ステップＳＴ５１０にて取得された形状点データ、すなわち、参照箇所指示データが示す参照先のオブジェクトの平行箇所における形状点を、当該参照箇所指示データに設定される離隔情報に基づいて、当該参照箇所指示データが設定された参照元のオブジェクトの平行箇所に相当する部分へ平行移動させることにより、当該参照元のオブジェクトの平行箇所における形状点の正規化座標を算出し、形状点列データに追加する。
例えば、図１０に示す場合には、形状算出部１０が、リンクＬ０１の形状点Ｓ０１２〜Ｓ０１６を平行移動して、面Ａ０における平行箇所の形状点ＡＰ０３〜ＡＰ０７の正規化座標を算出する。算出した形状点ＡＰ０３〜ＡＰ０７の正規化座標は、形状点列データに追加される。
また、図１２に示す場合、形状算出部１０が、面Ａ１の形状点ＡＰ１５〜ＡＰ１２を平行移動して、面Ａ２の平行箇所の形状点ＡＰ２２〜ＡＰ２５の正規化座標を算出する。算出した形状点ＡＰ２２〜ＡＰ２５の正規化座標は、形状点列データに追加される。
図１５の場合は、形状算出部１０が、線ＬＮ１の形状点ＬＰ１５〜ＬＰ１２を平行移動して、面Ａ３の平行箇所の形状点ＡＰ３２〜ＡＰ３５の正規化座標を算出する。算出した形状点ＡＰ３２〜ＡＰ３５の正規化座標は、形状点列データに追加される。
図１８の場合には、形状算出部１０が、面Ａ４の形状点ＡＰ４２〜ＡＰ４５を平行移動して、線ＬＮ０の平行箇所の形状点ＬＰ０２〜ＬＰ０５の正規化座標を算出する。算出した形状点ＬＰ０２〜ＬＰ０５の正規化座標は、形状点列データに追加される。
【０１０１】
一方、ステップＳＴ５４０において、形状算出部１０は、ステップＳＴ５１０で取得した形状点データが示す正規化座標を形状点列データに追加する。
例えば、形状情報に参照箇所指示データが含まれる場合には、図７に示す面レコード２の形状情報（図２６参照）に対して、ステップＳＴ５１０で形状点データ０、形状点データ１がそれぞれ取得されているとき、ステップＳＴ５４０において、図１２に示す形状点ＡＰ２０の正規化座標、形状点ＡＰ２１の正規化座標が、形状点列データにそれぞれ追加される。
【０１０２】
ステップＳＴ５１０で形状点データ３が取得されたときには、既にステップＳＴ５３０で形状点ＡＰ２２〜ＡＰ２５の正規化座標が形状点列データに追加されている。そこで、形状算出部１０は、形状点列データの末尾に、形状点データ３が示す形状点ＡＰ２６の正規化座標を追加する。
この時点で、形状点列データには、図１２に示す面Ａ２の形状点ＡＰ２０〜ＡＰ２６の順にそれらの正規化座標が格納されている。
【０１０３】
なお、図７に示す面レコード０、図７における面レコード３（ＭＡ＝３）についても、上記と同様の処理を実行することで、それぞれ、図１０に示す面Ａ０の各形状点の正規化座標、図１５に示す面Ａ３の形状点の正規化座標が、形状点列データに格納される。
また、図９に示す線レコード０の形状情報（図２８参照）に対しても、上記と同様の処理を実行することで、図１８に示す線ＬＮ０の各形状点の正規化座標が形状点列データに格納される。
【０１０４】
一方、形状情報に参照箇所指示データを含まない場合は、形状算出部１０が、図７に示す面レコード１の形状情報（図２５参照）から、ステップＳＴ５１０においてそれぞれ取得された形状点データ０〜６が示す形状点ＡＰ１０〜ＡＰ１６の正規化座標を、形状点列データに追加する。
図７における面レコード４（ＭＡ＝４）の形状情報（図２７参照）についても、上記と同様に、図１８に示す面Ａ４の各形状点の正規化座標が形状点列データに格納される。
図９に示す線レコード１の形状情報（実施の形態２の仕様として各形状点の正規化座標を格納したもの）についても、上記と同様にして、図１５に示す線ＬＮ１の形状点の正規化座標が形状点列データに格納される。
【０１０５】
続いて、形状算出部１０は、ステップＳＴ５１０で取得した形状点データが、終点の形状点データであるか否かを判定する（ステップＳＴ５５０）。ここで、終点であれば（ステップＳＴ５５０；ＹＥＳ）、ステップＳＴ５６０の処理へ移行する。終点でなければ（ステップＳＴ５５０；ＮＯ）、ステップＳＴ５１０の処理へ戻る。
本ステップＳＴ５５０によって、ステップＳＴ２００で取得されたレコードの全ての形状点データについてステップＳＴ５１０からステップＳＴ５４０までの処理が行われる。
【０１０６】
形状算出部１０は、図２２のステップＳＴ２９０と同様にして、形状点列データに格納されている各正規化座標に対応する形状点を、形状点列データの先頭から順に、次に格納されている正規化座標に対応する形状点間の直線データを描画メモリ８へ書き込むことにより、各形状点を結んだ直線を描画する（ステップＳＴ５６０）。このようにして、形状点列データに格納されている正規化座標が示す面や線が描画される。
【０１０７】
ステップＳＴ５７０において、描画処理部７は、面データ又は線データにおける全てのレコードについて、上記の描画処理が終了したか否かを調べる。このとき、終了していなければ（ステップＳＴ５７０；ＮＯ）、ステップＳＴ５００へ戻り、終了していれば（ステップＳＴ５７０；ＹＥＳ）、面データ又は線データの描画処理を終了する。
【０１０８】
図３０は、形状算出及び形状点列データへの追加処理の詳細を示すフローチャートであり、図２９のステップＳＴ５３０の処理に相当する。
先ず、形状算出部１０は、実施の形態１の図２３におけるステップＳＴ４００の処理と同様にして、ステップＳＴ５１０で取得した形状点データ、すなわち参照箇所指示データのオブジェクト種別及びオブジェクト識別子が示すリンクレコード、面レコード、線レコードを、地図情報記憶部３から取得する（ステップＳＴ６００）。
【０１０９】
ステップＳＴ６１０において、形状算出部１０は、ステップＳＴ５１０で取得された形状点データ、すなわち、参照箇所指示データの平行箇所開始情報が示す開始形状点番号と平行箇所終了情報が示す終了形状点番号とを比較し、この比較結果から、オブジェクト間の平行箇所の対応関係が逆か否かを判定する。具体的には、開始形状点番号が終了形状点番号よりも大きい場合、平行箇所の対応関係が逆であるとして（ステップＳＴ６１０；ＹＥＳ）、ステップＳＴ６２０の処理へ移行し、開始形状点番号が終了形状点番号よりも小さい場合には、平行箇所の対応関係が同一であるとして（ステップＳＴ６１０；ＮＯ）、ステップＳＴ６３０の処理へ移行する。
【０１１０】
ステップＳＴ６２０では、形状算出部１０が、終了形状点番号の形状点データから逆の順に開始形状点番号の形状点データまでを辿り、順次、各形状点データの正規化座標から上記参照箇所指示データの離隔情報が示す離隔量を減ずることによって得られた正規化座標を形状点列データに追加し、ステップＳＴ５３０の処理を終了する。
例えば、ステップＳＴ５１０で取得された参照箇所指示データが、図２６に示す形状情報における形状点データ２の参照箇所指示データであるとき、開始形状点番号は“５”、終了形状点番号は“２”である。このため、ステップＳＴ６１０で対応関係が逆と判定されて当該ステップＳＴ６２０へ来ている。
そこで、形状算出部１０は、ステップＳＴ６００で取得された、図７に示す面レコード１から、図２５に示す形状点データ５、すなわち形状点ＡＰ１５の正規化座標から離隔量を減じた値を、形状点ＡＰ２２の正規化座標として算出し、形状点列データに追加する。
以下、図２５の形状点データ４、形状点データ３、形状点データ２の順に、上記と同様にして、図１２に示す形状点ＡＰ２３，ＡＰ２４，ＡＰ２５の正規化座標を算出して、形状点列データに追加する。
上述のようにして、形状算出部１０が、面Ａ１の形状点ＡＰ１５，ＡＰ１４，ＡＰ１３，ＡＰ１２を面Ａ２へ離隔量の分だけそれぞれ平行移動した点として、面Ａ２の形状点ＡＰ２２，ＡＰ２３，ＡＰ２４，ＡＰ２５の正規化座標を算出し形状点列データに追加する。
さらに、図１５に示す面Ａ３についても、上記と同様にして、図１５に示す形状点ＬＰ１５，ＬＰ１４，ＬＰ１３，ＬＰ１２を平行移動した点として、面Ａ３の形状点ＡＰ３２，ＡＰ３３，ＡＰ３４，ＡＰ３５の正規化座標が算出され、形状点列データに追加される。
【０１１１】
ステップＳＴ６３０では、形状算出部１０が、開始形状点番号の形状点データから順に終了形状点番号の形状点データまでを辿り、順次、形状点列データの正規化座標から、参照箇所指示データの離隔情報が示す離隔量を減算することによって得られた正規化座標を形状点列データに追加し、ステップＳＴ５３０の処理を終了する。
例えば、ステップＳＴ５１０で取得された参照箇所指示データが、図２８に示す形状情報における形状点データ２の参照箇所指示データであるとき、開始形状点番号は“２”、終了形状点番号は“５”である。このため、ステップＳＴ６１０で対応関係が同一と判定されて、当該ステップＳＴ６３０へ来ている。
そこで、形状算出部１０は、ステップＳＴ６００で取得された、図７に示す面レコード４から、図２７に示す形状点データ２、すなわち図１８に示す形状点ＡＰ４２の正規化座標を取得して、この形状点ＡＰ４２の正規化座標から離隔量を減じた値を、図１８に示す形状点ＬＰ０２の正規化座標として算出し、形状点列データに追加する。
以下、同様にして、図２７に示す形状点データ３、形状点データ４、形状点データ５の順に、図１８に示す形状点ＬＰ０３，ＬＰ０４，ＬＰ０５の正規化座標を求め、形状点列データに追加する。
このようにして、図１８に示す形状点ＡＰ４２，ＡＰ４３，ＡＰ４４，ＡＰ４５を線ＬＮ０へ平行移動した点として、線ＬＮ０の形状点ＬＰ０２，ＬＰ０３，ＬＰ０４，ＬＰ０５の正規化座標が求められ、形状点列データに追加される。
図１０に示す面Ａ０についても、上記と同様にして、図１０に示す形状点Ｓ０１２，Ｓ０１３，・・・，Ｓ０１７を平行移動した点として、面Ａ０における形状点ＡＰ０３，ＡＰ０４，・・・，ＡＰ０７の正規化座標が求められ、形状点列データに追加される。
【０１１２】
以上のように、この実施の形態２によれば、参照箇所指示データが、一方のオブジェクトにおける平行箇所と他方の１つ又は複数のオブジェクトにおける平行箇所との離隔量を示す離隔情報を有し、形状算出部１０が、一方のオブジェクトの平行箇所の形状を表す形状点列を、参照箇所指示データの離隔情報が示す離隔量だけ、１つ又は複数のオブジェクトへ平行移動した点列として、当該１つ又は複数のオブジェクトにおける平行箇所の形状を算出する。このようにすることで、オブジェクトの形状情報に平行箇所の形状点の相対座標を格納しなくても、平行箇所の形状点の正規化座標を求めることができる。
また、形状算出部１０が、離隔量だけ平行移動する処理で平行箇所における形状点の正規化座標を算出可能であり、平行箇所における形状点の正規化座標を容易に求めることができる。
さらに、当該オブジェクト平行箇所の形状点の正規化座標を、他方のオブジェクトの平行箇所の形状点を平行移動して求めるので、一方のオブジェクトと他方のオブジェクトとが近接していても、従来のように平行箇所における上記２つのオブジェクトの形状が重なって描画されることを防止できる。
【０１１３】
なお、上記実施の形態２では、平行箇所を有するオブジェクトが１対１の場合を示したが、平行箇所を有するオブジェクトが１対Ｎ（複数）であっても構わない。
この場合、１つのオブジェクトを、参照箇所指示データで平行箇所が参照される参照先のオブジェクトとし、残りのＮ個のオブジェクトを、自身の平行箇所における形状点の正規化座標を算出する際、当該参照箇所指示データで指示される上記参照先のオブジェクトの平行箇所を参照する参照元のオブジェクトとする。
つまり、参照先のオブジェクトの形状情報に平行箇所の形状点の正規化座標を格納し、参照元となる残りのＮ個のオブジェクトの形状情報には、当該平行箇所を参照する参照箇所指示データをそれぞれ設ける。このようにすることで、オブジェクトのデータ量をさらに削減することが可能である。
【０１１４】
実施の形態３．
この実施の形態３は、上記実施の形態１，２において、平行箇所を有する２つのオブジェクトで平行箇所の端点に形状点が存在しない場合に、上記端点の位置に形状点を設け、形状情報にその形状点データを設けるようにしたものである。
なお、実施の形態３における地図情報処理装置の構成は、実施の形態１で図１を用いて説明したものと基本的に同一であるので、装置構成については図１を参照する。
【０１１５】
図３１は、互いに平行な箇所を有する２つのオブジェクトにおいて、一方のオブジェクトの平行箇所の端点に対応する形状点がもう一方のオブジェクトに存在しない場合を示す図である。図３１に示す例では、面Ａ６の平行箇所における形状点ＡＰ６２〜ＡＰ６５に対応する面Ａ５の平行箇所で、面Ａ６の形状点ＡＰ６５に対応する面Ａ５の形状点が存在しない。このように対応する形状点が存在しないと、平行箇所における形状点を特定する際に支障を来す恐れがある。そこで、実施の形態３では、形状情報に、追加すべき形状点の形状点データを設けている。
【０１１６】
図３２は、図３１の面Ａ５に、面Ａ６の平行箇所の端点に対応する形状点を追加する処理を説明するための図であり、面Ａ５に、面Ａ６の形状点ＡＰ６５に対応する点として、形状点ＡＰ５５’を追加した場合を示している。形状点ＡＰ５５’を追加することで、面Ａ６の平行箇所における形状点ＡＰ６２，ＡＰ６３，ＡＰ６４，ＡＰ６５が、それぞれ面Ａ５の平行箇所における形状点ＡＰ５２，ＡＰ５３，ＡＰ５４，ＡＰ５５’に対応することとなり、面Ａ６と面Ａ５の平行箇所の形状点の対応付けが可能となる。
【０１１７】
図３３は、図３２の面Ａ５の形状情報の一例を示す図であり、面Ａ５を参照箇所指示データで平行箇所が参照される参照先のオブジェクトとし、上記実施の形態１と同様に平行箇所の始点以外を相対座標で表現した場合を示している。図３３に示すように、面Ａ５の形状情報には、形状点データ３として、面Ａ６の平行箇所の端点ＡＰ６５に対応する形状点ＡＰ５５’の相対座標を示すデータが追加される。
また、図３４は、図３２の面Ａ６の形状情報の一例を示す図であり、面Ａ５を参照箇所指示データで平行箇所が参照される参照先のオブジェクトとし、面Ａ６を、当該参照箇所指示データで面Ａ５の平行箇所を参照する参照元のオブジェクトとして、上記実施の形態１と同様に平行箇所の始点以外を相対座標で表現し、形状点データとして当該参照箇所指示データを設けた場合を示している。
図３４に示す形状情報には、形状点データ３として面Ａ６の平行箇所における形状点ＡＰ６２〜ＡＰ６５に関する参照箇所指示データを設けている。また、この参照箇所指示データには、平行箇所開始情報として形状点ＡＰ５５の形状点番号“６”が格納され、平行箇所終了情報として、形状点ＡＰ５５’の形状点番号“３”が格納される。
【０１１８】
図３５は、図３２の面Ａ５の形状情報の他の例を示す図であり、面Ａ６を参照箇所指示データで平行箇所が参照される参照先のオブジェクトとし、面Ａ５を、当該参照箇所指示データで面Ａ６の平行箇所を参照する参照元のオブジェクトとして、上記実施の形態１と同様に平行箇所の始点以外を相対座標で表現し、形状点データとして当該参照箇所指示データを設けた場合を示している。
図３５に示す形状情報には、形状点ＡＰ５５’の形状点データ３を設けるとともに、形状点データ４として面Ａ５の平行箇所における形状点ＡＰ５５’〜ＡＰ５５に関する参照箇所指示データを設けている。
また、この参照箇所指示データには、平行箇所開始情報として形状点ＡＰ６５の形状点番号“５”が格納され、平行箇所終了情報として形状点ＡＰ６２の形状点番号“２”が格納される。
図３６は、図３２の面Ａ６の形状情報の他の例を示す図であり、上述のように面Ａ６を参照箇所指示データで平行箇所が参照される参照先のオブジェクトとした場合を示している。図３６に示す形状情報では、上記実施の形態１と同様に、面Ａ６の平行箇所における始点以外の形状点が相対座標で表現される。
【０１１９】
なお、上記の例では、形状点を相対座標で表現した場合を示したが、上記実施の形態２と同様に正規化座標で表現しても構わない。
【０１２０】
以上のように、この実施の形態３によれば、一方のオブジェクトにおける平行箇所と他方の１つ又は複数のオブジェクトにおける平行箇所とのいずれか一方に対応する形状点がない場合に、当該対応する形状点がないオブジェクトの形状情報に当該形状点を示すデータを追加する。このようにすることで、平行箇所を指示することが可能となる。
【０１２１】
実施の形態４．
この実施の形態４は、上記実施の形態１において平行箇所を有する複数のオブジェクトのそれぞれの形状情報として、平行箇所における各形状点の相対座標を格納しないようにしたものであり、さらに、オブジェクトの形状情報とは別に各平行箇所の形状を表す参照形状リストを設けて、この参照形状リストを参照して各オブジェクトの平行箇所における形状点の正規化座標を求めるようにしたものである。
なお、実施の形態４における地図情報処理装置の構成は、実施の形態１で図１を用いて説明したものと基本的に同一であるので、装置構成については図１を参照する。
【０１２２】
図３７は、実施の形態４における参照形状リストの一例を示す図である。図３７に示すように、参照形状リストは、参照形状リストヘッダと参照形状レコードの並びとから構成される。参照形状リストヘッダは、参照形状レコードの数、各参照形状レコードの格納位置、各参照形状レコードが有する形状点データの数等を表すデータが格納される。
参照形状レコードは、平行箇所の形状を表すデータであり、平行箇所の先頭の形状点を除いた各形状点の形状点データを並べて構成され、形状点データとして、１つ前の形状点に対する相対座標が格納される。なお、参照形状リストにおける参照形状レコードの並び順を参照形状番号と呼ぶこととする。
また、参照形状リストは、地図データとして、地図情報記憶部３に格納しておく。
【０１２３】
図３７において、参照形状レコード０は、図１０に示す面Ａ０の平行箇所における先頭の形状点ＡＰ０３を除いた形状点ＡＰ０４〜ＡＰ０７の相対座標が格納された形状点データからなる。
ここで、図１０に示すリンクＬ０１の平行箇所における形状点Ｓ０１３，Ｓ０１４，Ｓ０１５，Ｓ０６の相対座標は、それぞれ参照形状レコード０の形状点データ０、形状点データ１、形状点データ２、形状点データ３、と同一である。
従って、参照形状レコード０は、面Ａ０の平行箇所とリンクＬ０１の平行箇所とにおける形状点の正規化座標を求める際に共通に参照される。
【０１２４】
参照形状レコード１は、図１２に示す面Ａ２の平行箇所における先頭の形状点ＡＰ２２を除いた形状点ＡＰ２３〜ＡＰ２５の相対座標が格納された形状点データからなる。
ここで、図１２の面Ａ１の平行箇所における形状点ＡＰ１３，ＡＰ１４，ＡＰ１５の相対座標は、それぞれ参照形状レコード１の形状点データ２、形状点データ１、形状点データ０の相対座標の符号反転したものと同一である。
従って、参照形状レコード１は、面Ａ２の平行箇所と面Ａ１の平行箇所とにおける形状点の正規化座標を求める際に共通に参照される。
【０１２５】
参照形状レコード２は、図１５に示す面Ａ３の平行箇所における先頭の形状点ＡＰ３２を除いた形状点ＡＰ３３〜ＡＰ３５の相対座標が格納された形状点データからなる。
ここで、図１５の線ＬＮ１の平行箇所における形状点ＬＰ１３，ＬＰ１４，ＬＰ１５の相対座標は、それぞれ参照形状レコード２の形状点データ２、形状点データ１、形状点データ０の相対座標の符号反転したものと同一である。
従って、参照形状レコード２は、面Ａ３の平行箇所と線ＬＮ１の平行箇所とにおける形状点の正規化座標を求める際に共通に参照される。
【０１２６】
また、参照形状レコード３は、図１８に示す線ＬＮ０の平行箇所における先頭の形状点ＬＰ０２を除いた形状点ＬＰ０３，ＬＰ０４，ＬＰ０５の相対座標が格納された形状点データからなる。
ここで、図１８の面Ａ４の平行箇所における形状点ＡＰ４３，ＡＰ０４，ＡＰ４５の相対座標は、それぞれ参照形状レコード３の形状点データ０、形状点データ１、形状点データ２の相対座標と同一である。
従って、参照形状レコード３は、線ＬＮ０の平行箇所と面Ａ４の平行箇所とにおける形状点の正規化座標を求める際に共通に参照される。
【０１２７】
実施の形態４では、平行箇所を含むオブジェクトの形状情報には、参照箇所指示データを含む形状情報が設定される。ただし、この参照箇所指示データには、上記実施の形態１と異なり、自身の平行箇所における形状点の正規化座標を求める際に参照対象となる参照形状を特定するデータが設定される。
【０１２８】
図３８は、実施の形態４における参照箇所指示データの構成を示す図である。図３８に示すように、実施の形態４の参照箇所指示データは、相対Ｘ座標、参照形状番号、参照順序情報、及び加減算指定情報から構成される。
相対Ｘ座標は、参照箇所指示データを他の形状点データから区別するための情報であって、参照箇所指示データの先頭の１バイトに設けられる。相対Ｘ座標としては、上記実施の形態１と同様に値を“−１２８”とする。
【０１２９】
参照形状番号は、図３７に示したような参照形状リストにおいて、参照すべき参照形状レコードを特定するための情報であり、参照形状レコードのレコード番号が設定される。
参照順序情報は、参照形状レコードに格納された形状点データをその並び順に参照するか、並びの逆順に参照するかを示す情報である。
加減算指定情報は、正規化座標の算出に際し相対座標を加算するか減算するかを示す情報である。
【０１３０】
形状情報の具体例を示す。
図３９は、図１２の面Ａ１の形状情報を示す図である。図３９に示すように、当該形状情報には、形状点ＡＰ１０の形状点データ０として、形状点ＡＰ１０の正規化座標が格納される。これに続き、形状点ＡＰ１１の形状点データ１として、形状点ＡＰ１０に対する形状点ＡＰ１１の相対座標が格納され、形状点ＡＰ１２の形状点データ２として、形状点ＡＰ１１に対する形状点ＡＰ１２の相対座標が格納される。
形状点データ２に続いて、形状点データ３として、平行箇所における形状点ＡＰ１２〜ＡＰ１５に関する参照箇所指示データが格納される。この参照箇所指示データには、相対Ｘ座標として“−１２８”、参照形状番号として参照形状レコード１の形状番号“１”、参照順序情報に“逆順”、加減算指定情報には“減算”が設定される。
形状点データ３に続いて、形状点ＡＰ１６の形状点データ４として、形状点ＡＰ１５に対する形状点ＡＰ１６の相対座標が格納される。
【０１３１】
図４０は、図１２の面Ａ２の形状情報を示す図である。図４０に示すように、当該形状情報には、形状点ＡＰ２０の形状点データ０として、形状点ＡＰ２０の正規化座標が格納される。これに続き、形状点ＡＰ２１の形状点データ１として、形状点ＡＰ２０に対する形状点ＡＰ２１の相対座標が格納され、形状点ＡＰ２２の形状点データ２として、形状点ＡＰ２１に対する形状点ＡＰ２２の相対座標が格納される。
形状点データ２に続いて、形状点データ３として、平行箇所における形状点ＡＰ２２〜ＡＰ２５に関する参照箇所指示データが格納される。この参照箇所指示データには、相対Ｘ座標として“−１２８”、参照形状番号として参照形状レコード１の形状番号“１”、参照順序情報に“並び順”、加減算指定情報には“加算”が設定される。
形状点データ３に続いて、形状点ＡＰ２６の形状点データ４として、形状点ＡＰ２５に対する形状点ＡＰ２６の相対座標が格納される。
【０１３２】
このように、実施の形態４では、平行箇所における形状点の相対座標をオブジェクトの形状情報に格納しないため、オブジェクトのデータを削減できる。また、共通する形状の平行箇所に関する参照形状を参照するための参照箇所指示データを設けたので、オブジェクトのデータを削減しつつ、平行箇所の形状点の正規化座標の算出が可能である。
【０１３３】
次に動作について説明する。
実施の形態４の地図情報処理装置による地図描画処理は、図２１、図２２及び図２３で示した上記実施の形態１の動作と基本的に同様であるが、図２２のステップＳＴ２５０における形状算出・形状点列データへの追加処理が異なる。そこで、以降では、実施の形態４に特有な上記処理について主に説明する。
【０１３４】
図４１は、実施の形態４における形状算出及び形状点列データへの追加処理の詳細を示すフローチャートであり、図２２のステップＳＴ２５０の処理に相当する。
先ず、形状算出部１０は、ステップＳＴ２３０で取得した形状点データ、すなわち参照箇所指示データの参照形状番号が示す参照形状レコードを、地図情報記憶部３の参照形状リストから取得する（ステップＳＴ７００）。
例えば、図１２の面Ａ１を描画するときは、図３９に示す形状情報の形状点データ３の参照形状番号が“１”であるため、図３７に示す参照形状リストから参照形状レコード１が取得される。また、図１２の面Ａ２を描画する際には、図４０に示す形状情報の形状点データ３の参照形状番号が“１”であるため、同様に参照形状リストから参照形状レコード１が取得される。
【０１３５】
ステップＳＴ７１０において、形状算出部１０は、ステップＳＴ２３０で取得された形状点データ、すなわち参照箇所指示データの参照順序が逆順か否かを判定する。ここで、逆順であれば（ステップＳＴ７１０；ＹＥＳ）、ステップＳＴ７３０の処理へ移行し、並び順であれば（ステップＳＴ７１０；ＮＯ）、ステップＳＴ７２０の処理へ移行する。
【０１３６】
ステップＳＴ７２０では、形状算出部１０が、ステップＳＴ７００で取得した参照形状レコードの形状点データを並びの順に辿り、順次、形状点列データの末尾の正規化座標（正規化Ｘ座標、正規化Ｙ座標）に上記形状点データが示す相対座標（相対Ｘ座標、相対Ｙ座標）を加算又は減算することによって得られた正規化座標を形状点列データに追加し、ステップＳＴ２５０の処理を終了する。
なお、上記の加減算において、参照箇所指示データの相対Ｘ座標に関する加減算指定情報が“加算”ならば、形状点列データの末尾の正規化Ｘ座標に上記形状点データの相対Ｘ座標を加算し、“減算”ならば、上記正規化Ｘ座標から上記相対Ｘ座標を減算する。
また、参照箇所指示データの相対Ｙ座標に関する加減算指定情報が“加算”ならば、形状点列データの末尾の正規化Ｙ座標に上記形状点データの相対Ｙ座標を加算し、“減算”ならば、上記正規化Ｙ座標から上記相対Ｙ座標を減算する。
【０１３７】
具体例を挙げて説明する。
図１２に示す面Ａ２を描画する際に、図４０の形状点データ３の参照順序情報は“並び順”であるため、ステップＳＴ７１０の判定によって本ステップＳＴ７２０へ来る。
図２２のステップＳＴ２５０へ来たときには、形状点列データには、面Ａ２の平行箇所における形状点ＡＰ２０，ＡＰ２１，ＡＰ２２の順にそれらの正規化座標が格納されている。このため、当該ステップＳＴ７２０へ来た時点では、形状点列データの末尾に形状点ＡＰ２２の正規化座標が格納されている。
そこで、形状算出部１０は、参照形状レコード１から、形状点データ０、形状点データ１、形状点データ２の順に取得し、加減算指定情報が“加算”を示しているので、形状点列データの末尾にある正規化座標に形状点データ０の相対座標を加算して得られた正規化座標を形状点列データに追加し、形状点列データの末尾にある正規化座標に形状点データ１の相対座標を加算して得られた正規化座標を形状点列データに追加し、形状点列データの末尾にある正規化座標に形状点データ２の相対座標を加算して得られた正規化座標を形状点列データに追加する。
このようにして、面Ａ２の平行箇所における形状点ＡＰ２３，ＡＰ２４，ＡＰ２５の正規化座標が形状点列データに追加され、形状点列データには形状点ＡＰ２０〜ＡＰ２５の正規化座標が格納される。
【０１３８】
一方、ステップＳＴ７３０においては、形状算出部１０が、ステップＳＴ７００で取得した参照形状レコードの形状点データを、並びの順とは逆に末尾から先頭へ向って辿り、順次、形状点列データの末尾の正規化座標（正規化Ｘ座標、正規化Ｙ座標）に上記形状点データが示す相対座標（相対Ｘ座標、相対Ｙ座標）を加算又は減算することによって得られた正規化座標を形状点列データに追加し、ステップＳＴ２５０の処理を終了する。
なお、上記の加減算において、参照箇所指示データの相対Ｘ座標に関する加減算指定情報が“加算”ならば、形状点列データの末尾の正規化Ｘ座標に上記形状点データの相対Ｘ座標を加算し、“減算”ならば、上記正規化Ｘ座標から上記相対Ｘ座標を減算する。
また、参照箇所指示データの相対Ｙ座標に関する加減算指定情報が“加算”ならば、形状点列データの末尾の正規化Ｙ座標に上記形状点データの相対Ｙ座標を加算し、“減算”ならば、上記正規化Ｙ座標から上記相対Ｙ座標を減算する。
【０１３９】
具体例を挙げて説明する。
図１２に示す面Ａ１を描画する際、図３９の形状点データ３の参照順序情報は“逆順”であるため、ステップＳＴ７１０の判定により本ステップＳＴ７３０へ来る。
図２２のステップＳＴ２５０に来たときには、形状点列データには、面Ａ１の平行箇所における形状点ＡＰ１０，ＡＰ１１，ＡＰ１２の順にそれらの正規化座標が格納されている。このため、当該ステップＳＴ７３０へ来た時点では、形状点列データの末尾に形状点ＡＰ１２の正規化座標が格納されている。
そこで、形状算出部１０は、参照形状レコード１から、形状点データ２、形状点データ１、形状点データ０の順に取得し、加減算指定情報が“減算”を示しているので、形状点列データの末尾にある正規化座標から形状点データ２の相対座標を減じて得られた正規化座標を形状点列データに追加し、形状点列データの末尾にある正規化座標から形状点データ１の相対座標を減じて得られた正規化座標を形状点列データに追加し、形状点列データの末尾にある正規化座標から形状点データ０の相対座標を減じて得られた正規化座標を形状点列データに追加する。
このようにして、面Ａ１の平行箇所における形状点ＡＰ１３，ＡＰ１４，ＡＰ１５の正規化座標が形状点列データに追加され、形状点列データには形状点ＡＰ１０〜ＡＰ１５の正規化座標が格納される。
【０１４０】
以上のように、この実施の形態４によれば、複数のオブジェクトで互いに平行となる平行箇所を有する場合に、複数のオブジェクトのいずれかのオブジェクトにおける平行箇所の形状を表すデータを格納する参照形状データを地図情報記憶部３に記憶し、複数のオブジェクトの各形状情報には、平行箇所の形状を表すデータの代わりに、参照形状データを指定する参照箇所指示データを格納し、形状算出部１０が、参照箇所指示データで指定された参照形状データにおける平行箇所の形状を表すデータを用いて、複数のオブジェクトにおける平行箇所の形状を算出する。
特に、形状算出部１０が、参照箇所指示データで指定された参照形状データにおける平行箇所の形状を表す形状点列を複数のオブジェクトのそれぞれへ平行移動した点列として、複数のオブジェクトにおける平行箇所の形状を算出する。
このようにすることで、オブジェクトの形状情報に平行箇所の形状を表すデータ（形状点の相対座標）を格納しなくても、当該平行箇所の形状点の正規化座標を求めることができる。
【０１４１】
また、この実施の形態４によれば、形状情報が、オブジェクトの形状を表す形状点列を所定向きに辿った先頭の形状点を、地図に設定した所定の座標系で一意に位置が決定される正規化座標で表し、先頭以降の形状点を、前記先頭の形状点から所定向きに形状点を辿った順に１つ前に辿った形状点の座標に対する相対座標で表し、参照形状データが、平行箇所の形状を当該形状を表す形状点列を、所定向きに形状点を辿った順に１つ前に辿った形状点の座標に対する相対座標で表現することで、オブジェクトの形状情報のデータ量をさらに削減することができる。
【０１４２】
さらに、この実施の形態４によれば、参照箇所指示データが、平行箇所の形状を表す形状点列の各形状点を参照する順序を示す参照順序情報と、参照する順序に応じて各形状点の相対座標を加算するか若しくは減算するかを指示する加減算指示情報とを有し、形状算出部１０が、オブジェクトにおける平行箇所の一端の形状点を初期位置として、参照箇所指示データで指示された参照形状データから参照順序情報が示す順序で形状点の相対座標を取得して、加減算指示情報が示す加算又は減算を施すことにより、オブジェクトにおける平行箇所の各形状点の正規化座標を算出する。
このように平行箇所を有する２つのオブジェクトが、平行箇所の形状点の正規化座標を共通の参照形状データの形状点データから算出するため、上記２つのオブジェクトが近接していても、上記従来のように平行箇所における上記２つのオブジェクトの形状が重なって描画されることを防止できる。
【０１４３】
実施の形態５．
オブジェクトの一部は、他のオブジェクトの一部の形状に対して、回転、拡大、縮小等の線形変換を施すことにより、互いに平行となる場合がある。
実施の形態５は、このような場合に対応するため、参照箇所指示データに線形変換に関する情報を設定したものである。なお、実施の形態５における平行箇所は、線形変換を施すことによって平行となり得るオブジェクトの一部を意味する。
【０１４４】
図４２は、この発明の実施の形態５による地図情報処理装置の構成を示すブロック図である。図４２において、実施の形態５の地図情報処理装置は、図１に示した構成のうち、形状算出部１０の代わりに、線形変換を施して平行箇所に該当する形状を求める機能を有した形状算出部１０ａを備え、さらに間引き処理部１１及び補間処理部１２を備える。
形状算出部１０ａ、間引き処理部１１及び補間処理部１２は、プロセッサ４が、本発明の趣旨に従う地図情報処理用プログラムを実行することで、ハードウェアとソフトウェアが協働した具体的な手段として実現される。
【０１４５】
形状算出部１０ａは、参照先のオブジェクトにおける、参照箇所指示データで指示した箇所の形状に線形変換を施した形状を参照元のオブジェクトに平行移動して、当該オブジェクトの当該箇所の形状を算出する。
間引き処理部１１は、形状算出部１０ａによって算出された箇所の形状を表す形状点を間引く処理を実行する構成部である。
補間処理部１２は、形状算出部１０ａによって算出された箇所の形状を表す形状点を補間する処理を実行する構成部である。
なお、図４２において、上記以外の構成要素は図１と基本的な機能が同一であるので、同一符号を付して説明を省略する。
【０１４６】
図４３は、実施の形態５における参照箇所指示データの構成を示す図である。図４３に示すように、実施の形態５の参照箇所指示データは、図８に示した参照箇所指示データと基本的な構成は同一であるが、平行箇所開始情報及び平行箇所終了情報の内容が異なり、さらに線形変換情報、間引き情報、補間情報が追加されている。
実施の形態５による参照箇所指示データの平行箇所開始情報には、線形変換を施すことで参照元のオブジェクトの一部と平行になる参照先のオブジェクトの一部の開始点となる形状点の形状点番号が設定される。また、実施の形態５による参照箇所指示データの平行箇所終了情報には、上記参照先のオブジェクトの一部の終了点となる形状点の形状点番号が設定される。
線形変換情報は、上記線形変換を施す際に使用される変換行列を表す情報である。間引き情報は、線形変換した結果として得られた形状に対する間引き処理の要否を示す情報である。また、補間情報は、線形変換した結果として得られた形状に対する補間処理の要否を示す情報である。
【０１４７】
図４４は、線形変換を施すことでオブジェクト間で平行な箇所が形成される場合を説明するための図である。図４４において、面Ａ８における形状点ＡＰ８２〜ＡＰ８５からなる形状は、面Ａ７における形状点ＡＰ７５〜ＡＰ７２からなる形状を縮小し回転したものである。つまり、面Ａ７の形状点ＡＰ７５〜ＡＰ７２からなる形状に縮小及び回転の線形変換を施すことにより、面Ａ８の形状点ＡＰ８２〜ＡＰ８５からなる形状に平行な形状になる。
【０１４８】
また、上記実施の形態１と同様に、面Ａ８の形状点ＡＰ８２〜ＡＰ８５に関して図４３の参照箇所指示データが設けられる。この参照箇所指示データの平行箇所開始情報には、形状点ＡＰ７５の形状点番号５が設定され、平行箇所終了情報には、形状点ＡＰ７２の形状点番号２が設定される。また、面Ａ７における形状点ＡＰ７５〜ＡＰ７２からなる形状を線形変換して、面Ａ８の形状点ＡＰ８２〜ＡＰ８５からなる形状に平行になるように、線形変換情報として縮小及び回転に関する変換行列が設定される。
なお、上記実施の形態１と同様に、面Ａ８の形状情報には形状点ＡＰ８３〜ＡＰ８５の相対座標は格納されない。
参照箇所指示データの間引き情報には、線形変換した結果として得られる形状の形状点の密度（例えば、所定長さに対する形状点数）が所定値以上となる場合に間引き“要”を設定する。これにより、描画時間の増加を防止することができる。
参照箇所指示データの補間情報には、線形変換した結果として得られる形状の形状点の密度が所定値未満となる場合に補間“要”を設定する。これにより、描画時の形状の滑らかさが損なわれることを防止することができる。
【０１４９】
次に動作について説明する。
この実施の形態５は、上記実施の形態１と基本的な動作は同一であるが、図２３のステップＳＴ４２０及びステップＳＴ４３０が、下記のように変更される。そこで、図２３を参照して、実施の形態５に特有な処理の詳細を説明する。
【０１５０】
ステップＳＴ４２０では、形状算出部１０ａが、ステップＳＴ４００で取得したレコードの形状情報における、終了形状点番号の１つ前の形状点番号の形状点データから逆の順に開始形状点番号の形状点データまでを辿り、順次、線形変換情報の変換行列で当該形状点データが示す相対座標に線形変換を施し、形状点列データの末尾の正規化座標に上記線形変換の結果を加算して得られた正規化座標を形状点列データに追加する。
【０１５１】
ステップＳＴ４３０では、形状算出部１０ａが、開始形状点番号の１つ後（次）の形状点番号の形状点データから順に終了形状点番号の形状点データまでを辿り、順次、線形変換情報の変換行列で当該形状点データが示す相対座標に線形変換を施し、形状点列データの末尾の正規化座標に上記線形変換の結果を加算して得られた正規化座標を、形状点列データに追加する。
【０１５２】
このようにして、オブジェクトの参照先の形状に線形変換を施した形状点の正規化座標を、参照元のオブジェクトにそれぞれ平行移動した点として、参照先の形状に平行な形状における形状点の正規化座標が求められ、形状点列データに追加される。
【０１５３】
ステップＳＴ４２０及びステップＳＴ４３０において、間引き処理部１１は、間引き情報が“要”であると、形状算出部１０ａによって形状点列データに追加された上記一連の正規化座標データを読み出して、形状点の密度が所定値になるように正規化座標を間引いて形状点列データに追加し、ステップＳＴ２５０の処理を終了する。
【０１５４】
一方、補間情報が“要”である場合には、補間処理部１２が、形状算出部１０ａによって形状点列データに追加された上記一連の正規化座標データを読み出し、当該一連の正規化座標が表す形状を滑らかにするため、例えば、スプライン関数によって上記一連の正規化座標を補間するための正規化座標を求め、形状点列データに格納されている上記一連の正規化座標の間に挿入し、ステップＳＴ２５０の処理を終了する。
【０１５５】
なお、間引き処理部１１又は補間処理部１２は、形状点列データに格納した正規化座標に対応する形状点を、形状点列データの先頭から順に、次に格納されている正規化座標に対応する形状点との間における直線データを描画メモリ８へ書き込むことで、各形状点を結んだ直線を描画する。
【０１５６】
以上のように、この実施の形態５によれば、一方のオブジェクトの一部の形状に線形変換を施すと、他方の１つ又は複数のオブジェクトが当該線形変換を施した形状に平行となる平行箇所を有する場合に、１つ又は複数のオブジェクトの形状情報には、当該平行箇所の形状を表すデータの代わりに、線形変換の内容を示す線形変換情報を有し、一方のオブジェクトにおける一部の形状を指定する参照箇所指示データを格納し、形状算出部１０ａが、参照箇所指示データで指定された一部の形状を表すデータを、一方のオブジェクトの形状情報から取得し、当該形状に線形変換情報が示す線形変換を施したデータを用いて、１つ又は複数のオブジェクトにおける平行箇所の形状を算出する。
このようにすることで、線形変換により平行箇所となり得る形状を表すデータ（形状点の相対座標データ）を削減でき、オブジェクトデータにおける形状情報のデータ量を削減することが可能である。
【０１５７】
また、この実施の形態５によれば、形状算出部１０ａが、参照箇所指示データで指定された一部の形状に線形変換情報が示す線形変換を施した形状を表す形状点列を、１つ又は複数のオブジェクトへ平行移動した点列として、１つ又は複数のオブジェクトにおける平行箇所の形状を算出する。このようにすることで、参照元のオブジェクトの形状情報から形状点の相対座標を除去してデータ量を削減しつつ、当該オブジェクトにおける平行箇所の形状を求めることができる。
【０１５８】
さらに、この実施の形態５によれば、形状算出部１０ａが求めた形状を表す形状点を間引く間引き処理部１１と、形状算出部１０が求めた形状を補間する形状点を当該形状に挿入する補間処理部１２とを備えたので、間引き処理の場合は、描画対象のデータが削減されることから描画速度を向上でき、補間処理の場合には滑らかに形状を描画できる。
【０１５９】
実施の形態６．
この実施の形態６は、上記実施の形態４で示した参照形状リストに登録された参照形状が、複数のオブジェクトの形状の一部と完全に平行でなく、上記参照形状に対して所定の回転や拡大、縮小等の線形変換を施すことで上記形状の一部と平行になる場合に対応したものである。従って、実施の形態６における平行箇所は、線形変換を施すことによって平行となり得るオブジェクトの一部を意味する。
【０１６０】
実施の形態６における地図情報処理装置の構成は、上記実施の形態５で図４２を用いて説明したものと基本的に同一であるので、装置構成については図４２を参照する。
なお、実施の形態６の地図情報記憶部３には、図３７で示したような参照形状リストが格納される。ただし、この参照形状リストに登録される参照形状は、線形変換を施すことによって複数のオブジェクトの一部の形状と平行になり、かつ上記複数のオブジェクトの一部の形状と合同な形状を有する。また、参照形状リストには、参照形状を表す参照形状レコードがリスト形式で格納される。
【０１６１】
さらに、上記複数のオブジェクトの形状情報には、上記一部の形状に関する形状点データとして、図３８に示したような参照箇所指示データが格納される。
図４５は、実施の形態６における参照箇所指示データの構成を示す図である。図４５に示すように、実施の形態６の参照箇所指示データには、図３８で示した加減算指定情報の代わりに、上記線形変換を施すための変換行列を表す線形変換情報が格納され、さらに、線形変換した結果として得られた形状に対する間引き処理の要否を示す間引き情報と、線形変換した結果として得られた形状に対する補間処理の要否を示す補間情報とが追加されている。
【０１６２】
具体例を挙げて説明すると、上記実施の形態５で示した図４４において、面Ａ７の形状点ＡＰ７２〜ＡＰ７５からなる形状と面Ａ８の形状点ＡＰ８２〜ＡＰ８５からなる形状とのうち、例えば、面Ａ７の形状点ＡＰ７２〜ＡＰ７５からなる形状に合同な形状を表す参照形状レコードが参照形状リストに格納される。
このとき、面Ａ８の形状情報には、形状点ＡＰ８２〜ＡＰ８５に関する、図４５で示した構成の参照箇所指示データが設けられる。また、この参照箇所指示データには、参照形状番号として上記参照形状レコードの形状番号が設定され、参照順序情報として“逆順”が設定される。線形変換情報としては、面Ａ７の形状点ＡＰ７５〜ＡＰ７２からなる形状に合同な形状を、面Ａ８の形状点ＡＰ８２〜ＡＰ８５からなる形状に平行な形状へ線形変換するための変換行列が設定される。
このように、実施の形態６では、上記実施の形態４と同様に、面Ａ８の形状情報として形状点ＡＰ８３〜ＡＰ８５の各相対座標を格納しない。
【０１６３】
また、面Ａ７の形状情報においても、形状点ＡＰ７２〜ＡＰ７５に関する参照箇所指示データが設けられる。この参照箇所指示データには、参照形状番号として上記参照形状レコードの形状番号が設定され、参照順序情報として“並び順”が設定される。線形変換情報としては、上記合同な形状を、自身の形状点ＡＰ７２〜ＡＰ７５からなる形状に平行な形状へ線形変換するための変換行列が設定される。なお、この場合は、線形変換情報として、線形変換が不要である旨を示す情報を設定してもよい。
このように、実施の形態６では、上記実施の形態４と同様に、面Ａ７の形状情報として形状点ＡＰ７３〜ＡＰ７５の各相対座標を格納しない。
【０１６４】
参照箇所指示データの間引き情報には、線形変換した結果として得られる形状の形状点の密度（例えば、所定長さに対する形状点数）が所定値以上となる場合に間引き“要”を設定する。これにより、描画時間の増加を防止することができる。
参照箇所指示データの補間情報には、線形変換した結果として得られる形状の形状点の密度が所定値未満となる場合に補間“要”を設定する。これにより、描画時の形状の滑らかさが損なわれることを防止することができる。
【０１６５】
次に動作について説明する。
この実施の形態６は、上記実施の形態４と基本的な動作は同一であるが、図４１のステップＳＴ７２０及びステップＳＴ７３０が、下記のように変更される。そこで、図４１を参照して、実施の形態６に特有な処理の詳細を説明する。
【０１６６】
ステップＳＴ７２０では、形状算出部１０ａが、ステップＳＴ７００で取得した参照形状レコードの形状点データを並びの順に辿って、順次、線形変換情報の変換行列で当該形状点データが示す相対座標に線形変換を施し、形状点列データの末尾の正規化座標に上記線形変換の結果を加算して得られた正規化座標を形状点列データに追加する。
【０１６７】
ステップＳＴ７３０では、形状算出部１０ａが、ステップＳＴ７００で取得した参照形状レコードの形状点データを逆順に末尾から先頭へ向かって辿り、順次、線形変換情報の変換行列で当該形状点データが示す相対座標に線形変換を施し、形状点列データの末尾の正規化座標に上記線形変換の結果を加算して得られた正規化座標を形状点列データに追加する。上述のように参照形状を線形変換することにより、複数のオブジェクト間で互いに平行な形状における形状点の正規化座標が求められ、形状点列データに追加される。
【０１６８】
ステップＳＴ７２０及びステップＳＴ７３０において、間引き処理部１１は、間引き情報が“要”であると、形状算出部１０ａによって形状点列データに追加された上記一連の正規化座標データを読み出して、形状点の密度が所定値になるように正規化座標を間引いて形状点列データに追加し、ステップＳＴ２５０の処理を終了する。
【０１６９】
一方、補間情報が“要”である場合には、補間処理部１２が、形状算出部１０ａによって形状点列データに追加された上記一連の正規化座標データを読み出し、当該一連の正規化座標が表す形状を滑らかにするため、例えば、スプライン関数によって上記一連の正規化座標を補間するための正規化座標を求め、形状点列データに格納されている上記一連の正規化座標の間に挿入し、ステップＳＴ２５０の処理を終了する。
【０１７０】
なお、間引き処理部１１又は補間処理部１２は、形状点列データに格納した正規化座標に対応する形状点を、形状点列データの先頭から順に、次に格納されている正規化座標に対応する形状点との間における直線データを描画メモリ８へ書き込むことで、各形状点を結んだ直線を描画する。
【０１７１】
以上のように、この実施の形態６によれば、複数のオブジェクトのいずれかのオブジェクトの一部の形状に線形変換を施すと、複数のオブジェクトが当該線形変換を施した形状に平行となる平行箇所を有する場合に、線形変換を施すことで平行箇所に平行となる一部の形状に合同な形状を表すデータを格納する参照形状データを記憶しており、複数のオブジェクトの各形状情報には、平行箇所の形状を表すデータの代わりに、線形変換の内容を示す線形変換情報を有し参照形状データを指定する参照箇所指示データを格納し、形状算出部１０ａが、参照箇所指示データで指定された参照形状データにおける合同な形状を表すデータに線形変換情報が示す線形変換を施したデータを用いて、複数のオブジェクトにおける平行箇所の形状を算出する。このようにすることで、参照形状データが共用されるため、オブジェクトの形状情報のデータ量を削減しつつ、当該オブジェクトの平行箇所の形状を求めることができる。
【０１７２】
また、この実施の形態６によれば、形状算出部１０ａが求めた形状を表す形状点を間引く間引き処理部１１と、形状算出部１０が求めた形状を補間する形状点を当該形状に挿入する補間処理部１２とを備えたので、間引き処理の場合は、描画対象のデータが削減されることから描画速度を向上でき、補間処理の場合には滑らかに形状を描画できる。
【符号の説明】
【０１７３】
１  入力部、２  位置検出部、３  地図情報記憶部、４  プロセッサ、５  表示部、６  音声出力部、７  描画処理部、８  描画メモリ、９  表示制御部、１０，１０ａ  形状算出部、１１  間引き処理部、１２  補間処理部。
【図１】
0005511534.tif 000002
【図２】
0005511534.tif 000003
【図３】
0005511534.tif 000004
【図４】
0005511534.tif 000005
【図５】
0005511534.tif 000006
【図６】
0005511534.tif 000007
【図７】
0005511534.tif 000008
【図８】
0005511534.tif 000009
【図９】
0005511534.tif 000010
【図１０】
0005511534.tif 000011
【図１１】
0005511534.tif 000012
【図１２】
0005511534.tif 000013
【図１３】
0005511534.tif 000014
【図１４】
0005511534.tif 000015
【図１５】
0005511534.tif 000016
【図１６】
0005511534.tif 000017
【図１７】
0005511534.tif 000018
【図１８】
0005511534.tif 000019
【図１９】
0005511534.tif 000020
【図２０】
0005511534.tif 000021
【図２１】
0005511534.tif 000022
【図２２】
0005511534.tif 000023
【図２３】
0005511534.tif 000024
【図２４】
0005511534.tif 000025
【図２５】
0005511534.tif 000026
【図２６】
0005511534.tif 000027
【図２７】
0005511534.tif 000028
【図２８】
0005511534.tif 000029
【図２９】
0005511534.tif 000030
【図３０】
0005511534.tif 000031
【図３１】
0005511534.tif 000032
【図３２】
0005511534.tif 000033
【図３３】
0005511534.tif 000034
【図３４】
0005511534.tif 000035
【図３５】
0005511534.tif 000036
【図３６】
0005511534.tif 000037
【図３７】
0005511534.tif 000038
【図３８】
0005511534.tif 000039
【図３９】
0005511534.tif 000040
【図４０】
0005511534.tif 000041
【図４１】
0005511534.tif 000042
【図４２】
0005511534.tif 000043
【図４３】
0005511534.tif 000044
【図４４】
0005511534.tif 000045
【図４５】
0005511534.tif 000046