説明

地図情報処理装置

【課題】オブジェクトの形状を表す形状情報のデータ量を削減し、かつ、近接した2つのオブジェクトで互いに平行する同一形状の辺の描画誤りを低減することができる地図情報処理装置を提供する。
【解決手段】一方のオブジェクトと他方の1つ又は複数のオブジェクトとで互いに平行となる平行箇所を有する場合に、他方の1つ又は複数のオブジェクトの形状情報には、平行箇所の形状を表すデータの代わりに、一方のオブジェクトの平行箇所を指定する参照箇所指示データを格納し、当該参照箇所指示データで指定された平行箇所を含む一方のオブジェクトの形状情報を用いて、他方の1つ又は複数のオブジェクトの平行箇所の形状を算出する。

【発明の詳細な説明】
【技術分野】
【0001】
この発明は、カーナビゲーション装置、携帯電話、携帯情報端末等の移動体又は固定されたコンピュータで使用される地図情報の地図情報処理装置に関するものである。
【背景技術】
【0002】
従来の地図情報処理装置として、例えば特許文献1に開示されるものがある。
この装置では、複数の多角形を合成して地図表示を行うにあたり、合成する多角形を構成する辺のデータと、多角形が使用する辺を多角形ごとに指定するデータとを設けることで、複数の多角形で共通する辺のデータを重複して設けないようにしている。
このようにすることにより、複数の多角形で共通する辺のデータが重複してデータ量が増加することや、これらの辺のデータの表示処理の誤差によって、辺がずれて表示されることを防止することができる。
【先行技術文献】
【特許文献】
【0003】
【特許文献1】特開平9−152833号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
特許文献1に代表される従来の技術では、近接する2つの多角形において、互いに平行する同一形状の辺が存在していても、複数の多角形で共通する辺のデータではないため、各多角形の辺のデータとしてそれぞれ格納される。つまり、これらの辺のデータについては、たとえ同一形状であっても、辺データが重複することになる。
この場合、上述の多角形が非常に接近していると、これらの多角形をそれぞれ描画する際、互いに平行する同一形状の辺のデータに誤差が生じて、2つの多角形の辺が重なって表示される可能性があるという課題があった。
【0005】
また、近接する2つの多角形の辺が完全には平行でなく、一方の多角形における辺を回転、拡大、縮小等の線形変換を施したものが、他方の多角形における辺になっている場合であっても、複数の多角形で共通する辺のデータではないため、各多角形の辺のデータとしてそれぞれ格納される。このように、回転、拡大、縮小等の処理を施せば、同一形状のデータとして処理し得る辺のデータであるにも拘わらず、それぞれが別個に格納されて、重複を防止できない。
【0006】
この発明は、上記のような課題を解決するためになされたもので、オブジェクトの形状を表す形状情報のデータ量を削減し、かつ、近接した2つのオブジェクトで互いに平行する同一形状の辺の描画誤りを低減することができる地図情報処理装置を得ることを目的とする。
【課題を解決するための手段】
【0007】
この発明に係る地図情報処理装置は、地図に描画するオブジェクトの形状を表すデータが格納された形状情報を有するオブジェクトデータを記憶する地図情報記憶部と、地図情報記憶部から読み出したオブジェクトデータの形状情報を用いて、オブジェクトの形状を算出して描画する形状算出部とを備え、一方のオブジェクトと他方の1つ又は複数のオブジェクトとで互いに平行となる平行箇所を有する場合に、1つ又は複数のオブジェクトの形状情報には、平行箇所の形状を表すデータの代わりに、一方のオブジェクトの平行箇所を指定する参照箇所指示データを格納し、形状算出部が、参照箇所指示データで指定された平行箇所を含む一方のオブジェクトの形状情報を地図情報記憶部から取得し、当該形状情報を用いて1つ又は複数のオブジェクトの平行箇所の形状を算出するものである。
【発明の効果】
【0008】
この発明によれば、一方のオブジェクトと他方の1つ又は複数のオブジェクトとで互いに平行となる平行箇所を有する場合、1つ又は複数のオブジェクトの形状情報には、平行箇所の形状を表すデータの代わりに、一方のオブジェクトの平行箇所を指定する参照箇所指示データを格納し、当該参照箇所指示データで指定された平行箇所を含む一方のオブジェクトの形状情報を用いて1つ又は複数のオブジェクトの平行箇所の形状を算出する。このようにすることで、オブジェクトの形状を表す形状情報のデータ量を削減し、かつ、近接した2つのオブジェクトで互いに平行する同一形状の辺の描画誤りを低減することができるという効果がある。
【図面の簡単な説明】
【0009】
【図1】この発明の実施の形態1による地図情報処理装置の構成を示すブロック図である。
【図2】図1の地図情報記憶部に格納された地図情報のデータ構造の一例を示す図である。
【図3】正規化座標でメッシュ内の点を表現した場合を示す図である。
【図4】図2の道路網データに含まれる道路データの一例を示す図である。
【図5】リンク列の一例を示す図である。
【図6】図2の背景データの一例を示す図である。
【図7】図6の背景データにおける面データの一例を示す図である。
【図8】参照箇所指示データの構成を示す図である。
【図9】図6の背景データにおける線データの一例を示す図である。
【図10】面の形状の一部が道路の形状の一部と平行箇所を有する場合を説明するための図である。
【図11】図10の面A0の形状情報を示す図である。
【図12】面の形状の一部が他の面の形状の一部と平行箇所を有する場合を説明するための図である。
【図13】図12の面A1の形状情報の一例を示す図である。
【図14】図12の面A2の形状情報の一例を示す図である。
【図15】面の形状の一部が線の一部と平行箇所を有する場合を説明するための図である。
【図16】図15の線LN1の形状情報の一例を示す図である。
【図17】図15の面A3の形状情報の一例を示す図である。
【図18】線の一部が面の形状の一部と平行箇所を有する場合を説明するための図である。
【図19】図18の面A4の形状情報の一例を示す図である。
【図20】図18の線LN0の形状情報の一例を示す図である。
【図21】図1の地図情報処理装置による地図描画処理に関する動作の流れを示すフローチャートである。
【図22】面データ又は線データの描画処理の詳細を示すフローチャートである。
【図23】形状算出及び形状点列データへの追加処理の詳細を示すフローチャートである。
【図24】この発明の実施の形態2による地図情報処理装置で扱う参照箇所指示データの一例を示す図である。
【図25】実施の形態2の仕様で表現した面A1の形状情報を示す図である。
【図26】実施の形態2の仕様で表現した面A2の形状情報を示す図である。
【図27】実施の形態2の仕様で表現した面A4の形状情報を示す図である。
【図28】実施の形態2の仕様で表現した線LN0の形状情報を示す図である。
【図29】実施の形態2における面データ又は線データの描画処理の流れを示すフローチャートである。
【図30】形状算出及び形状点列データへの追加処理の詳細を示すフローチャートである。
【図31】一方のオブジェクトの平行箇所の端点に対応する形状点がもう一方のオブジェクトに存在しない場合を示す図である。
【図32】実施の形態3における、面A5に、面A6の平行箇所の端点に対応する形状点を追加する処理を説明するための図である。
【図33】面A5の形状情報を示す図である。
【図34】面A6の形状情報を示す図である。
【図35】面A5の形状情報を示す図である。
【図36】面A6の形状情報を示す図である。
【図37】実施の形態4における参照形状リストの一例を示す図である。
【図38】実施の形態4における参照箇所指示データの構成を示す図である。
【図39】実施の形態4の仕様で表現した面A1の形状情報を示す図である。
【図40】実施の形態4の仕様で表現した面A2の形状情報を示す図である。
【図41】実施の形態4における形状算出及び形状点列データへの追加処理の詳細を示すフローチャートである。
【図42】この発明の実施の形態5による地図情報処理装置の構成を示すブロック図である。
【図43】実施の形態5における参照箇所指示データの構成を示す図である。
【図44】線形変換を施すことでオブジェクト間で平行な箇所が形成される場合を説明するための図である。
【図45】実施の形態6における参照箇所指示データの構成を示す図である。
【発明を実施するための形態】
【0010】
実施の形態1.
図1は、この発明の実施の形態1による地図情報処理装置の構成を示すブロック図である。図1において、入力部1は、使用者の操作又は指示に応じてプロセッサ4へ指示信号を与える操作スイッチ群であり、入力手段として機能する。入力手段としては、上記操作スイッチ群以外に、表示部5の表示面に装着されたタッチパネル、リモートコントロールスイッチ等を使用してもよい。
【0011】
位置検出部2は、例えばGPS(Global Positioning System)受信機、車速センサ、加速度センサ、角速度センサ等を用いた位置検出手段であって、当該地図情報処理装置を搭載している移動体の現在位置を検出し、検出した現在位置を示す位置情報をプロセッサ4へ提供する。地図情報記憶部3は、例えば、地図情報記憶媒体として、ハードディスクを用いたハードディスクドライブで構成された地図情報記憶手段であり、地図情報を予め記憶しておく。
【0012】
プロセッサ4は、入力部1を介して与えられた指示信号、位置検出部2によって取得された現在位置を示す位置情報、及び地図情報記憶部3から読み出した地図情報を用いて、各種の地図情報処理を行う地図情報処理手段として機能する。
また、プロセッサ4は、描画処理部7、描画メモリ8及び表示制御部9を有し、描画処理部7が所要の図形を描画メモリ8に描画して、表示制御部9が描画メモリ8の内容を表示部5に表示する。なお、描画処理部7は、描画処理において所要の図形を構成する多角形の形状を算出する形状算出部10を備える。
なお、形状算出部10を含む描画処理部7、描画メモリ8、及び表示制御部9は、プロセッサ4が、本発明の趣旨に従う地図情報処理用プログラムを実行することで、ハードウェアとソフトウェアが協働した具体的な手段として実現される。
【0013】
各種の地図情報処理の内容としては、位置検出部2によって取得された現在位置を示す位置情報と地図情報記憶部3から読み出した地図情報とに基づいて、移動体の現在位置を推定するマップマッチング処理、出発地から目的地までの経路を算出する経路探索処理、経路探索処理で得られた経路に従って出発地から目的地までの案内を行う経路誘導処理、現在位置周辺の地図の表示処理、都市、道路、施設、住所、電話番号、交差点等の各種情報を検索する各種検索処理等が含まれる。
また、地図情報処理には、地図情報記憶部3から読み出した地図情報に基づいてマップマッチング処理で推定された現在位置を中心とする地図を描画する処理、この地図上に、地図情報処理の結果として得られた移動体の現在位置、経路探索処理で得られた好適な経路、その経路に従って出発地から目的地まで案内を行うための案内情報を描画する処理、各種入力情報の描画、検索で得られた各種情報の描画等の、描画処理部7を用いた描画処理が含まれる。
【0014】
表示部5は、液晶ディスプレイからなる表示装置であって、上述した各種の描画処理で描画メモリ8に描画された内容を、表示制御部9の制御に従って表示する表示手段として機能する。音声出力部6は、プロセッサ4による各種の地図情報処理の結果として得られた情報を、音声で使用者に提示する構成部であり、経路探索処理によって得られた好適な経路に従って出発地から目的地までの案内を行う案内情報や、検索で得られた各種情報等を、音声で使用者に提示する。
【0015】
この発明では、地図情報の作成範囲を、所定の間隔の緯線及び経線で囲まれた4辺形とする。また、地図情報は、情報の詳細さの度合いによって階層化される。地図情報の作成範囲は、各階層ごとに、所定の間隔の緯線及び経線で囲まれた領域であるメッシュに区画して管理される。
【0016】
図2は、図1の地図情報記憶部に格納された地図情報のデータ構造の一例を示す図である。図2において、地図情報は、地図管理情報、各階層のメッシュに対応して設けた地図データ、経路計算データ及び検索データを有する。ここで、地図管理情報は、階層ごとの地図データ、経路計算データを管理するデータ、及び検索データを管理する情報を有し、各メッシュの地図データ、経路計算データの当該地図情報における格納位置及びデータサイズ等を階層ごとに有しており、各検索データの当該地図情報における格納位置及びデータサイズ等を有している。
【0017】
地図データは、地図データヘッダ、道路網データ、背景データ、名称データ、経路誘導データからなる。地図データヘッダは、地図データ内の各データを管理する情報を有し、道路網データは、マップマッチングや道路の表示に使用する道路形状、道路の接続関係等を表す情報(道路データ)を有する。また、背景データは、河川や海等を表す面データ、線状の河川や鉄道等を表す線データ、及び施設シンボル等を表す点データを有する。名称データは、地図上の地物の名称を示すデータであり、対応する地物のデータに対応付けて登録される。経路誘導データは、交差点等での経路案内に要する情報を有する。経路計算データは、経路探索処理に適したデータ構造で道路網を表すデータである。
【0018】
以下の説明では、道路データが表す個々の道路、背景データが表す個々の面、線、点を総称して、オブジェクトと呼ぶ。
また、個々の面、線、点に関する各種情報を格納したデータを、オブジェクトデータと呼び、図4で後述するリンクレコード、面レコード、線レコードがオブジェクトデータに相当する。
【0019】
メッシュ内の点の位置は、正規化座標で表すものとする。
図3は、正規化座標でメッシュ内の点を表現した場合を示す図である。図3において、メッシュの左下隅を(0,0)、右上隅を(0x1000,0x1000)とし、経線の東方向をX座標の正方向とし、緯線の北方向をY座標の正方向とし、メッシュ内の点Pの座標を(x,y)で表している。ただし、0≦x≦0x1000、0≦y≦0x1000である。メッシュ内の地点と正規化座標とは一対一に対応するので、正規化座標は、メッシュ内での位置を一意に示すことができる。なお、先頭に0xを付した表記は、16進表記であることを意味する。
このように、正規化座標のX座標及びY座標はそれぞれ2バイトで表され、正規化座標は4バイト長となる。
【0020】
この実施の形態1では、右上隅を(0x1000,0x1000)としたが、例えば、(0x8000,0x8000)のように他の値としてもよい。
また、メッシュ内の点の位置を一意に表す座標系として、上記以外にその点の緯度及び経度を用いてもよく、メッシュ中央の点に対する相対緯度及び相対経度を用いてもよい。
なお、上記正規化座標、緯度及び経度、相対緯度及び相対経度のようにメッシュ内の点の位置を一意に表す座標を絶対座標と呼ぶ。
【0021】
図4は、図2の道路網データに含まれる道路データの一例を示す図である。図4において、道路データは、道路上の地点を表すノードと、ノードとノードとを結ぶ道路を表すリンクとを用いて、メッシュ内の道路網を表すデータである。また、道路データは、道路データヘッダとリンク列レコードの並びからなる。
【0022】
道路データヘッダは、道路データのデータサイズ、リンク列レコードの数等を表す情報を有する。リンク列レコードは、道路の連なりを表すリンクの並びであるリンク列を表すデータであり、リンク列レコードヘッダとリンクレコードの並びから構成される。
リンクレコードは、当該リンク列を構成するリンクを表すデータであり、道路の連なりの順に並べられる。リンク列レコードヘッダは、リンク列レコードのデータサイズ、リンクレコードの数、道路の種類等を表す情報を有する。
【0023】
なお、リンクの両端のノードのうち、そのリンクが属するリンク列の先頭側に位置するノードをリンク先頭ノードと呼ぶ。また、便宜上、リンク列の終端に位置するノードも、リンク先頭ノードと呼ぶ。
【0024】
リンクレコードは、リンクレコードヘッダと、リンク先頭ノードが同一の他のリンク列のリンク先頭ノードを指し示す接続情報と、当該リンクの形状を表す形状点の位置を表す形状点データの並びである形状情報とから構成される。
リンクレコードヘッダは、リンクレコードのデータサイズ、形状点の数、当該リンクの道路幅員、通行規制等の各種属性を表す情報を有する。
形状点データは、当該リンクにおいてリンク先頭ノードからもう一方のノードに向う順に並べられ、先頭の形状点データとしてリンク先頭ノードの位置を表す正規化座標が格納され、以降の形状点には、1つ前に位置する形状点に対する相対座標がその形状点データとして格納される。
正規化座標は、X座標とY座標の順に格納され、相対座標のX成分を相対X座標と呼び、Y成分を相対Y座標と呼ぶ。相対X座標と相対Y座標は、それぞれ1バイトの整数で表されるので、相対座標は2バイト長となる。また、相対座標は、相対X座標、相対Y座標の順に地図情報記憶部3に格納される。
【0025】
図5は、リンク列の一例を示す図である。図5において、リンク列0は、図4のリンク列レコード0に対応しており、リンクL00〜L02を、リンクL00、リンクL01、リンクL02の順に並べたものである。
リンクL00の両端のノードは、ノードN00とノードN01であり、リンクL01の両端のノードは、ノードN01とノードN02であり、リンクL02の両端のノードは、ノードN02とノードN03である。
また、リンクL00のリンク先頭ノードはノードN00であり、リンクL01のリンク先頭ノードはノードN01、リンクL02のリンク先頭ノードはノードN02である。
なお、リンク列0の終端のノードN03もリンク先頭ノードとする。
【0026】
リンク列1は、図4のリンク列レコード1に対応しており、リンクL10,L11を、リンクL10、リンクL11の順に並べたものである。リンクL10の両端のノードは、ノードN10とノードN11であり、リンクL11の両端のノードは、ノードN11とノードN12である。また、リンクL10のリンク先頭ノードはノードN10であり、リンクL11のリンク先頭ノードはノードN11である。なお、リンク列1の終端のノードN12もリンク先頭ノードとする。
【0027】
図5において、ノードN01とノードN11とは同一地点にある。つまり、リンク列0とリンク列1は、この地点で交差しており、ノードN01とノードN11とは同一ノードである。この場合に、リンク列0のリンクL01に関するリンクレコードの接続情報は、リンクL01のリンク先頭ノードN01と同一のノードであるリンク列1のノードN11を示している。また、リンク列1のリンクL11に関するリンクレコードの接続情報は、リンクL11のリンク先頭ノードN11と同一のノードであるリンク列0のノードN01を示している。このように、交差点において交差するリンク列を辿るように接続情報を設けることにより、交差点において交差するリンク列を全て求めることができる。
【0028】
リンク列0の形状情報には、例えば、リンクL01の形状点として、形状点N01,S01〜S01が格納される。ここで、ノードN01の正規化座標を(X01,Y01)、S01の正規化座標を(X01,Y01)(i=1〜7)とするとき、先頭の形状点データ0として、正規化座標(X01,Y01)を格納し、形状点S01の形状点データiとして、相対座標(X01i−1−X01,Y01i−1−Y01)(i=1〜7)を格納する。他のリンクの形状点データの場合も同様にして形状情報に格納される。形状情報における形状点データの並び順を形状点番号と呼ぶ。
【0029】
なお、図4におけるリンクレコード0_3は、リンクレコードヘッダとノードN03の接続情報とから構成されており、形状情報は持たない。他のリンク列に対しても同様に、終端ノードに対するリンクレコードを設ける。
【0030】
また、道路データにおけるリンク列レコードの並び順をリンク列番号と呼び、リンク列レコードにおけるリンクレコードの並び順をリンク番号と呼び、リンク列番号とリンク番号を指定することで、特定のリンク、リンクレコードを指定することができる。例えば、図4において、リンク列番号が“0”で、リンク番号が“1”であると、リンクレコード0_1が特定され、図5に示すリンクL01が特定される。
【0031】
図6は、図2の背景データの一例を示す図である。図6に示すように、背景データは、面データ、線データ、点データ、及び、これらのデータを管理するための背景ヘッダから構成される。
【0032】
図7は、図6の背景データにおける面データの一例を示す図である。面データは、当該メッシュに存在する各面に対応して設けた面レコードの並びと、面レコードの数等を示す面ヘッダとから構成される。面レコードの並び順を面レコード番号と呼び、面を特定するために使用する。以下では、面レコード番号をMA(=0,1,2,3,4,・・・)で表す。なお、図7において、KA=面レコードの数−1である。
【0033】
面レコードは、面レコードのデータサイズ、面の種類、形状点データの数等を示す面レコードヘッダと、面の形状を表す形状情報とから構成される。形状情報は、面を構成する形状点の位置を表すための形状点データの並びから構成され、形状点データは、面に付与された所定の向きに形状点を辿る順に格納される。
なお、最初に格納された形状点を始点、最後に格納された形状点を終点と呼ぶ。
実施の形態1では、上記所定の向きを右回りとするが、左回りとしてもよく、面ヘッダに向きの情報を設け、多角形ごとに向きを定めてもよい。
【0034】
始点の形状点データには、始点の正規化座標が格納される。正規化座標は、X座標、Y座標の順に格納する。始点よりも後に並んだ形状点については、1つ前の形状点に対する相対座標をその形状点データとして格納する。上述したように、相対座標のX成分である相対X座標とY成分である相対Y座標は、それぞれ1バイトの整数で表すことから、相対座標は2バイト長となる。相対座標は、相対X座標、相対Y座標の順に格納される。
また、相対X座標、相対Y座標は、それぞれ−127〜127の値をとるようにする。
形状情報における形状点データの並び順を形状点番号と呼ぶ。
【0035】
この発明では、当該面の形状が他のオブジェクトの形状と平行する箇所を有するとき、平行箇所を構成する形状点列に対して1つの形状点データを設け、その形状点データとして参照箇所指示データを格納する。
【0036】
図8は、上述した参照箇所指示データの構成を示す図である。図8に示すように、参照箇所指示データは、相対X座標、オブジェクト種別、オブジェクト識別子、平行箇所開始情報、及び平行箇所終了情報から構成される。
相対X座標は、参照箇所指示データを他の形状点データから区別するための情報であって、参照箇所指示データの先頭の1バイトに設けられる。相対X座標としては、例えば、値を“−128”とする。このように、相対X座標の値を“−128”とすることで、他の形状点データの相対座標(−127〜127の値をとる)と区別できる。
【0037】
オブジェクト種別は、自身のオブジェクトとの間で平行箇所がある、他のオブジェクトの種類(道路、面、線)を示す情報である。
オブジェクト識別子は、オブジェクト種別で指定された種類のオブジェクトの中で平行箇所を含むオブジェクトを指定する。オブジェクト種別が道路のときのオブジェクト識別子は、該当するリンク列番号とリンク番号を示す。また、オブジェクト種別が面のときのオブジェクト識別子は、該当する面レコード番号を示す。オブジェクト種別が線のときのオブジェクト識別子は、該当する線レコード番号を示す。
【0038】
平行箇所開始情報は、オブジェクト種別とオブジェクト識別子で指定されたオブジェクト(平行箇所を有する相手のオブジェクト)において、平行箇所の開始点となる形状点を示す情報であり、平行箇所の開始点となる形状点の形状点番号が設定される。
平行箇所終了情報は、オブジェクト種別とオブジェクト識別子で指定されたオブジェクトにおいて、平行箇所が終了する形状点を示す情報であり、平行箇所の終了点となる形状点の形状点番号が設定される。
なお、平行箇所終了情報を、形状点番号でなく、平行箇所の形状点の数としてもよい。この場合、平行箇所開始情報に設定された形状点番号が、平行箇所終了情報に設定された形状点番号よりも大きいときは、平行箇所の形状点の数を負とする。
【0039】
図9は、図6の背景データにおける線データの一例を示す図である。線データは、当該メッシュに存在する各線に対応して設けた線レコードの並びと、線レコードの数等を示す線ヘッダとから構成される。ここで、線レコードの並び順を線レコード番号と呼び、線を特定するために使用する。以下では、線レコード番号をML(=0,1,2,3,4,・・・)で表す。なお、図9において、KL=線レコードの数−1である。
【0040】
また、線レコードは、線レコードのデータサイズ、線の種類、形状点データの数等を示す線レコードヘッダと、線の形状を表す形状情報とから構成される。
形状情報は、線を形作る形状点の位置を表す形状点データの並びから構成され、形状点データは、折れ線に付与された所定の向きで形状点を辿る順に格納される。
なお、最初に格納された形状点を始点、最後に格納された形状点を終点と呼ぶ。
【0041】
始点の形状点データには、始点の正規化座標が格納される。正規化座標は、X座標、Y座標の順に格納する。始点より後に並んだ形状点については、1つ前の形状点に対する相対座標をその形状点データとして格納する。
上述したように、相対座標のX成分である相対X座標とY成分である相対Y座標とは、それぞれ1バイトの整数で表されるので、相対座標は2バイト長となる。相対座標は、相対X座標、相対Y座標の順に格納される。
また、相対X座標、相対Y座標は、それぞれ−127〜127の値をとるようにする。
形状情報における形状点データの並び順を形状点番号と呼ぶ。
【0042】
この発明では、当該線の形状が他のオブジェクトの形状と平行する箇所を有するとき、平行箇所を構成する形状点列に対して1つの形状点データを設けて、面の場合と同様に、その形状点データとして、図8に示す参照箇所指示データを格納する。
【0043】
図10は、面の形状の一部が道路の形状の一部と平行箇所を有する場合を説明するための図である。図10において、面A0は、図7に示す面レコード0に対応する。また、面A0の形状点A0〜A0は、図5に示すリンク列0のリンクL01における形状点S01〜S01と平行になっている。従って、形状点S012+n(n=0,1,・・・,4)の正規化座標から形状点A03+nの正規化座標を減じて得られる離隔量は、全て同一である。
【0044】
図11は、図10の面A0の形状情報を示す図である。図11に示すように、面A0の形状情報には、形状点AP0の形状点データ0として、形状点AP0の正規化座標が格納され、形状点AP0の形状点データ1として、形状点AP0に対する形状点AP0の相対座標が格納され、形状点AP0の形状点データ2として、形状点AP0に対する形状点AP0の相対座標が格納され、形状点AP0の形状点データ3として、形状点AP0に対する形状点AP0の相対座標が格納される。
形状点データ3に続いて、形状点データ4として、形状点AP0〜AP0に関する参照箇所指示データが格納される。この参照箇所指示データには、相対X座標として、“−128”が設定され、オブジェクト種別として、平行箇所を有する相手の種別である“道路”が設定され、オブジェクト識別子として、当該道路を特定するリンク列番号“0”及びリンク番号“1”が設定される。さらに、平行箇所開始情報として、面A0の向きで道路側の平行箇所開始点となる形状点(S01)の形状点番号“2”が設定され、平行箇所終了情報として、面A0の向きで道路側の平行箇所終了点となる形状点(S01)の形状点番号“6”が設定される。
さらに、形状点データ4に続いて、形状点AP0の形状点データ5である、形状点AP0に対する形状点AP0の相対座標が格納され、形状点AP0の形状点データ6である、形状点AP0に対する形状点AP0の相対座標が格納される。
【0045】
図12は、面の形状の一部が他の面の形状の一部と平行箇所を有する場合を説明するための図である。図12において、面A1は、図7の面レコード1に対応し、面A2は、図7における面レコード2(MA=2)に対応する。面A2における形状点AP2〜AP2が存在する部分が、面A1の形状点AP1〜AP1が存在する部分と平行になっている。従って、形状点AP15−n(n=0,1,2,3)の正規化座標から形状点AP22+nの正規化座標を減じて得られる各離隔量は全て同一である。
【0046】
図13は、図12の面A1の形状情報の一例を示す図である。図13に示すように、面A1の形状情報には、形状点AP1の形状点データ0として、形状点AP1の正規化座標が格納される。これに続き、形状点AP1の形状点データ1として形状点AP1に対する形状点AP1の相対座標が格納され、以降同様にn=2〜6に対して、形状点AP1の形状点データnとして形状点AP1n−1に対する形状点AP1の相対座標が格納される。
【0047】
図14は、図12の面A2の形状情報の一例を示す図である。図14に示すように、面A2の形状情報には、形状点AP2の形状点データ0として、形状点AP2の正規化座標が格納される。これに続き、形状点AP2の形状点データ1として形状点AP2に対する形状点AP2の相対座標が格納され、形状点AP2の形状点データ2として形状点AP2に対する形状点AP2の相対座標が格納される。
この後、形状点データ3として形状点AP2〜AP2に関する参照箇所指示データが格納される。参照箇所指示データには、相対X座標として、“−128”が設定され、オブジェクト種別として、平行箇所を有する相手(面A1)の種別である“面”が設定され、オブジェクト識別子として、面A1の面レコード番号である“1”が設定され、平行箇所開始情報として、面A2の向きで面A1側の平行箇所開始点となる形状点(AP1)の形状点番号“5”が設定され、平行箇所終了情報として、面A2の向きで面A1側の平行箇所終了点となる形状点(AP1)の形状点番号“2”が設定される。
上記参照箇所指示データに続いて、面A2の形状情報には、形状点AP2の形状点データ4として、形状点AP2に対する形状点AP2の相対座標が格納される。
【0048】
図15は、面の形状の一部が線の一部と平行箇所を有する場合を説明するための図である。図15において、線LN1は、図9に示す線レコード1に対応している。また、面A3は、図7における面レコード3(MA=3)に対応する。
面A3における形状点AP3〜AP3が存在する部分が、線LN1における形状点LP1〜LP1が存在する部分と平行になっている。従って、形状点LP15−n(n=0,1,2,3)の正規化座標から形状点AP32+nの正規化座標を減じて得られる離隔量は全て同一である。
【0049】
図16は、図15の線LN1の形状情報の一例を示す図である。図16に示すように、線LN1の形状情報には、形状点LP1の形状点データ0として、形状点LP1の正規化座標が格納される。これに続いて、形状点LP1の形状点データ1として、形状点LP1に対する形状点LP1の相対座標が格納され、以降同様にn=2〜6に対して、形状点LP1の形状点データnとして、形状点LP1n−1に対する形状点LP1の相対座標が格納される。
【0050】
図17は、図15の面A3の形状情報の一例を示す図である。図17に示すように、面A3の形状情報には、形状点AP3の形状点データ0として、形状点AP3の正規化座標が格納される。これに続き、形状点AP3の形状点データ1として形状点AP3に対する形状点AP3の相対座標と、形状点AP3の形状点データ2として形状点AP3に対する形状点AP3の相対座標が格納される。
この後、形状点データ3として形状点AP3〜AP3に関する参照箇所指示データが格納される。参照箇所指示データには、相対X座標として、“−128”が設定され、オブジェクト種別として、平行箇所を有する相手(線LN1)の種別である“線”が設定され、オブジェクト識別子として、線LN1の線レコード番号である“1”が設定され、平行箇所開始情報として、面A3の向きで線LN1側の平行箇所開始点となる形状点(LP1)の形状点番号“5”が設定され、平行箇所終了情報として、面A3の向きで線LN1側の平行箇所終了点となる形状点(LP1)の形状点番号“2”が設定される。
上記参照箇所指示データに続いて、面A3の形状情報には、形状点AP3の形状点データ4として、形状点AP3に対する形状点AP3の相対座標が格納される。
【0051】
図18は、線の一部が面の形状の一部と平行箇所を有する場合を説明するための図である。図18において、線LN0は、図9に示す線レコード0に対応している。面A4は、図7における面レコード4(MA=4)に対応する。
面A4における形状点AP4〜AP4が存在する部分が、線LN0における形状点LP0〜LP0が存在する部分と平行になっている。従って、形状点AP42+n(n=0,1,2,3)の正規化座標から形状点LP02+nの正規化座標を減じて得られる離隔量は全て同一である。
【0052】
図19は、図18の面A4の形状情報の一例を示す図である。図19に示すように、面A4の形状情報には、形状点AP4の形状点データ0として、形状点AP4の正規化座標が格納される。これに続いて、形状点AP4の形状点データ1として、形状点AP4に対する形状点AP4の相対座標が格納され、以降同様にn=2〜6に対して、形状点AP4の形状点データnとして、形状点AP4n−1に対する形状点AP4の相対座標が格納される。
【0053】
図20は、図18の線LN0の形状情報の一例を示す図である。図20に示すように、線LN0の形状情報には、形状点LP0の形状点データ0として、形状点LP0の正規化座標が格納される。これに続いて、形状点LP0の形状点データ1として形状点LP0に対する形状点LP0の相対座標と、形状点LP0の形状点データ2として形状点LP0に対する形状点LP0の相対座標が格納される。
この後、形状点データ3として形状点LP0〜LP0に関する参照箇所指示データが格納される。参照箇所指示データには、相対X座標として、“−128”が設定され、オブジェクト種別として、平行箇所を有する相手(面A4)の種別である“面”が設定され、オブジェクト識別子として、面A4の面レコード番号である“4”が設定され、平行箇所開始情報として線LN0の方向で面A4側の平行箇所開始点となる形状点(AP4)の形状点番号“2”が設定され、平行箇所終了情報として線LN0の方向で面A4側の平行箇所終了点となる形状点(LP4)の形状点番号“5”が設定される。
上記参照箇所指示データに続いて、線LN0の形状情報には、形状点LP0の形状点データ4として、形状点LP0に対する形状点LP0の相対座標が格納され、形状点LP0の形状点データ5として、形状点LP0に対する形状点LP0の相対座標が格納される。
【0054】
上記の場合の他、線の一部が道路形状の一部と平行な箇所を有する場合や、線の一部が他の線の一部と平行な箇所を有する場合についても、形状情報は、上記と同様なデータ構成となる。
【0055】
上述したように、実施の形態1では、オブジェクト間で形状の一部に平行箇所を有する場合に、一方のオブジェクトで当該平行箇所の形状点の相対座標を格納しないので、オブジェクトのデータ量を削減できる。
また、平行箇所の形状点の相対座標の代わりに上記一方のオブジェクトに参照箇所指示データを設けることで、他方のオブジェクトの平行箇所の形状点の相対座標を元に、当該一方のオブジェクトの平行箇所の形状点の正規化座標を算出することができる。
従って、平行箇所の形状点の相対座標に相当するデータ量を削減しつつ、参照箇所指示データを設けたオブジェクトの形状を描画することが可能である。平行箇所の形状を描画する処理の詳細は、図21、図22、図23を用いて後述する。
【0056】
なお、上述の例では、平行箇所を有するオブジェクトが1対1の場合を示したが、平行箇所を有するオブジェクトが1対N(複数)であっても構わない。この場合、1つのオブジェクトを、参照箇所指示データで平行箇所が参照される参照先のオブジェクトとし、残りのN個のオブジェクトを、自身の平行箇所における形状点の正規化座標を算出する際、当該参照箇所指示データで指示される上記参照先のオブジェクトの平行箇所を参照する参照元のオブジェクトとする。つまり、参照先のオブジェクトの形状情報に平行箇所の形状点の相対座標を格納し、参照元となる残りのN個のオブジェクトの形状情報には、当該平行箇所を参照する参照箇所指示データをそれぞれ設ける。このようにすることで、オブジェクトのデータ量をさらに削減することが可能である。
【0057】
次に動作について説明する。
図21は、図1の地図情報処理装置による地図描画処理に関する動作の流れを示すフローチャートである。以降では、マップマッチング処理で得られた現在位置を含む所定の階層のメッシュを中心とした所定数のメッシュの地図を描画する場合を述べる。
【0058】
プロセッサ4は、マップマッチング処理で得られた現在位置を含む所定の階層のメッシュを中心とした所要のメッシュを決定する(ステップST100)。
ステップST110において、プロセッサ4の描画処理部7は、ステップST100で決定された所定の階層の所要のメッシュのうち、1つのメッシュの地図データを地図情報記憶部3から読み取る。
【0059】
描画処理部7は、ステップST110で読み取った地図データの背景データの面データ、線データ及び点データに従って、面、線、点を描画メモリ8に描画する(ステップST120)。
【0060】
次に、描画処理部7は、ステップST110で読み取った地図データの道路網データにおける道路データの各リンク列レコードの形状情報に従って、道路を描画メモリ8に描画する(ステップST130)。
続いて、描画処理部7は、ステップST110で読み取った地図データの名称データに従って、名称を描画メモリ8に描画する(ステップST140)。
【0061】
ステップST150において、描画処理部7は、ステップST100で決定した所要のメッシュの全ての地図データの描画が終了したか否かを判定する。ここで、全ての地図データの描画が終了していれば(ステップST150;YES)、ステップST160の処理へ移行する。また、全ての地図データの描画が終了していなければ(ステップST150;NO)、描画処理部7は、ステップST110の処理へ戻り、残りのメッシュの地図データの描画を行う。
【0062】
ステップST160では、プロセッサ4の表示制御部9が、上述した一連のステップの処理で描画メモリ8に描画された地図を表示部5に表示する。
【0063】
図22は、面データ又は線データの描画処理の詳細を示すフローチャートであり、図21のステップST120の処理に相当する。
先ず、描画処理部7が、面データの描画時には、本ステップに来るたびに地図情報記憶部3に記憶される面データから面レコードを1つずつ取り出し、線データの描画時には、本ステップに来るたびに地図情報記憶部3に記憶される線データから線レコードを1つずつ取り出す(ステップST200)。
なお、面レコード又は線レコードは、本ステップに来るごとにそれぞれの並びの順に取り出される。例えば、面データ描画時であれば、本ステップに来たときに、図7に示した面レコードが、面レコード0,面レコード1,・・・,面レコードKAの順に取り出される。また、線データ描画時であれば、本ステップに来たときに、図9に示した線レコードが、線レコード0,線レコード1,・・・,線レコードKLの順に取り出される。
【0064】
次に、描画処理部7は、ステップST200で取得したレコード(面レコード又は線レコード)の形状情報の先頭に格納されている始点の形状点データを取り出す(ステップST210)。例えば、面データ描画時であれば、面レコード0における形状情報(例えば、図11参照)から形状点データ0が取り出される。図7に示す面レコードMA(MA=1,2,3,4,・・・)においても同様である。また、線データ描画時であれば、線レコード0における形状情報(例えば、図20参照)から形状点データ0が取り出される。図9に示す線レコードML(ML=1,2,3,4,・・・)においても同様である。
【0065】
プロセッサ4のメモリには、面又は線の形状点の正規化座標を格納するための形状点列データが設けられる。形状点の正規化座標を形状点列データに格納する順序は、面又は線に規定された、形状点を配列する方向の順である。
ここでは、面の形状点の正規化座標は始点から右回りの順に形状点列データに格納し、線の形状点の正規化座標は、始点から終点に向かう順に形状点列データに格納する。
形状点列データに新たに追加する正規化座標は、それまで形状点列データに格納されていた正規化座標の次に格納される。
なお、形状点列データに格納されている正規化座標のうち、末尾の正規化座標を、形状点列データの末尾の正規化座標と呼ぶ。
【0066】
ステップST220において、描画処理部7は、ステップST210で取得した形状点データ、すなわち始点の正規化座標を、上記の形状点列データの先頭に格納する。
例えば、図7に示す面レコード0に対して、図10に示す形状点AP0の正規化座標が形状点列データの先頭に格納される。図7に示す面レコードMA(MA=1,2,3,4,・・・)においても同様である。
図9に示す線レコード0に対して、図18に示す形状点LP0の正規化座標が形状点列データの先頭に格納される。図9に示す線レコード1においても同様である。
【0067】
ステップST230では、描画処理部7が、本ステップに来るたびに、ステップST200で取得したレコード(面レコード又は線レコード)の形状情報から始点以降の形状点データを1つずつ取り出す。なお、形状点データは、本ステップST230に来るたびに形状情報における並びの順に取り出される。
例えば、面データ描画時であれば、本ステップST230に来たときに、図7に示した面レコード0の形状情報(図11参照)から形状点データ1、形状点データ2、・・・、形状点データ6の順に取り出される。図7に示す面レコードMA(MA=1,2,3,4,・・・)においても同様である。
また、線データ描画時であれば、本ステップST230に来たときに、図9に示した線レコード0の形状情報(図20参照)から形状点データ1、形状点データ2、・・・、形状点データ5の順に取り出される。図9に示す線レコード1においても同様である。
【0068】
次に、描画処理部7は、ステップST230で取得した形状点データが参照箇所指示データであるか否かを判定する(ステップST240)。ここでは、形状点データの最初の1バイトの値が“−128”であるか否かが調べられ、“−128”であれば、当該形状点データは参照箇所指示データであるものとして(ステップST240;YES)、ステップST250の処理へ移行する。
また、“−128”でなければ、当該形状点データは参照箇所指示データではなく(ステップST240;NO)、当該形状点データは、相対座標を表すものとして、ステップST260の処理へ移行する。
例えば、面データ描画時であれば、図7に示した面レコード0の形状情報(図11参照)おいて、形状点データ1から形状点データ3まで、形状点データ5、形状点データ6には、相対座標が格納されており、最初の1バイトは−127〜127の相対X座標であるため、ステップST260の処理へ移行する。また、形状点データ4については、最初の1バイトに“−128”が格納されており、参照箇所指示データであるため、ステップST250の処理へ移行する。図7における面レコード2(MA=2)の形状情報(図14参照)、図7における面レコード3(MA=3)の形状情報(図17参照)についても同様である。
なお、図7に示す面レコード1の形状情報(図13参照)と、図7に示す面レコード4の形状情報(図19参照)は、先頭以外の形状点データが全て相対座標であるため、全てステップST260の処理へ移行する。
線データ描画時であれば、図9に示す線レコード0の形状情報(図20参照)おいて、形状点データ1、形状点データ2、形状点データ4、形状点データ5には、相対座標が格納されており、最初の1バイトは−127〜127の相対X座標であるため、ステップST260の処理へ移行する。
また、形状点データ3については、最初の1バイトに“−128”が格納されており、参照箇所指示データであるため、ステップST250の処理へ移行する。
図9における線レコード1の形状情報(図16参照)については、先頭以外の形状点データは全て相対座標であるため、全てステップST260の処理へ移行する。
【0069】
ステップST250において、描画処理部7の形状算出部10は、ステップST230で取得した形状点データ、すなわち、参照箇所指示データが示す参照先のオブジェクトの平行箇所における形状点を、当該参照箇所指示データが設定された参照元のオブジェクトの平行箇所に相当する部分へ平行移動させた点として、当該参照元のオブジェクトにおける平行箇所の形状点の正規化座標を算出し、形状点列データに追加する。
例えば、図10に示す場合には、形状算出部10が、リンクL01の形状点S01〜S01を平行移動して、面A0における平行箇所の形状点AP0〜AP0の正規化座標を算出する。算出した形状点AP0〜AP0の正規化座標は、形状点列データに追加される。
また、図12に示す場合、形状算出部10が、面A1の形状点AP1〜AP1を平行移動して、面A2の平行箇所の形状点AP2〜AP2の正規化座標を算出する。算出した形状点AP2〜AP2の正規化座標は、形状点列データに追加される。
図15の場合は、形状算出部10が、線LN1の形状点LP1〜LP1を平行移動して、面A3の平行箇所の形状点AP3〜AP3の正規化座標を算出する。算出した形状点AP3〜AP3の正規化座標は、形状点列データに追加される。
図18の場合には、形状算出部10が、面A4の形状点AP4〜AP4を平行移動して、線LN0の平行箇所の形状点LP0〜LP0の正規化座標を算出する。算出した形状点LP0〜LP0の正規化座標は、形状点列データに追加される。
【0070】
ステップST260において、形状算出部10は、ステップST230で取得した形状点データが示す相対座標を形状点列データの末尾の正規化座標に加算し、加算結果の座標を、当該形状点データに対応する形状点の正規化座標として求める。
形状算出部10は、ステップST260にて求めた正規化座標を形状点列データに追加する(ステップST270)。
【0071】
例えば、形状情報に参照箇所指示データが含まれる場合には、図7に示す面レコード0の形状情報(図11参照)に対して、ステップST230で形状点データ1が取得されているとき、ステップST260において、形状点列データの末尾には、図10に示す形状点AP0の正規化座標が格納されている。そこで、形状点AP0の正規化座標に形状点データ1の相対座標を加算することで、図10に示す形状点AP0の正規化座標が算出され、ステップST270で形状点AP0の正規化座標が形状点列データに追加される。
【0072】
ステップST230で形状点データ2が取得されているときには、ステップST260において、形状点列データの末尾には、図10に示す形状点AP0の正規化座標が格納されている。そこで、形状点AP0の正規化座標に形状点データ2の相対座標を加算することで、図10に示す形状点AP0の正規化座標が算出され、ステップST270で形状点AP0の正規化座標が形状点列データに追加される。
【0073】
ステップST230で形状点データ3が取得されているときには、ステップST260において、形状点列データの末尾には、図10に示す形状点AP0の正規化座標が格納されている。そこで、形状点AP0の正規化座標に形状点データ3の相対座標を加算することで、図10に示す形状点AP0の正規化座標が算出され、ステップST270で形状点AP0の正規化座標が形状点列データに追加される。
【0074】
また、ステップST230で形状点データ5が取得されているときには、既に参照箇所指示データである形状点データ4が取得されて、ステップST250で上記の処理が実行され、形状点列データの末尾には、図10に示す形状点AP0の正規化座標が格納されている。そこで、ステップST260で形状点AP0の正規化座標に形状点データ5の相対座標を加算することで、図10に示す形状点AP0の正規化座標が算出され、ステップST270で形状点AP0の正規化座標が形状点列データに追加される。
【0075】
ステップST230で形状点データ6が取得されているとき、ステップST260において、形状点列データの末尾には、図10に示す形状点AP0の正規化座標が格納されている。そこで、形状点AP0の正規化座標に形状点データ6の相対座標を加算することで、図10に示す形状点AP0の正規化座標が算出され、ステップST270で形状点AP0の正規化座標が形状点列データに追加される。
この時点で、形状点列データには、図10に示す面A0の形状点AP0〜AP0の順にそれらの正規化座標が格納されている。
【0076】
なお、図7における面レコード2(MA=2)の形状情報(図14参照)についても、上記と同様の処理を実行することで、図12に示す面A2の各形状点の正規化座標が形状点列データに格納される。
また、図7における面レコード3(MA=3)の形状情報(図17参照)についても、上記と同様の処理を実行することで、図15に示す面A3の各形状点の正規化座標が形状点列データに格納される。
さらに、図9に示す線レコード0の形状情報(図20参照)に対しても、上記と同様の処理を実行することで、図18に示す線LN0の各形状点の正規化座標が形状点列データに格納される。
【0077】
一方、形状情報に参照箇所指示データを含まない場合には、図7に示す面レコード1の形状情報(図13参照)に対して、ステップST230で形状点データ1が取得されているとき、ステップST260において、形状点列データの末尾には、図12に示す形状点AP1の正規化座標が格納されている。そこで、形状点AP1の正規化座標に形状点データ1の相対座標を加算することにより、図12に示す形状点AP1の正規化座標が算出され、ステップST270で形状点AP1の正規化座標が形状点列データに追加される。
【0078】
ステップST230で形状点データ2が取得されているとき、ステップST260において、形状点列データの末尾には、図12に示す形状点AP1の正規化座標が格納されている。そこで、形状点AP1の正規化座標に形状点データ2の相対座標を加算することにより、図12に示す形状点AP1の正規化座標が算出され、ステップST270で形状点AP1の正規化座標が形状点列データに追加される。
【0079】
ステップST230で形状点データ3〜6が取得されているときも、上記と同様の処理を実行することで、ステップST260において、形状点列データの末尾には、図12に示す形状点AP1〜AP1の正規化座標が算出され、ステップST270で、算出結果の各正規化座標が形状点列データに追加される。
【0080】
形状点AP1の正規化座標が形状点列データに追加された時点で、形状点列データには、図12に示す面A1の形状点AP0〜AP0の順にそれらの正規化座標が格納されている。
また、図7における面レコード4(MA=4)の形状情報(図19参照)についても、上記と同様の処理を施すことにより、図18に示す面A4の形状点の正規化座標が形状点列データに格納される。
さらに、図9に示す線レコード1の形状情報(図16参照)についても、上記と同様の処理を施すことにより、図15に示す線LN1の形状点の正規化座標が形状点列データに格納される。
【0081】
続いて、形状算出部10は、ステップST230で取得された形状点データが、終点の形状点データであるか否かを判定する(ステップST280)。ここで、終点であれば(ステップST280;YES)、ステップST290の処理へ移行する。終点でなければ(ステップST280;NO)、ステップST230の処理へ戻る。
本ステップST280によって、ステップST200で取得されたレコードの始点以外の全ての形状点データについてステップST230からステップST270までの処理が行われる。
【0082】
形状算出部10は、形状点列データに格納される各正規化座標に対応する形状点を、形状点列データの先頭から順に、次に格納されている正規化座標に対応する形状点との間の直線データを描画メモリ8へ書き込むことで、各形状点を結んだ直線を描画する(ステップST290)。
線データ描画時には、形状点列データの末尾の正規化座標に対応する形状点への直線を描画すると、本ステップST290を終了する。一方、面データ描画時には、形状点列データの末尾の正規化座標に対応する形状点を描画した後、当該形状点から、形状点列データの先頭の正規化座標に対応する形状点との間の直線を描画して、本ステップST290を終了する。
例えば、図10に示す面A0の形状点AP0〜AP0の正規化座標が、形状点列データに順に格納されている場合、形状点AP0(n=0,1,2,・・・,8)と形状点AP0n+1との間をそれぞれ結ぶ直線データが描画され、最後に形状点AP0と形状点AP0との間を結ぶ直線データが描画された時点でステップST290が終了する。
また、図18に示す線LN0の形状点LP0〜LP0の正規化座標が形状点列データに格納されている場合は、形状点AP0(n=0,1,2,・・・,6)と形状点AP0n+1との間をそれぞれ結び直線データが描画された時点でステップST290が終了する。
図12に示す面A1,A2、図15に示す面A3、図18に示す面A3、図15に示す線LN1についても、上記と同様にして描画される。
【0083】
なお、上記描画において、線の色、線のパターン、面の色、面のパターン等は、ステップST200で取得したレコードのレコードヘッダにおける線の種類又は面の種類に応じて定められる。
【0084】
ステップST300において、形状算出部10は、面データ又は線データにおける全てのレコードについて、上記の描画処理が終了したか否かを調べる。このとき、終了していなければ(ステップST300;NO)、ステップST200へ戻り、終了していれば(ステップST300;YES)、面データ又は線データの描画処理を終了する。
【0085】
図23は、形状算出及び形状点列データへの追加処理の詳細を示すフローチャートであり、図22のステップST250の処理に相当する。
先ず、形状算出部10は、ステップST230で取得した形状点データ、すなわち参照箇所指示データのオブジェクト種別及びオブジェクト識別子が示すリンクレコード、面レコード、線レコードを、地図情報記憶部3から取得する(ステップST400)。
例えば、ステップST230で取得された参照箇所指示データが、図11に示す形状点データ4の参照箇所指示データである場合、この参照箇所指示データのオブジェクト種別は“道路”であり、オブジェクト識別子は、図4に示す道路データのリンク列レコード0のリンクレコード0_1を示している。このため、リンクレコード0_1が取得される。
ステップST230で取得された参照箇所指示データが、図14に示す形状点データ3の参照箇所指示データである場合は、この参照箇所指示データにおけるオブジェクト種別は“面”であり、オブジェクト識別子は、図7に示す面レコード1を示している。このため、面レコード1が取得される。
ステップST230で取得された参照箇所指示データが、図17に示す形状点データ3の参照箇所指示データであるときには、この参照箇所指示データのオブジェクト種別は“線”であり、オブジェクト識別子は、図9に示す線レコード1を示している。このため、線レコード1が取得される。
ステップST230で取得された参照箇所指示データが、図20に示す形状点データ3の参照箇所指示データであるとき、この参照箇所指示データのオブジェクト種別は“面”であり、オブジェクト識別子は、図7における面レコード4(MA=4)を示している。このため、面レコード4が取得される。
【0086】
ステップST410において、形状算出部10は、ステップST230で取得された形状点データ、すなわち参照箇所指示データの平行箇所開始情報が示す形状点番号(以下、開始形状点番号と呼ぶ)と平行箇所終了情報が示す形状点番号(以下、終了形状点番号と呼ぶ)とを比較し、この比較結果から、オブジェクト間の平行箇所の対応関係が逆か否かを判定する。具体的には、開始形状点番号が終了形状点番号よりも大きい場合、平行箇所の対応関係が逆であるとして(ステップST410;YES)、ステップST420の処理へ移行し、開始形状点番号が終了形状点番号よりも小さい場合には、平行箇所の対応関係が同一であるとして(ステップST410;NO)、ステップST430の処理へ移行する。
【0087】
ステップST420では、形状算出部10が、終了形状点番号の1つ前の形状点番号の形状点データから逆の順に開始形状点番号の形状点データまでを辿り、順次、形状点列データの末尾の正規化座標から上記形状点データが示す相対座標を減ずることによって得られた正規化座標を形状点列データに追加し、ステップST250の処理を終了する。
例えば、ステップST230で取得された参照箇所指示データが、図14に示す形状情報における形状点データ3の参照箇所指示データであるとき、開始形状点番号は“5”、終了形状点番号は“2”である。このため、ステップST410で対応関係が逆と判定されて当該ステップST420へ来ている。
また、ステップST250に来たとき、形状点列データには、図12に示す形状点AP2,AP2,AP2の順にそれらの正規化座標が格納されているため、当該ステップST420へ来た時点では、形状点列データの末尾には、形状点AP2の正規化座標が格納されている。
そこで、形状算出部10は、ステップST400で取得された、図7に示す面レコード1から、図13に示す形状点データ4、すなわち形状点AP1の相対座標を取得して、形状点列データの末尾にある形状点AP2の正規化座標から上記相対座標を減ずることにより、形状点AP2の正規化座標を算出し、形状点列データに追加する。
次に、形状算出部10は、面レコード1の図13に示す形状情報から形状点データ3、すなわち形状点AP1の相対座標を取得して、形状点列データの末尾にある形状点AP2の正規化座標から当該相対座標を減ずることにより、形状点AP2の正規化座標を算出し、形状点列データに追加する。
続いて、形状算出部10は、面レコード1から図13に示す形状点データ2、すなわち形状点AP1の相対座標を取得して、形状点列データの末尾にある形状点AP2の正規化座標から当該相対座標を減ずることにより、形状点AP2の正規化座標を算出し、形状点列データに追加する。
上述のようにして、形状算出部10が、形状点AP1,AP1,AP1の相対座標と形状点列データの末尾にある面A2の形状点の正規化座標とを用いて、面A1の形状点AP1,AP1,AP1を面A2へそれぞれ平行移動した点として、面A2の形状点AP2,AP2,AP2の正規化座標を算出し、形状点列データに追加する。
なお、ステップST230で取得された参照箇所指示データが、図17に示す形状情報における形状点データ3の参照箇所指示データであるときであっても、上記と同様にして、図15に示す形状点LP1,LP1,LP1を面A3へそれぞれ平行移動した点として、面A3の形状点AP3,AP3,AP3の正規化座標が算出され、形状点列データに追加される。
【0088】
ステップST430では、形状算出部10が、開始形状点番号の1つ後(次)の形状点番号の形状点データから順に終了形状点番号の形状点データまでを辿り、順次、形状点列データの末尾の正規化座標から上記形状点データが示す相対座標を加算することによって得られた正規化座標を形状点列データに追加し、ステップST250の処理を終了する。
例えば、ステップST230で取得された参照箇所指示データが、図11に示す形状情報における形状点データ4の参照箇所指示データであるとき、開始形状点番号は“2”、終了形状点番号は“6”である。このため、ステップST410で対応関係が同一と判定されて、当該ステップST430へ来ている。
また、ステップST250に来たときには、形状点列データには、図10に示す形状点AP0,AP0,AP0,AP0の順にそれらの正規化座標が格納されているため、当該ステップST430へ来た時点では、形状点列データの末尾には、形状点AP0の正規化座標が格納されている。
そこで、形状算出部10は、ステップST400で取得された、図4に示すリンクレコード0_1から、図4に示す形状点データ3、すなわち、図10に示す形状点S01の相対座標を取得し、形状点列データの末尾にある形状点AP0の正規化座標に当該相対座標を加算ことで、図11に示す形状点AP0の正規化座標を算出して形状点列データに追加する。
次に、形状算出部10は、リンクレコード0_1から図4に示す形状点データ4、すなわち、形状点S01の相対座標を取得し、形状点列データの末尾にある形状点AP0の正規化座標に当該相対座標を加算することで、形状点AP0の正規化座標を算出して形状点列データに追加する。同様にして、形状点AP06,AP0の正規化座標を算出し、形状点列データに追加する。
このようにして、リンクL01の形状点S01,S01,S01,S01を面A0へそれぞれ平行移動した点として、面A0の形状点AP0,AP0,AP0,AP0の正規化座標が求められ、形状点列データに追加される。
なお、ステップST230で取得された参照箇所指示データが、図20に示す形状情報における形状点データ3の参照箇所指示データであるときであっても、上記同様にして、図18に示す形状点AP4,AP4,AP4を線LN0へそれぞれ平行移動した点として、線LN0の形状点LP0,LP0,LP0の正規化座標が算出され、形状点列データに追加される。
【0089】
従来の地図情報処理装置では、2つのオブジェクト間で平行箇所を含んでいる場合であっても、形状点の座標をオブジェクトごとに独立してデータ化しているために、データ化する際に発生した誤差によって2つのオブジェクトが平行に描画されなかったり、2つのオブジェクトが近接している場合には、平行箇所で2つのオブジェクトの形状が重なって描画される場合があった。
これに対して、本発明の実施の形態1では、上記のように、一方のオブジェクトの平行箇所における形状点の正規化座標を、他方のオブジェクトの平行箇所の形状点を上記一方のオブジェクトへそれぞれ平行移動した点として算出する。このようにすることで、オブジェクトの該当箇所を正確に平行に描画することができ、オブジェクト間が非常に近接している場合であっても、平行箇所で2つのオブジェクトの形状が重なって描画されることを防止できる。
【0090】
以上のように、この実施の形態1によれば、一方のオブジェクトと他方の1つ又は複数のオブジェクトとで互いに平行となる平行箇所を有する場合に、1つ又は複数のオブジェクトの形状情報には、平行箇所の形状を表すデータの代わりに、一方のオブジェクトの平行箇所を指定する参照箇所指示データを格納し、当該参照箇所指示データで指定された平行箇所を含む一方のオブジェクトの形状情報を用いて1つ又は複数のオブジェクトの平行箇所の形状を算出する。このようにオブジェクト形状の一部のデータを持たないようにすることで、オブジェクトの形状情報のデータ量を削減できる。
また、参照箇所指示データで指定された平行箇所の形状を表すデータを用いて1つ又は複数のオブジェクトの平行箇所の形状を算出することから、形状情報から除去した箇所の形状点の座標データを持たなくても、除去した箇所の形状を求めることができる。
【0091】
また、この実施の形態1によれば、形状算出部10が、参照箇所指示データで指定された平行箇所の形状を表す形状点列を1つ又は複数のオブジェクトへ平行移動した点列として、1つ又は複数のオブジェクトにおける平行箇所の形状を算出するので、オブジェクトの形状情報のデータ量を削減しつつ、形状情報から除去した箇所の形状点の座標データを持たなくても、除去した箇所の形状を求めることができる。
【0092】
さらに、この実施の形態1によれば、形状情報が、オブジェクトの形状を表す形状点列を所定向きに辿った先頭の形状点を、地図に設定した所定の座標系で一意に位置が決定される正規化座標で表し、先頭以降の形状点を、先頭の形状点から所定向きに形状点を辿った順に1つ前に辿った形状点の座標に対する相対座標で表し、一方のオブジェクトと他方の1つ又は複数のオブジェクトとで互いに平行となる平行箇所を有する場合に、1つ又は複数のオブジェクトの形状情報には、平行箇所の形状を表すデータの代わりに、一方のオブジェクトの平行箇所を指定する参照箇所指示データを格納する。
このように相対位置を使用したことで形状点のデータ量を削減できる。
また、平行箇所の形状点列の各点に対して相対位置を表す形状点データを設けずに平行箇所の形状点列に対する形状点データとして参照箇所指示データを設けたことで、データ量を削減できる。
さらに、相対位置を使用することで離隔量による平行移動が不要なため、参照箇所指示データで指定された平行箇所の形状から、1つ又は複数のオブジェクトの平行箇所の形状を算出する処理を容易にすることができる。
【0093】
さらに、この実施の形態1によれば、形状算出部10が、1つ又は複数のオブジェクトにおける平行箇所の一端の形状点の正規化座標を算出し、参照箇所指示データで指定された一方のオブジェクトにおける平行箇所の形状を表す形状点の相対座標を用いて1つ又は複数のオブジェクトの平行箇所の一端の形状点に続く各形状点の正規化座標を算出する。このようにすることで、形状算出部10が、1つ又は複数のオブジェクトの平行箇所の形状を算出するにあたり、当該オブジェクトの平行箇所を容易に特定することができ、当該平行箇所の形状の算出も容易となる。
【0094】
実施の形態2.
この実施の形態2は、上記実施の形態1で示した形状情報における全ての形状点データとして、対応する形状点の正規化座標を格納するようにし、参照箇所指示データにオブジェクト間の平行箇所における離隔量を設定したものである。ただし、参照箇所指示データの平行箇所開始情報が示す形状点の正規化座標は形状情報に格納しないようにする。
なお、実施の形態2における地図情報処理装置の構成は、実施の形態1で図1を用いて説明したものと基本的に同一であるので、装置構成については図1を参照する。
【0095】
図24は、この発明の実施の形態2による地図情報処理装置で扱う参照箇所指示データの一例を示す図である。実施の形態2における参照箇所指示データは、図24に示すように、上記実施の形態1での“相対X座標”の代わりに、値を“0xFFFF”とした“正規化X座標”を格納し、隔離情報を追加している。
隔離情報は、当該参照箇所指示データを有する形状情報が設定されたオブシェクトと、もう一方のオブジェクトとの平行箇所における離隔量を示す情報である。具体的には、当該離隔情報では、上記参照箇所指示データを有するオブシェクトの平行箇所における形状点の正規化座標を(X1,Y1)とし、もう一方のオブジェクトの平行箇所の対応する形状点の正規化座標を(X2,Y2)とするとき、離隔量を(X2−X1,Y2−Y1)としている。
【0096】
具体例を挙げて説明する。
図25は、実施の形態2の仕様で表現した図12の面A1の形状情報を示す図である。図25に示すように、実施の形態2では、図13の形状情報における形状点データの相対座標を全て正規化座標に変更する。
図26は、実施の形態2の仕様で表現した図12の面A2の形状情報を示す図である。図26に示すように、実施の形態2では、図14の形状情報における形状点データの相対座標を正規化座標に変更し、図14の形状情報における形状点データ2を取り除き、形状点データ3の参照箇所指示データを、図24に示す仕様に変更している。
図27は、実施の形態2の仕様で表現した図18の面A4の形状情報を示す図である。図27に示すように、実施の形態2では、図19の形状情報における形状点データの相対座標を正規化座標に変更する。
図28は、実施の形態2の仕様で表現した図18の線LN0の形状情報を示す図である。図28に示すように、実施の形態2では、図20の形状情報における形状点データの相対座標を正規化座標に変更し、図20の形状情報における形状点データ2を取り除いて、形状点データ3の参照箇所指示データを、図24に示す仕様に変更している。
このように、実施の形態2では、オブジェクトの形状の一部が他のオブジェクトの形状の一部に平行箇所を有する場合に、平行箇所の形状点の正規化座標を格納しないため、オブジェクトのデータを削減できる。
また、上記のような仕様の参照箇所指示データを設けることで、当該参照箇所指示データが設定されたオブジェクトの平行箇所の形状点の正規化座標を、当該参照箇所指示データで指示されるオブジェクトの平行箇所における形状点の正規化座標を元に算出することができる。
【0097】
次に動作について説明する。
実施の形態2の地図情報処理装置による地図描画処理に関する動作は、図21で示した上記実施の形態1の動作と基本的に同様であるが、ステップST120における面データ又は線データの描画処理が異なる。そこで、以降では、実施の形態2に特有な描画処理について主に説明する。
図29は、実施の形態2における面データ又は線データの描画処理の流れを示すフローチャートであり、図21のステップST120に対応する処理を示している。
先ず、描画処理部7が、図22に示したステップST200の処理と同様にして、面データの描画時には、本ステップに来るたびに地図情報記憶部3に記憶される面データから面レコードを1つずつ並び順に取り出し、線データの描画時には、本ステップに来るたびに地図情報記憶部3に記憶される線データから線レコードを1つずつ並び順に取り出す(ステップST500)。
【0098】
ステップST510において、描画処理部7は、本ステップに来るたびに、ステップST500で取得したレコード(面レコード又は線レコード)の形状情報に格納されている始点の形状点データから順に1つずつ形状点データを取り出す。なお、形状点データは、本ステップに来るたびに形状情報における並びの順に取り出される。
【0099】
次に、描画処理部7は、ステップST510で取得した形状点データが参照箇所指示データであるか否かを判定する(ステップST520)。ここでは、形状点データの最初の2バイトの値が“0xFFFF”であるか否かが調べられ、“0xFFFF”であれば、当該形状点データは参照箇所指示データであるものとして(ステップST520;YES)、ステップST530の処理へ移行する。
また、“0xFFFF”でなければ、当該形状点データは参照箇所指示データではなく(ステップST520;NO)、当該形状点データは、正規化座標を表すものとして、ステップST540の処理へ移行する。
例えば、面データ描画時であれば、図7における面レコード2(MA=2)の形状情報(図26参照)おいて、形状点データ0、形状点データ1、形状点データ3には、正規化座標が格納されており、最初の2バイトは“0xFFFF”ではないため、ステップST540の処理へ移行する。また、形状点データ2については、最初の2バイトに“0xFFFF”が格納されており、参照箇所指示データであるため、ステップST530の処理へ移行する。図7に示す面レコード0、図7における面レコード3(MA=3)についても同様である。
図7に示す面レコード1の形状情報(図25参照)及び図7における面レコード4(MA=4)の形状情報(図27参照)については、形状点データが、全て正規化座標であるため、ステップST540の処理へ移行する。
線データ描画時であれば、図9に示す線レコード0の形状情報(図28参照)おいて、形状点データ0、形状点データ1、形状点データ3、形状点データ4には、正規化座標が格納されているため、ステップST540の処理へ移行する。
また、形状点データ2については、最初の2バイトに“0xFFFF”が格納されており、参照箇所指示データであるため、ステップST530の処理へ移行する。
図9における線レコード1の形状情報(図16参照)は、先頭以外の形状点データが、全て相対座標であるため、実施の形態2の仕様とする場合、全てが正規化座標に変更される。従って、この形状点データも、全てステップST540の処理へ移行する。
【0100】
ステップST530では、描画処理部7の形状算出部10が、ステップST510にて取得された形状点データ、すなわち、参照箇所指示データが示す参照先のオブジェクトの平行箇所における形状点を、当該参照箇所指示データに設定される離隔情報に基づいて、当該参照箇所指示データが設定された参照元のオブジェクトの平行箇所に相当する部分へ平行移動させることにより、当該参照元のオブジェクトの平行箇所における形状点の正規化座標を算出し、形状点列データに追加する。
例えば、図10に示す場合には、形状算出部10が、リンクL01の形状点S01〜S01を平行移動して、面A0における平行箇所の形状点AP0〜AP0の正規化座標を算出する。算出した形状点AP0〜AP0の正規化座標は、形状点列データに追加される。
また、図12に示す場合、形状算出部10が、面A1の形状点AP1〜AP1を平行移動して、面A2の平行箇所の形状点AP2〜AP2の正規化座標を算出する。算出した形状点AP2〜AP2の正規化座標は、形状点列データに追加される。
図15の場合は、形状算出部10が、線LN1の形状点LP1〜LP1を平行移動して、面A3の平行箇所の形状点AP3〜AP3の正規化座標を算出する。算出した形状点AP3〜AP3の正規化座標は、形状点列データに追加される。
図18の場合には、形状算出部10が、面A4の形状点AP4〜AP4を平行移動して、線LN0の平行箇所の形状点LP0〜LP0の正規化座標を算出する。算出した形状点LP0〜LP0の正規化座標は、形状点列データに追加される。
【0101】
一方、ステップST540において、形状算出部10は、ステップST510で取得した形状点データが示す正規化座標を形状点列データに追加する。
例えば、形状情報に参照箇所指示データが含まれる場合には、図7に示す面レコード2の形状情報(図26参照)に対して、ステップST510で形状点データ0、形状点データ1がそれぞれ取得されているとき、ステップST540において、図12に示す形状点AP2の正規化座標、形状点AP2の正規化座標が、形状点列データにそれぞれ追加される。
【0102】
ステップST510で形状点データ3が取得されたときには、既にステップST530で形状点AP2〜AP2の正規化座標が形状点列データに追加されている。そこで、形状算出部10は、形状点列データの末尾に、形状点データ3が示す形状点AP2の正規化座標を追加する。
この時点で、形状点列データには、図12に示す面A2の形状点AP2〜AP2の順にそれらの正規化座標が格納されている。
【0103】
なお、図7に示す面レコード0、図7における面レコード3(MA=3)についても、上記と同様の処理を実行することで、それぞれ、図10に示す面A0の各形状点の正規化座標、図15に示す面A3の形状点の正規化座標が、形状点列データに格納される。
また、図9に示す線レコード0の形状情報(図28参照)に対しても、上記と同様の処理を実行することで、図18に示す線LN0の各形状点の正規化座標が形状点列データに格納される。
【0104】
一方、形状情報に参照箇所指示データを含まない場合は、形状算出部10が、図7に示す面レコード1の形状情報(図25参照)から、ステップST510においてそれぞれ取得された形状点データ0〜6が示す形状点AP1〜AP1の正規化座標を、形状点列データに追加する。
図7における面レコード4(MA=4)の形状情報(図27参照)についても、上記と同様に、図18に示す面A4の各形状点の正規化座標が形状点列データに格納される。
図9に示す線レコード1の形状情報(実施の形態2の仕様として各形状点の正規化座標を格納したもの)についても、上記と同様にして、図15に示す線LN1の形状点の正規化座標が形状点列データに格納される。
【0105】
続いて、形状算出部10は、ステップST510で取得した形状点データが、終点の形状点データであるか否かを判定する(ステップST550)。ここで、終点であれば(ステップST550;YES)、ステップST560の処理へ移行する。終点でなければ(ステップST550;NO)、ステップST510の処理へ戻る。
本ステップST550によって、ステップST200で取得されたレコードの全ての形状点データについてステップST510からステップST540までの処理が行われる。
【0106】
形状算出部10は、図22のステップST290と同様にして、形状点列データに格納されている各正規化座標に対応する形状点を、形状点列データの先頭から順に、次に格納されている正規化座標に対応する形状点間の直線データを描画メモリ8へ書き込むことにより、各形状点を結んだ直線を描画する(ステップST560)。このようにして、形状点列データに格納されている正規化座標が示す面や線が描画される。
【0107】
ステップST570において、描画処理部7は、面データ又は線データにおける全てのレコードについて、上記の描画処理が終了したか否かを調べる。このとき、終了していなければ(ステップST570;NO)、ステップST500へ戻り、終了していれば(ステップST570;YES)、面データ又は線データの描画処理を終了する。
【0108】
図30は、形状算出及び形状点列データへの追加処理の詳細を示すフローチャートであり、図29のステップST530の処理に相当する。
先ず、形状算出部10は、実施の形態1の図23におけるステップST400の処理と同様にして、ステップST510で取得した形状点データ、すなわち参照箇所指示データのオブジェクト種別及びオブジェクト識別子が示すリンクレコード、面レコード、線レコードを、地図情報記憶部3から取得する(ステップST600)。
【0109】
ステップST610において、形状算出部10は、ステップST510で取得された形状点データ、すなわち、参照箇所指示データの平行箇所開始情報が示す開始形状点番号と平行箇所終了情報が示す終了形状点番号とを比較し、この比較結果から、オブジェクト間の平行箇所の対応関係が逆か否かを判定する。具体的には、開始形状点番号が終了形状点番号よりも大きい場合、平行箇所の対応関係が逆であるとして(ステップST610;YES)、ステップST620の処理へ移行し、開始形状点番号が終了形状点番号よりも小さい場合には、平行箇所の対応関係が同一であるとして(ステップST610;NO)、ステップST630の処理へ移行する。
【0110】
ステップST620では、形状算出部10が、終了形状点番号の形状点データから逆の順に開始形状点番号の形状点データまでを辿り、順次、各形状点データの正規化座標から上記参照箇所指示データの離隔情報が示す離隔量を減ずることによって得られた正規化座標を形状点列データに追加し、ステップST530の処理を終了する。
例えば、ステップST510で取得された参照箇所指示データが、図26に示す形状情報における形状点データ2の参照箇所指示データであるとき、開始形状点番号は“5”、終了形状点番号は“2”である。このため、ステップST610で対応関係が逆と判定されて当該ステップST620へ来ている。
そこで、形状算出部10は、ステップST600で取得された、図7に示す面レコード1から、図25に示す形状点データ5、すなわち形状点AP1の正規化座標から離隔量を減じた値を、形状点AP2の正規化座標として算出し、形状点列データに追加する。
以下、図25の形状点データ4、形状点データ3、形状点データ2の順に、上記と同様にして、図12に示す形状点AP23,AP24,AP2の正規化座標を算出して、形状点列データに追加する。
上述のようにして、形状算出部10が、面A1の形状点AP1,AP1,AP1,AP1を面A2へ離隔量の分だけそれぞれ平行移動した点として、面A2の形状点AP2,AP2,AP2,AP2の正規化座標を算出し形状点列データに追加する。
さらに、図15に示す面A3についても、上記と同様にして、図15に示す形状点LP1,LP1,LP1,LP1を平行移動した点として、面A3の形状点AP3,AP3,AP3,AP3の正規化座標が算出され、形状点列データに追加される。
【0111】
ステップST630では、形状算出部10が、開始形状点番号の形状点データから順に終了形状点番号の形状点データまでを辿り、順次、形状点列データの正規化座標から、参照箇所指示データの離隔情報が示す離隔量を減算することによって得られた正規化座標を形状点列データに追加し、ステップST530の処理を終了する。
例えば、ステップST510で取得された参照箇所指示データが、図28に示す形状情報における形状点データ2の参照箇所指示データであるとき、開始形状点番号は“2”、終了形状点番号は“5”である。このため、ステップST610で対応関係が同一と判定されて、当該ステップST630へ来ている。
そこで、形状算出部10は、ステップST600で取得された、図7に示す面レコード4から、図27に示す形状点データ2、すなわち図18に示す形状点AP4の正規化座標を取得して、この形状点AP4の正規化座標から離隔量を減じた値を、図18に示す形状点LP0の正規化座標として算出し、形状点列データに追加する。
以下、同様にして、図27に示す形状点データ3、形状点データ4、形状点データ5の順に、図18に示す形状点LP03,LP04,LP0の正規化座標を求め、形状点列データに追加する。
このようにして、図18に示す形状点AP4,AP4,AP4,AP4を線LN0へ平行移動した点として、線LN0の形状点LP0,LP0,LP0,LP0の正規化座標が求められ、形状点列データに追加される。
図10に示す面A0についても、上記と同様にして、図10に示す形状点S01,S01,・・・,S01を平行移動した点として、面A0における形状点AP0,AP0,・・・,AP0の正規化座標が求められ、形状点列データに追加される。
【0112】
以上のように、この実施の形態2によれば、参照箇所指示データが、一方のオブジェクトにおける平行箇所と他方の1つ又は複数のオブジェクトにおける平行箇所との離隔量を示す離隔情報を有し、形状算出部10が、一方のオブジェクトの平行箇所の形状を表す形状点列を、参照箇所指示データの離隔情報が示す離隔量だけ、1つ又は複数のオブジェクトへ平行移動した点列として、当該1つ又は複数のオブジェクトにおける平行箇所の形状を算出する。このようにすることで、オブジェクトの形状情報に平行箇所の形状点の相対座標を格納しなくても、平行箇所の形状点の正規化座標を求めることができる。
また、形状算出部10が、離隔量だけ平行移動する処理で平行箇所における形状点の正規化座標を算出可能であり、平行箇所における形状点の正規化座標を容易に求めることができる。
さらに、当該オブジェクト平行箇所の形状点の正規化座標を、他方のオブジェクトの平行箇所の形状点を平行移動して求めるので、一方のオブジェクトと他方のオブジェクトとが近接していても、従来のように平行箇所における上記2つのオブジェクトの形状が重なって描画されることを防止できる。
【0113】
なお、上記実施の形態2では、平行箇所を有するオブジェクトが1対1の場合を示したが、平行箇所を有するオブジェクトが1対N(複数)であっても構わない。
この場合、1つのオブジェクトを、参照箇所指示データで平行箇所が参照される参照先のオブジェクトとし、残りのN個のオブジェクトを、自身の平行箇所における形状点の正規化座標を算出する際、当該参照箇所指示データで指示される上記参照先のオブジェクトの平行箇所を参照する参照元のオブジェクトとする。
つまり、参照先のオブジェクトの形状情報に平行箇所の形状点の正規化座標を格納し、参照元となる残りのN個のオブジェクトの形状情報には、当該平行箇所を参照する参照箇所指示データをそれぞれ設ける。このようにすることで、オブジェクトのデータ量をさらに削減することが可能である。
【0114】
実施の形態3.
この実施の形態3は、上記実施の形態1,2において、平行箇所を有する2つのオブジェクトで平行箇所の端点に形状点が存在しない場合に、上記端点の位置に形状点を設け、形状情報にその形状点データを設けるようにしたものである。
なお、実施の形態3における地図情報処理装置の構成は、実施の形態1で図1を用いて説明したものと基本的に同一であるので、装置構成については図1を参照する。
【0115】
図31は、互いに平行な箇所を有する2つのオブジェクトにおいて、一方のオブジェクトの平行箇所の端点に対応する形状点がもう一方のオブジェクトに存在しない場合を示す図である。図31に示す例では、面A6の平行箇所における形状点AP6〜AP6に対応する面A5の平行箇所で、面A6の形状点AP6に対応する面A5の形状点が存在しない。このように対応する形状点が存在しないと、平行箇所における形状点を特定する際に支障を来す恐れがある。そこで、実施の形態3では、形状情報に、追加すべき形状点の形状点データを設けている。
【0116】
図32は、図31の面A5に、面A6の平行箇所の端点に対応する形状点を追加する処理を説明するための図であり、面A5に、面A6の形状点AP6に対応する点として、形状点AP5’を追加した場合を示している。形状点AP5’を追加することで、面A6の平行箇所における形状点AP6,AP6,AP6,AP6が、それぞれ面A5の平行箇所における形状点AP5,AP5,AP5,AP5’に対応することとなり、面A6と面A5の平行箇所の形状点の対応付けが可能となる。
【0117】
図33は、図32の面A5の形状情報の一例を示す図であり、面A5を参照箇所指示データで平行箇所が参照される参照先のオブジェクトとし、上記実施の形態1と同様に平行箇所の始点以外を相対座標で表現した場合を示している。図33に示すように、面A5の形状情報には、形状点データ3として、面A6の平行箇所の端点AP6に対応する形状点AP5’の相対座標を示すデータが追加される。
また、図34は、図32の面A6の形状情報の一例を示す図であり、面A5を参照箇所指示データで平行箇所が参照される参照先のオブジェクトとし、面A6を、当該参照箇所指示データで面A5の平行箇所を参照する参照元のオブジェクトとして、上記実施の形態1と同様に平行箇所の始点以外を相対座標で表現し、形状点データとして当該参照箇所指示データを設けた場合を示している。
図34に示す形状情報には、形状点データ3として面A6の平行箇所における形状点AP6〜AP6に関する参照箇所指示データを設けている。また、この参照箇所指示データには、平行箇所開始情報として形状点AP5の形状点番号“6”が格納され、平行箇所終了情報として、形状点AP5’の形状点番号“3”が格納される。
【0118】
図35は、図32の面A5の形状情報の他の例を示す図であり、面A6を参照箇所指示データで平行箇所が参照される参照先のオブジェクトとし、面A5を、当該参照箇所指示データで面A6の平行箇所を参照する参照元のオブジェクトとして、上記実施の形態1と同様に平行箇所の始点以外を相対座標で表現し、形状点データとして当該参照箇所指示データを設けた場合を示している。
図35に示す形状情報には、形状点AP5’の形状点データ3を設けるとともに、形状点データ4として面A5の平行箇所における形状点AP5’〜AP5に関する参照箇所指示データを設けている。
また、この参照箇所指示データには、平行箇所開始情報として形状点AP6の形状点番号“5”が格納され、平行箇所終了情報として形状点AP6の形状点番号“2”が格納される。
図36は、図32の面A6の形状情報の他の例を示す図であり、上述のように面A6を参照箇所指示データで平行箇所が参照される参照先のオブジェクトとした場合を示している。図36に示す形状情報では、上記実施の形態1と同様に、面A6の平行箇所における始点以外の形状点が相対座標で表現される。
【0119】
なお、上記の例では、形状点を相対座標で表現した場合を示したが、上記実施の形態2と同様に正規化座標で表現しても構わない。
【0120】
以上のように、この実施の形態3によれば、一方のオブジェクトにおける平行箇所と他方の1つ又は複数のオブジェクトにおける平行箇所とのいずれか一方に対応する形状点がない場合に、当該対応する形状点がないオブジェクトの形状情報に当該形状点を示すデータを追加する。このようにすることで、平行箇所を指示することが可能となる。
【0121】
実施の形態4.
この実施の形態4は、上記実施の形態1において平行箇所を有する複数のオブジェクトのそれぞれの形状情報として、平行箇所における各形状点の相対座標を格納しないようにしたものであり、さらに、オブジェクトの形状情報とは別に各平行箇所の形状を表す参照形状リストを設けて、この参照形状リストを参照して各オブジェクトの平行箇所における形状点の正規化座標を求めるようにしたものである。
なお、実施の形態4における地図情報処理装置の構成は、実施の形態1で図1を用いて説明したものと基本的に同一であるので、装置構成については図1を参照する。
【0122】
図37は、実施の形態4における参照形状リストの一例を示す図である。図37に示すように、参照形状リストは、参照形状リストヘッダと参照形状レコードの並びとから構成される。参照形状リストヘッダは、参照形状レコードの数、各参照形状レコードの格納位置、各参照形状レコードが有する形状点データの数等を表すデータが格納される。
参照形状レコードは、平行箇所の形状を表すデータであり、平行箇所の先頭の形状点を除いた各形状点の形状点データを並べて構成され、形状点データとして、1つ前の形状点に対する相対座標が格納される。なお、参照形状リストにおける参照形状レコードの並び順を参照形状番号と呼ぶこととする。
また、参照形状リストは、地図データとして、地図情報記憶部3に格納しておく。
【0123】
図37において、参照形状レコード0は、図10に示す面A0の平行箇所における先頭の形状点AP0を除いた形状点AP0〜AP0の相対座標が格納された形状点データからなる。
ここで、図10に示すリンクL01の平行箇所における形状点S01,S01,S01,S0の相対座標は、それぞれ参照形状レコード0の形状点データ0、形状点データ1、形状点データ2、形状点データ3、と同一である。
従って、参照形状レコード0は、面A0の平行箇所とリンクL01の平行箇所とにおける形状点の正規化座標を求める際に共通に参照される。
【0124】
参照形状レコード1は、図12に示す面A2の平行箇所における先頭の形状点AP2を除いた形状点AP2〜AP2の相対座標が格納された形状点データからなる。
ここで、図12の面A1の平行箇所における形状点AP1,AP1,AP1の相対座標は、それぞれ参照形状レコード1の形状点データ2、形状点データ1、形状点データ0の相対座標の符号反転したものと同一である。
従って、参照形状レコード1は、面A2の平行箇所と面A1の平行箇所とにおける形状点の正規化座標を求める際に共通に参照される。
【0125】
参照形状レコード2は、図15に示す面A3の平行箇所における先頭の形状点AP3を除いた形状点AP3〜AP3の相対座標が格納された形状点データからなる。
ここで、図15の線LN1の平行箇所における形状点LP1,LP1,LP1の相対座標は、それぞれ参照形状レコード2の形状点データ2、形状点データ1、形状点データ0の相対座標の符号反転したものと同一である。
従って、参照形状レコード2は、面A3の平行箇所と線LN1の平行箇所とにおける形状点の正規化座標を求める際に共通に参照される。
【0126】
また、参照形状レコード3は、図18に示す線LN0の平行箇所における先頭の形状点LP0を除いた形状点LP0,LP0,LP0の相対座標が格納された形状点データからなる。
ここで、図18の面A4の平行箇所における形状点AP4,AP0,AP4の相対座標は、それぞれ参照形状レコード3の形状点データ0、形状点データ1、形状点データ2の相対座標と同一である。
従って、参照形状レコード3は、線LN0の平行箇所と面A4の平行箇所とにおける形状点の正規化座標を求める際に共通に参照される。
【0127】
実施の形態4では、平行箇所を含むオブジェクトの形状情報には、参照箇所指示データを含む形状情報が設定される。ただし、この参照箇所指示データには、上記実施の形態1と異なり、自身の平行箇所における形状点の正規化座標を求める際に参照対象となる参照形状を特定するデータが設定される。
【0128】
図38は、実施の形態4における参照箇所指示データの構成を示す図である。図38に示すように、実施の形態4の参照箇所指示データは、相対X座標、参照形状番号、参照順序情報、及び加減算指定情報から構成される。
相対X座標は、参照箇所指示データを他の形状点データから区別するための情報であって、参照箇所指示データの先頭の1バイトに設けられる。相対X座標としては、上記実施の形態1と同様に値を“−128”とする。
【0129】
参照形状番号は、図37に示したような参照形状リストにおいて、参照すべき参照形状レコードを特定するための情報であり、参照形状レコードのレコード番号が設定される。
参照順序情報は、参照形状レコードに格納された形状点データをその並び順に参照するか、並びの逆順に参照するかを示す情報である。
加減算指定情報は、正規化座標の算出に際し相対座標を加算するか減算するかを示す情報である。
【0130】
形状情報の具体例を示す。
図39は、図12の面A1の形状情報を示す図である。図39に示すように、当該形状情報には、形状点AP1の形状点データ0として、形状点AP1の正規化座標が格納される。これに続き、形状点AP1の形状点データ1として、形状点AP1に対する形状点AP1の相対座標が格納され、形状点AP1の形状点データ2として、形状点AP1に対する形状点AP1の相対座標が格納される。
形状点データ2に続いて、形状点データ3として、平行箇所における形状点AP1〜AP1に関する参照箇所指示データが格納される。この参照箇所指示データには、相対X座標として“−128”、参照形状番号として参照形状レコード1の形状番号“1”、参照順序情報に“逆順”、加減算指定情報には“減算”が設定される。
形状点データ3に続いて、形状点AP1の形状点データ4として、形状点AP1に対する形状点AP1の相対座標が格納される。
【0131】
図40は、図12の面A2の形状情報を示す図である。図40に示すように、当該形状情報には、形状点AP2の形状点データ0として、形状点AP2の正規化座標が格納される。これに続き、形状点AP2の形状点データ1として、形状点AP2に対する形状点AP2の相対座標が格納され、形状点AP2の形状点データ2として、形状点AP2に対する形状点AP2の相対座標が格納される。
形状点データ2に続いて、形状点データ3として、平行箇所における形状点AP2〜AP2に関する参照箇所指示データが格納される。この参照箇所指示データには、相対X座標として“−128”、参照形状番号として参照形状レコード1の形状番号“1”、参照順序情報に“並び順”、加減算指定情報には“加算”が設定される。
形状点データ3に続いて、形状点AP2の形状点データ4として、形状点AP2に対する形状点AP2の相対座標が格納される。
【0132】
このように、実施の形態4では、平行箇所における形状点の相対座標をオブジェクトの形状情報に格納しないため、オブジェクトのデータを削減できる。また、共通する形状の平行箇所に関する参照形状を参照するための参照箇所指示データを設けたので、オブジェクトのデータを削減しつつ、平行箇所の形状点の正規化座標の算出が可能である。
【0133】
次に動作について説明する。
実施の形態4の地図情報処理装置による地図描画処理は、図21、図22及び図23で示した上記実施の形態1の動作と基本的に同様であるが、図22のステップST250における形状算出・形状点列データへの追加処理が異なる。そこで、以降では、実施の形態4に特有な上記処理について主に説明する。
【0134】
図41は、実施の形態4における形状算出及び形状点列データへの追加処理の詳細を示すフローチャートであり、図22のステップST250の処理に相当する。
先ず、形状算出部10は、ステップST230で取得した形状点データ、すなわち参照箇所指示データの参照形状番号が示す参照形状レコードを、地図情報記憶部3の参照形状リストから取得する(ステップST700)。
例えば、図12の面A1を描画するときは、図39に示す形状情報の形状点データ3の参照形状番号が“1”であるため、図37に示す参照形状リストから参照形状レコード1が取得される。また、図12の面A2を描画する際には、図40に示す形状情報の形状点データ3の参照形状番号が“1”であるため、同様に参照形状リストから参照形状レコード1が取得される。
【0135】
ステップST710において、形状算出部10は、ステップST230で取得された形状点データ、すなわち参照箇所指示データの参照順序が逆順か否かを判定する。ここで、逆順であれば(ステップST710;YES)、ステップST730の処理へ移行し、並び順であれば(ステップST710;NO)、ステップST720の処理へ移行する。
【0136】
ステップST720では、形状算出部10が、ステップST700で取得した参照形状レコードの形状点データを並びの順に辿り、順次、形状点列データの末尾の正規化座標(正規化X座標、正規化Y座標)に上記形状点データが示す相対座標(相対X座標、相対Y座標)を加算又は減算することによって得られた正規化座標を形状点列データに追加し、ステップST250の処理を終了する。
なお、上記の加減算において、参照箇所指示データの相対X座標に関する加減算指定情報が“加算”ならば、形状点列データの末尾の正規化X座標に上記形状点データの相対X座標を加算し、“減算”ならば、上記正規化X座標から上記相対X座標を減算する。
また、参照箇所指示データの相対Y座標に関する加減算指定情報が“加算”ならば、形状点列データの末尾の正規化Y座標に上記形状点データの相対Y座標を加算し、“減算”ならば、上記正規化Y座標から上記相対Y座標を減算する。
【0137】
具体例を挙げて説明する。
図12に示す面A2を描画する際に、図40の形状点データ3の参照順序情報は“並び順”であるため、ステップST710の判定によって本ステップST720へ来る。
図22のステップST250へ来たときには、形状点列データには、面A2の平行箇所における形状点AP2,AP2,AP2の順にそれらの正規化座標が格納されている。このため、当該ステップST720へ来た時点では、形状点列データの末尾に形状点AP2の正規化座標が格納されている。
そこで、形状算出部10は、参照形状レコード1から、形状点データ0、形状点データ1、形状点データ2の順に取得し、加減算指定情報が“加算”を示しているので、形状点列データの末尾にある正規化座標に形状点データ0の相対座標を加算して得られた正規化座標を形状点列データに追加し、形状点列データの末尾にある正規化座標に形状点データ1の相対座標を加算して得られた正規化座標を形状点列データに追加し、形状点列データの末尾にある正規化座標に形状点データ2の相対座標を加算して得られた正規化座標を形状点列データに追加する。
このようにして、面A2の平行箇所における形状点AP2,AP2,AP2の正規化座標が形状点列データに追加され、形状点列データには形状点AP2〜AP2の正規化座標が格納される。
【0138】
一方、ステップST730においては、形状算出部10が、ステップST700で取得した参照形状レコードの形状点データを、並びの順とは逆に末尾から先頭へ向って辿り、順次、形状点列データの末尾の正規化座標(正規化X座標、正規化Y座標)に上記形状点データが示す相対座標(相対X座標、相対Y座標)を加算又は減算することによって得られた正規化座標を形状点列データに追加し、ステップST250の処理を終了する。
なお、上記の加減算において、参照箇所指示データの相対X座標に関する加減算指定情報が“加算”ならば、形状点列データの末尾の正規化X座標に上記形状点データの相対X座標を加算し、“減算”ならば、上記正規化X座標から上記相対X座標を減算する。
また、参照箇所指示データの相対Y座標に関する加減算指定情報が“加算”ならば、形状点列データの末尾の正規化Y座標に上記形状点データの相対Y座標を加算し、“減算”ならば、上記正規化Y座標から上記相対Y座標を減算する。
【0139】
具体例を挙げて説明する。
図12に示す面A1を描画する際、図39の形状点データ3の参照順序情報は“逆順”であるため、ステップST710の判定により本ステップST730へ来る。
図22のステップST250に来たときには、形状点列データには、面A1の平行箇所における形状点AP1,AP1,AP1の順にそれらの正規化座標が格納されている。このため、当該ステップST730へ来た時点では、形状点列データの末尾に形状点AP1の正規化座標が格納されている。
そこで、形状算出部10は、参照形状レコード1から、形状点データ2、形状点データ1、形状点データ0の順に取得し、加減算指定情報が“減算”を示しているので、形状点列データの末尾にある正規化座標から形状点データ2の相対座標を減じて得られた正規化座標を形状点列データに追加し、形状点列データの末尾にある正規化座標から形状点データ1の相対座標を減じて得られた正規化座標を形状点列データに追加し、形状点列データの末尾にある正規化座標から形状点データ0の相対座標を減じて得られた正規化座標を形状点列データに追加する。
このようにして、面A1の平行箇所における形状点AP1,AP1,AP1の正規化座標が形状点列データに追加され、形状点列データには形状点AP1〜AP1の正規化座標が格納される。
【0140】
以上のように、この実施の形態4によれば、複数のオブジェクトで互いに平行となる平行箇所を有する場合に、複数のオブジェクトのいずれかのオブジェクトにおける平行箇所の形状を表すデータを格納する参照形状データを地図情報記憶部3に記憶し、複数のオブジェクトの各形状情報には、平行箇所の形状を表すデータの代わりに、参照形状データを指定する参照箇所指示データを格納し、形状算出部10が、参照箇所指示データで指定された参照形状データにおける平行箇所の形状を表すデータを用いて、複数のオブジェクトにおける平行箇所の形状を算出する。
特に、形状算出部10が、参照箇所指示データで指定された参照形状データにおける平行箇所の形状を表す形状点列を複数のオブジェクトのそれぞれへ平行移動した点列として、複数のオブジェクトにおける平行箇所の形状を算出する。
このようにすることで、オブジェクトの形状情報に平行箇所の形状を表すデータ(形状点の相対座標)を格納しなくても、当該平行箇所の形状点の正規化座標を求めることができる。
【0141】
また、この実施の形態4によれば、形状情報が、オブジェクトの形状を表す形状点列を所定向きに辿った先頭の形状点を、地図に設定した所定の座標系で一意に位置が決定される正規化座標で表し、先頭以降の形状点を、前記先頭の形状点から所定向きに形状点を辿った順に1つ前に辿った形状点の座標に対する相対座標で表し、参照形状データが、平行箇所の形状を当該形状を表す形状点列を、所定向きに形状点を辿った順に1つ前に辿った形状点の座標に対する相対座標で表現することで、オブジェクトの形状情報のデータ量をさらに削減することができる。
【0142】
さらに、この実施の形態4によれば、参照箇所指示データが、平行箇所の形状を表す形状点列の各形状点を参照する順序を示す参照順序情報と、参照する順序に応じて各形状点の相対座標を加算するか若しくは減算するかを指示する加減算指示情報とを有し、形状算出部10が、オブジェクトにおける平行箇所の一端の形状点を初期位置として、参照箇所指示データで指示された参照形状データから参照順序情報が示す順序で形状点の相対座標を取得して、加減算指示情報が示す加算又は減算を施すことにより、オブジェクトにおける平行箇所の各形状点の正規化座標を算出する。
このように平行箇所を有する2つのオブジェクトが、平行箇所の形状点の正規化座標を共通の参照形状データの形状点データから算出するため、上記2つのオブジェクトが近接していても、上記従来のように平行箇所における上記2つのオブジェクトの形状が重なって描画されることを防止できる。
【0143】
実施の形態5.
オブジェクトの一部は、他のオブジェクトの一部の形状に対して、回転、拡大、縮小等の線形変換を施すことにより、互いに平行となる場合がある。
実施の形態5は、このような場合に対応するため、参照箇所指示データに線形変換に関する情報を設定したものである。なお、実施の形態5における平行箇所は、線形変換を施すことによって平行となり得るオブジェクトの一部を意味する。
【0144】
図42は、この発明の実施の形態5による地図情報処理装置の構成を示すブロック図である。図42において、実施の形態5の地図情報処理装置は、図1に示した構成のうち、形状算出部10の代わりに、線形変換を施して平行箇所に該当する形状を求める機能を有した形状算出部10aを備え、さらに間引き処理部11及び補間処理部12を備える。
形状算出部10a、間引き処理部11及び補間処理部12は、プロセッサ4が、本発明の趣旨に従う地図情報処理用プログラムを実行することで、ハードウェアとソフトウェアが協働した具体的な手段として実現される。
【0145】
形状算出部10aは、参照先のオブジェクトにおける、参照箇所指示データで指示した箇所の形状に線形変換を施した形状を参照元のオブジェクトに平行移動して、当該オブジェクトの当該箇所の形状を算出する。
間引き処理部11は、形状算出部10aによって算出された箇所の形状を表す形状点を間引く処理を実行する構成部である。
補間処理部12は、形状算出部10aによって算出された箇所の形状を表す形状点を補間する処理を実行する構成部である。
なお、図42において、上記以外の構成要素は図1と基本的な機能が同一であるので、同一符号を付して説明を省略する。
【0146】
図43は、実施の形態5における参照箇所指示データの構成を示す図である。図43に示すように、実施の形態5の参照箇所指示データは、図8に示した参照箇所指示データと基本的な構成は同一であるが、平行箇所開始情報及び平行箇所終了情報の内容が異なり、さらに線形変換情報、間引き情報、補間情報が追加されている。
実施の形態5による参照箇所指示データの平行箇所開始情報には、線形変換を施すことで参照元のオブジェクトの一部と平行になる参照先のオブジェクトの一部の開始点となる形状点の形状点番号が設定される。また、実施の形態5による参照箇所指示データの平行箇所終了情報には、上記参照先のオブジェクトの一部の終了点となる形状点の形状点番号が設定される。
線形変換情報は、上記線形変換を施す際に使用される変換行列を表す情報である。間引き情報は、線形変換した結果として得られた形状に対する間引き処理の要否を示す情報である。また、補間情報は、線形変換した結果として得られた形状に対する補間処理の要否を示す情報である。
【0147】
図44は、線形変換を施すことでオブジェクト間で平行な箇所が形成される場合を説明するための図である。図44において、面A8における形状点AP8〜AP8からなる形状は、面A7における形状点AP7〜AP7からなる形状を縮小し回転したものである。つまり、面A7の形状点AP7〜AP7からなる形状に縮小及び回転の線形変換を施すことにより、面A8の形状点AP8〜AP8からなる形状に平行な形状になる。
【0148】
また、上記実施の形態1と同様に、面A8の形状点AP8〜AP8に関して図43の参照箇所指示データが設けられる。この参照箇所指示データの平行箇所開始情報には、形状点AP7の形状点番号5が設定され、平行箇所終了情報には、形状点AP7の形状点番号2が設定される。また、面A7における形状点AP7〜AP7からなる形状を線形変換して、面A8の形状点AP8〜AP8からなる形状に平行になるように、線形変換情報として縮小及び回転に関する変換行列が設定される。
なお、上記実施の形態1と同様に、面A8の形状情報には形状点AP8〜AP8の相対座標は格納されない。
参照箇所指示データの間引き情報には、線形変換した結果として得られる形状の形状点の密度(例えば、所定長さに対する形状点数)が所定値以上となる場合に間引き“要”を設定する。これにより、描画時間の増加を防止することができる。
参照箇所指示データの補間情報には、線形変換した結果として得られる形状の形状点の密度が所定値未満となる場合に補間“要”を設定する。これにより、描画時の形状の滑らかさが損なわれることを防止することができる。
【0149】
次に動作について説明する。
この実施の形態5は、上記実施の形態1と基本的な動作は同一であるが、図23のステップST420及びステップST430が、下記のように変更される。そこで、図23を参照して、実施の形態5に特有な処理の詳細を説明する。
【0150】
ステップST420では、形状算出部10aが、ステップST400で取得したレコードの形状情報における、終了形状点番号の1つ前の形状点番号の形状点データから逆の順に開始形状点番号の形状点データまでを辿り、順次、線形変換情報の変換行列で当該形状点データが示す相対座標に線形変換を施し、形状点列データの末尾の正規化座標に上記線形変換の結果を加算して得られた正規化座標を形状点列データに追加する。
【0151】
ステップST430では、形状算出部10aが、開始形状点番号の1つ後(次)の形状点番号の形状点データから順に終了形状点番号の形状点データまでを辿り、順次、線形変換情報の変換行列で当該形状点データが示す相対座標に線形変換を施し、形状点列データの末尾の正規化座標に上記線形変換の結果を加算して得られた正規化座標を、形状点列データに追加する。
【0152】
このようにして、オブジェクトの参照先の形状に線形変換を施した形状点の正規化座標を、参照元のオブジェクトにそれぞれ平行移動した点として、参照先の形状に平行な形状における形状点の正規化座標が求められ、形状点列データに追加される。
【0153】
ステップST420及びステップST430において、間引き処理部11は、間引き情報が“要”であると、形状算出部10aによって形状点列データに追加された上記一連の正規化座標データを読み出して、形状点の密度が所定値になるように正規化座標を間引いて形状点列データに追加し、ステップST250の処理を終了する。
【0154】
一方、補間情報が“要”である場合には、補間処理部12が、形状算出部10aによって形状点列データに追加された上記一連の正規化座標データを読み出し、当該一連の正規化座標が表す形状を滑らかにするため、例えば、スプライン関数によって上記一連の正規化座標を補間するための正規化座標を求め、形状点列データに格納されている上記一連の正規化座標の間に挿入し、ステップST250の処理を終了する。
【0155】
なお、間引き処理部11又は補間処理部12は、形状点列データに格納した正規化座標に対応する形状点を、形状点列データの先頭から順に、次に格納されている正規化座標に対応する形状点との間における直線データを描画メモリ8へ書き込むことで、各形状点を結んだ直線を描画する。
【0156】
以上のように、この実施の形態5によれば、一方のオブジェクトの一部の形状に線形変換を施すと、他方の1つ又は複数のオブジェクトが当該線形変換を施した形状に平行となる平行箇所を有する場合に、1つ又は複数のオブジェクトの形状情報には、当該平行箇所の形状を表すデータの代わりに、線形変換の内容を示す線形変換情報を有し、一方のオブジェクトにおける一部の形状を指定する参照箇所指示データを格納し、形状算出部10aが、参照箇所指示データで指定された一部の形状を表すデータを、一方のオブジェクトの形状情報から取得し、当該形状に線形変換情報が示す線形変換を施したデータを用いて、1つ又は複数のオブジェクトにおける平行箇所の形状を算出する。
このようにすることで、線形変換により平行箇所となり得る形状を表すデータ(形状点の相対座標データ)を削減でき、オブジェクトデータにおける形状情報のデータ量を削減することが可能である。
【0157】
また、この実施の形態5によれば、形状算出部10aが、参照箇所指示データで指定された一部の形状に線形変換情報が示す線形変換を施した形状を表す形状点列を、1つ又は複数のオブジェクトへ平行移動した点列として、1つ又は複数のオブジェクトにおける平行箇所の形状を算出する。このようにすることで、参照元のオブジェクトの形状情報から形状点の相対座標を除去してデータ量を削減しつつ、当該オブジェクトにおける平行箇所の形状を求めることができる。
【0158】
さらに、この実施の形態5によれば、形状算出部10aが求めた形状を表す形状点を間引く間引き処理部11と、形状算出部10が求めた形状を補間する形状点を当該形状に挿入する補間処理部12とを備えたので、間引き処理の場合は、描画対象のデータが削減されることから描画速度を向上でき、補間処理の場合には滑らかに形状を描画できる。
【0159】
実施の形態6.
この実施の形態6は、上記実施の形態4で示した参照形状リストに登録された参照形状が、複数のオブジェクトの形状の一部と完全に平行でなく、上記参照形状に対して所定の回転や拡大、縮小等の線形変換を施すことで上記形状の一部と平行になる場合に対応したものである。従って、実施の形態6における平行箇所は、線形変換を施すことによって平行となり得るオブジェクトの一部を意味する。
【0160】
実施の形態6における地図情報処理装置の構成は、上記実施の形態5で図42を用いて説明したものと基本的に同一であるので、装置構成については図42を参照する。
なお、実施の形態6の地図情報記憶部3には、図37で示したような参照形状リストが格納される。ただし、この参照形状リストに登録される参照形状は、線形変換を施すことによって複数のオブジェクトの一部の形状と平行になり、かつ上記複数のオブジェクトの一部の形状と合同な形状を有する。また、参照形状リストには、参照形状を表す参照形状レコードがリスト形式で格納される。
【0161】
さらに、上記複数のオブジェクトの形状情報には、上記一部の形状に関する形状点データとして、図38に示したような参照箇所指示データが格納される。
図45は、実施の形態6における参照箇所指示データの構成を示す図である。図45に示すように、実施の形態6の参照箇所指示データには、図38で示した加減算指定情報の代わりに、上記線形変換を施すための変換行列を表す線形変換情報が格納され、さらに、線形変換した結果として得られた形状に対する間引き処理の要否を示す間引き情報と、線形変換した結果として得られた形状に対する補間処理の要否を示す補間情報とが追加されている。
【0162】
具体例を挙げて説明すると、上記実施の形態5で示した図44において、面A7の形状点AP7〜AP7からなる形状と面A8の形状点AP8〜AP8からなる形状とのうち、例えば、面A7の形状点AP7〜AP7からなる形状に合同な形状を表す参照形状レコードが参照形状リストに格納される。
このとき、面A8の形状情報には、形状点AP8〜AP8に関する、図45で示した構成の参照箇所指示データが設けられる。また、この参照箇所指示データには、参照形状番号として上記参照形状レコードの形状番号が設定され、参照順序情報として“逆順”が設定される。線形変換情報としては、面A7の形状点AP7〜AP7からなる形状に合同な形状を、面A8の形状点AP8〜AP8からなる形状に平行な形状へ線形変換するための変換行列が設定される。
このように、実施の形態6では、上記実施の形態4と同様に、面A8の形状情報として形状点AP8〜AP8の各相対座標を格納しない。
【0163】
また、面A7の形状情報においても、形状点AP7〜AP7に関する参照箇所指示データが設けられる。この参照箇所指示データには、参照形状番号として上記参照形状レコードの形状番号が設定され、参照順序情報として“並び順”が設定される。線形変換情報としては、上記合同な形状を、自身の形状点AP7〜AP7からなる形状に平行な形状へ線形変換するための変換行列が設定される。なお、この場合は、線形変換情報として、線形変換が不要である旨を示す情報を設定してもよい。
このように、実施の形態6では、上記実施の形態4と同様に、面A7の形状情報として形状点AP7〜AP7の各相対座標を格納しない。
【0164】
参照箇所指示データの間引き情報には、線形変換した結果として得られる形状の形状点の密度(例えば、所定長さに対する形状点数)が所定値以上となる場合に間引き“要”を設定する。これにより、描画時間の増加を防止することができる。
参照箇所指示データの補間情報には、線形変換した結果として得られる形状の形状点の密度が所定値未満となる場合に補間“要”を設定する。これにより、描画時の形状の滑らかさが損なわれることを防止することができる。
【0165】
次に動作について説明する。
この実施の形態6は、上記実施の形態4と基本的な動作は同一であるが、図41のステップST720及びステップST730が、下記のように変更される。そこで、図41を参照して、実施の形態6に特有な処理の詳細を説明する。
【0166】
ステップST720では、形状算出部10aが、ステップST700で取得した参照形状レコードの形状点データを並びの順に辿って、順次、線形変換情報の変換行列で当該形状点データが示す相対座標に線形変換を施し、形状点列データの末尾の正規化座標に上記線形変換の結果を加算して得られた正規化座標を形状点列データに追加する。
【0167】
ステップST730では、形状算出部10aが、ステップST700で取得した参照形状レコードの形状点データを逆順に末尾から先頭へ向かって辿り、順次、線形変換情報の変換行列で当該形状点データが示す相対座標に線形変換を施し、形状点列データの末尾の正規化座標に上記線形変換の結果を加算して得られた正規化座標を形状点列データに追加する。上述のように参照形状を線形変換することにより、複数のオブジェクト間で互いに平行な形状における形状点の正規化座標が求められ、形状点列データに追加される。
【0168】
ステップST720及びステップST730において、間引き処理部11は、間引き情報が“要”であると、形状算出部10aによって形状点列データに追加された上記一連の正規化座標データを読み出して、形状点の密度が所定値になるように正規化座標を間引いて形状点列データに追加し、ステップST250の処理を終了する。
【0169】
一方、補間情報が“要”である場合には、補間処理部12が、形状算出部10aによって形状点列データに追加された上記一連の正規化座標データを読み出し、当該一連の正規化座標が表す形状を滑らかにするため、例えば、スプライン関数によって上記一連の正規化座標を補間するための正規化座標を求め、形状点列データに格納されている上記一連の正規化座標の間に挿入し、ステップST250の処理を終了する。
【0170】
なお、間引き処理部11又は補間処理部12は、形状点列データに格納した正規化座標に対応する形状点を、形状点列データの先頭から順に、次に格納されている正規化座標に対応する形状点との間における直線データを描画メモリ8へ書き込むことで、各形状点を結んだ直線を描画する。
【0171】
以上のように、この実施の形態6によれば、複数のオブジェクトのいずれかのオブジェクトの一部の形状に線形変換を施すと、複数のオブジェクトが当該線形変換を施した形状に平行となる平行箇所を有する場合に、線形変換を施すことで平行箇所に平行となる一部の形状に合同な形状を表すデータを格納する参照形状データを記憶しており、複数のオブジェクトの各形状情報には、平行箇所の形状を表すデータの代わりに、線形変換の内容を示す線形変換情報を有し参照形状データを指定する参照箇所指示データを格納し、形状算出部10aが、参照箇所指示データで指定された参照形状データにおける合同な形状を表すデータに線形変換情報が示す線形変換を施したデータを用いて、複数のオブジェクトにおける平行箇所の形状を算出する。このようにすることで、参照形状データが共用されるため、オブジェクトの形状情報のデータ量を削減しつつ、当該オブジェクトの平行箇所の形状を求めることができる。
【0172】
また、この実施の形態6によれば、形状算出部10aが求めた形状を表す形状点を間引く間引き処理部11と、形状算出部10が求めた形状を補間する形状点を当該形状に挿入する補間処理部12とを備えたので、間引き処理の場合は、描画対象のデータが削減されることから描画速度を向上でき、補間処理の場合には滑らかに形状を描画できる。
【符号の説明】
【0173】
1 入力部、2 位置検出部、3 地図情報記憶部、4 プロセッサ、5 表示部、6 音声出力部、7 描画処理部、8 描画メモリ、9 表示制御部、10,10a 形状算出部、11 間引き処理部、12 補間処理部。

【特許請求の範囲】
【請求項1】
地図に描画するオブジェクトの形状を表すデータが格納された形状情報を有するオブジェクトデータを記憶する地図情報記憶部と、
前記地図情報記憶部から読み出したオブジェクトデータの形状情報を用いて、前記オブジェクトの形状を算出して描画する形状算出部とを備え、
一方のオブジェクトと他方の1つ又は複数のオブジェクトとで互いに平行となる平行箇所を有する場合に、前記1つ又は複数のオブジェクトの形状情報には、前記平行箇所の形状を表すデータの代わりに、前記一方のオブジェクトの前記平行箇所を指定する参照箇所指示データを格納し、
前記形状算出部は、前記参照箇所指示データで指定された前記平行箇所を含む前記一方のオブジェクトの形状情報を前記地図情報記憶部から取得し、当該形状情報を用いて前記1つ又は複数のオブジェクトの前記平行箇所の形状を算出することを特徴とする地図情報処理装置。
【請求項2】
前記形状算出部は、前記参照箇所指示データで指定された前記平行箇所の形状を表す形状点列を前記1つ又は複数のオブジェクトへ平行移動した点列として、前記1つ又は複数のオブジェクトにおける前記平行箇所の形状を算出することを特徴とする請求項1記載の地図情報処理装置。
【請求項3】
前記参照箇所指示データは、前記一方のオブジェクトにおける前記平行箇所と前記他方の1つ又は複数のオブジェクトにおける前記平行箇所との離隔量を示す離隔情報を有し、
前記形状算出部は、前記一方のオブジェクトの前記平行箇所の形状を表す形状点列を、前記参照箇所指示データの離隔情報が示す離隔量だけ、前記1つ又は複数のオブジェクトへ平行移動した点列として、当該1つ又は複数のオブジェクトにおける前記平行箇所の形状を算出することを特徴とする請求項2記載の地図情報処理装置。
【請求項4】
前記形状情報は、前記オブジェクトの形状を表す形状点列を所定向きに辿った先頭の形状点を、前記地図に設定した所定の座標系で一意に位置が決定される絶対座標で表し、前記先頭以降の形状点を、前記先頭の形状点から前記所定向きに形状点を辿った順に1つ前に辿った形状点の座標に対する相対座標で表したことを特徴とする請求項1または請求項2記載の地図情報処理装置。
【請求項5】
前記形状算出部は、前記1つ又は複数のオブジェクトにおける前記平行箇所の一端の形状点の絶対座標を算出し、前記参照箇所指示データで指定された前記一方のオブジェクトにおける前記平行箇所の形状を表す形状点の相対座標を用いて、前記1つ又は複数のオブジェクトの前記平行箇所の前記一端の形状点に続く各形状点の絶対座標を算出することを特徴とする請求項4記載の地図情報処理装置。
【請求項6】
前記一方のオブジェクトにおける前記平行箇所と前記他方の1つ又は複数のオブジェクトにおける前記平行箇所とのいずれか一方に対応する形状点がない場合に、当該対応する形状点がないオブジェクトの形状情報に当該形状点を示すデータを追加することを特徴とする請求項1から請求項5のうちのいずれか1項記載の地図情報処理装置。
【請求項7】
地図に描画するオブジェクトの形状を表すデータが格納された形状情報を有するオブジェクトデータを記憶する地図情報記憶部と、
前記地図情報記憶部から読み出したオブジェクトデータの形状情報を用いて、前記オブジェクトの形状を算出して描画する形状算出部とを備え、
前記地図情報記憶部は、複数のオブジェクトで互いに平行となる平行箇所を有する場合に、前記複数のオブジェクトのいずれかのオブジェクトにおける前記平行箇所の形状を表すデータを格納する参照形状データを記憶し、
前記複数のオブジェクトの各形状情報には、前記平行箇所の形状を表すデータの代わりに、前記参照形状データを指定する参照箇所指示データを格納し、
前記形状算出部は、前記参照箇所指示データで指定された前記参照形状データにおける前記平行箇所の形状を表すデータを用いて、前記複数のオブジェクトにおける前記平行箇所の形状を算出することを特徴とする地図情報処理装置。
【請求項8】
前記形状算出部は、前記参照箇所指示データで指定された前記参照形状データにおける前記平行箇所の形状を表す形状点列を前記複数のオブジェクトのそれぞれへ平行移動した点列として、前記複数のオブジェクトにおける前記平行箇所の形状を算出することを特徴とする請求項7記載の地図情報処理装置。
【請求項9】
前記形状情報は、前記オブジェクトの形状を表す形状点列を所定向きに辿った先頭の形状点を、前記地図に設定した所定の座標系で一意に位置が決定される絶対座標で表し、前記先頭以降の形状点を、前記先頭の形状点から前記所定向きに形状点を辿った順に1つ前に辿った形状点の座標に対する相対座標で表し、
前記参照形状データは、前記平行箇所の形状を、当該形状を表す形状点列を所定向きに形状点を辿った順に1つ前に辿った形状点の座標に対する相対座標で表現したことを特徴とする請求項7または請求項8記載の地図情報処理装置。
【請求項10】
前記参照箇所指示データは、前記平行箇所の形状を表す形状点列の各形状点を参照する順序を示す参照順序情報と、前記参照する順序に応じて前記各形状点の相対座標を加算するか若しくは減算するかを指示する加減算指示情報とを有し、
前記形状算出部は、前記オブジェクトにおける前記平行箇所の一端の形状点を初期位置として、前記参照箇所指示データで指示された前記参照形状データから前記参照順序情報が示す順序で形状点の相対座標を取得して、前記加減算指示情報が示す加算又は減算を施すことにより、前記オブジェクトにおける前記平行箇所の各形状点の絶対座標を算出することを特徴とする請求項9記載の地図情報処理装置。
【請求項11】
地図に描画するオブジェクトの形状を表すデータが格納された形状情報を有するオブジェクトデータを記憶する地図情報記憶部と、
前記地図情報記憶部から読み出したオブジェクトデータの形状情報を用いて、前記オブジェクトの形状を算出して描画する形状算出部とを備え、
一方のオブジェクトの一部の形状に線形変換を施すと、他方の1つ又は複数のオブジェクトが当該線形変換を施した形状に平行となる平行箇所を有する場合、前記1つ又は複数のオブジェクトの形状情報には、当該平行箇所の形状を表すデータの代わりに、前記線形変換の内容を示す線形変換情報を有し、前記一方のオブジェクトにおける前記一部の形状を指定する参照箇所指示データを格納し、
前記形状算出部は、前記参照箇所指示データで指定された前記一部の形状を表すデータを前記一方のオブジェクトの形状情報から取得し、当該形状に前記線形変換情報が示す線形変換を施したデータを用いて、前記1つ又は複数のオブジェクトにおける前記平行箇所の形状を算出することを特徴とする地図情報処理装置。
【請求項12】
前記形状算出部は、前記参照箇所指示データで指定された前記一部の形状に対して前記線形変換情報が示す線形変換を施した形状を表す形状点列を、前記1つ又は複数のオブジェクトへ平行移動した点列として、前記1つ又は複数のオブジェクトにおける前記平行箇所の形状を算出することを特徴とする請求項11記載の地図情報処理装置。
【請求項13】
地図に描画するオブジェクトの形状を表すデータが格納された形状情報を有するオブジェクトデータを記憶する地図情報記憶部と、
前記地図情報記憶部から読み出したオブジェクトデータの形状情報を用いて、前記オブジェクトの形状を算出して描画する形状算出部とを備え、
前記地図情報記憶部は、複数のオブジェクトのいずれかのオブジェクトの一部の形状に線形変換を施すと、前記複数のオブジェクトが当該線形変換を施した形状に平行となる平行箇所を有する場合に、前記線形変換を施すことで前記平行箇所に平行となる前記一部の形状に合同な形状を表すデータを格納する参照形状データを記憶し、
前記複数のオブジェクトの各形状情報には、前記平行箇所の形状を表すデータの代わりに、前記線形変換の内容を示す線形変換情報を有し、前記参照形状データを指定する参照箇所指示データを格納し、
前記形状算出部は、前記参照箇所指示データで指定された前記参照形状データにおける前記合同な形状を表すデータに前記線形変換情報が示す線形変換を施したデータを用いて、前記複数のオブジェクトにおける前記平行箇所の形状を算出することを特徴とする地図情報処理装置。
【請求項14】
前記形状算出部は、前記参照箇所指示データで指定された前記参照形状データにおける前記合同な形状に対し前記線形変換情報が示す線形変換を施した形状を表す形状点列を、前記複数のオブジェクトのそれぞれへ平行移動した点列として、前記複数のオブジェクトにおける前記平行箇所の形状を算出することを特徴とする請求項13記載の地図情報処理装置。
【請求項15】
前記線形変換を施した形状を表す形状点列から形状点を間引く間引き処理部と、前記線形変換を施した形状を補間する形状点を当該形状を表す形状点列に挿入する補間処理部とを備えたことを特徴とする請求項11または請求項13記載の地図情報処理装置。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate

【図12】
image rotate

【図13】
image rotate

【図14】
image rotate

【図15】
image rotate

【図16】
image rotate

【図17】
image rotate

【図18】
image rotate

【図19】
image rotate

【図20】
image rotate

【図21】
image rotate

【図22】
image rotate

【図23】
image rotate

【図24】
image rotate

【図25】
image rotate

【図26】
image rotate

【図27】
image rotate

【図28】
image rotate

【図29】
image rotate

【図30】
image rotate

【図31】
image rotate

【図32】
image rotate

【図33】
image rotate

【図34】
image rotate

【図35】
image rotate

【図36】
image rotate

【図37】
image rotate

【図38】
image rotate

【図39】
image rotate

【図40】
image rotate

【図41】
image rotate

【図42】
image rotate

【図43】
image rotate

【図44】
image rotate

【図45】
image rotate


【公開番号】特開2012−2983(P2012−2983A)
【公開日】平成24年1月5日(2012.1.5)
【国際特許分類】
【出願番号】特願2010−136996(P2010−136996)
【出願日】平成22年6月16日(2010.6.16)
【出願人】(000006013)三菱電機株式会社 (33,312)
【Fターム(参考)】