説明

3次元地図描画システム

【課題】 縮尺を保持した3次元地図を提供する。
【解決手段】 道路,建物などの地物を,3次元的に描画した地物データを予め用意し,このデータに基づいて3次元地図を描画する。地物データは,透視投影ではなく,現実の地物CST2を,投影方向PRJに沿う平行線で投影面PL2に投影する方法,つまり平行投影によって生成する。地物データは,平行投影した投影図を描画する2次元のラスタデータまたはポリゴンデータで備えられる。こうして用意された地物データを描画するだけで,レンダリングなどの負荷の大きい処理を行うことなく3次元的な地図を描画することができる。
平行投影では,透視投影と異なり,建物同士の位置関係や形状の縮尺が保持されるため,縮尺を保持した3次元地図を提供することができる。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は,地物を3次元的に表現した3次元地図を描画する3次元地図描画システムに関する。
【背景技術】
【0002】
ナビゲーション装置やコンピュータの画面等に電子地図を表示する際に,建造物や道路などの地物を3次元的に表示する技術がある。このような3次元地図では,地物は,通常,透視投影と呼ばれる投影方法によって描画される。
【0003】
図1は,透視投影による3次元地図の描画例を示す説明図である。図1(a)に示すように,透視投影では,ユーザの視点PVと実際の地物CST1の各部位とを結ぶ直線と投影面PL1とが交わる点の集まりとして,投影結果PI1が得られる。かかる投影方法によれば,図1(b)に示すように,地物を現実に見た状態に近い状態で3次元的に描画することができる。この例では,地物よりも上方に視点PVを設定した場合の例を示した。3次元地図は,2次元地図に比較して,地図に表された範囲の地理を視覚的,直感的に把握しやすいという利点がある。
【0004】
3次元地図における表示に関する先行技術として,特許文献1および特許文献2がある。特許文献1は,3次元地図情報を透視投影する際に,交通標識が建物の陰に隠れるか否かを判断し,隠れる場合には交通標識の予告表示をする技術を開示している。特許文献2は,上空の視点から透視投影した場合に,所定以上の面積となるポリゴンに対してのみ名称を表す文字を表示する技術を開示している。
【先行技術文献】
【特許文献】
【0005】
【特許文献1】特許第4070507号公報
【特許文献1】特許第3428294号公報
【発明の概要】
【発明が解決しようとする課題】
【0006】
図1(b)に例示したように,透視投影は,実際にユーザが見ている景色に近い画像を提供することが可能ではある。
しかし,この方法では,表現された地図の縮尺が保たれないという課題がある。図1(b)に示す通り,近景(図の下側付近)から遠景(図の上側付近)に行くほど,奥行き方向(図の上下方向)の距離は,実際の間隔よりも,つまって描かれてしまう。左右方向の間隔も,遠景では近景よりもつまって描かれてしまう。つまり,左右方向,奥行き方向ともに,地図上の単位長さが表す距離が,近景と遠景とでは異なって描かれてしまうのである。
【0007】
従来,3次元地図の技術は,ユーザが目にする現実の世界を再現することを指向しており,透視投影によって縮尺が崩れるという課題は考慮されてこなかった。地図において縮尺が崩れるという点は,地図の意義を大きく損ねてしまう重大な課題である。縮尺が保たれないということは,透視投影によって描かれた3次元画像は地図としては役立たないことを意味する。地物の位置関係などをきちんと把握するためには,ユーザは,結局,平面の地図を参照する他なかった。
本願は,こうした課題を解決し,縮尺が保たれた3次元地図を提供することを目的とする。
【課題を解決するための手段】
【0008】
地物を3次元的に表現した3次元地図を描画する3次元地図描画システムとしての本発明の構成について説明する。
本発明は,地物データベースと,描画範囲入力部と,描画部とを備える。地物データベースは,鉛直方向に対して所定の投影角度だけ傾けた斜め方向からの平行投影によって地物を平面上に投影した2次元描画データとしての地物データを格納する。本発明においては,透視投影ではなく平行投影によって地物を描くのである。地物データは,ラスタデータおよびポリゴンデータのいずれの形式で備えてもよい。ただし,ポリゴンデータの方が,全体のデータ量を抑制でき,拡大して描画する際にも画像が粗くならないため高画質な地図を提供することができる利点がある。
【0009】
描画範囲入力部が,3次元地図を描画すべき範囲の指定を入力すると,描画部は,地物データベースから,指定に対応した地物データを読み込んで描画する。描画には,コンピュータやナビゲーション装置等のディスプレイへの地図表示,プリンタ等による地図の印刷出力の双方が含まれる。描画すべき範囲(以下,描画範囲という)の指定は,緯度経度の座標他で範囲を直接指定する方法,描画範囲の代表点および拡大縮小の倍率などで指定する方法など種々の方法を採ることができる。ユーザが描画範囲を入力する方法の他,経路案内中の現在位置を入力し,描画範囲入力部が自動的に範囲を設定する方法を採っても良い。
【0010】
本発明の3次元地図描画システムで描かれた地図では,各地物は平行投影によって3次元的に表現される。図2は平行投影による3次元地図の描画例を示す説明図である。図2(a)に示すように,平行投影では,現実の地物CST2の各点を通る所定の平行線PRJと投影面PL2との交点で,投影結果PI2が得られる。平行線PRJの方向が鉛直方向,投影面PL2が地表面に平行であれば,投影結果は2次元の平面地図となるが,本発明では,鉛直方向とは異なる斜め方向から平行投影するため,3次元的に描画した投影結果となる。
【0011】
図2(b)は平行投影によって描かれた地図の例である。例えば,建物BLD1,BLD2,BLD3の辺は平行線で構成されている。このように平行投影では,現実の地物で平行な辺は,地図上でも平行に表される。このことは,現実に一定の幅からなる建物は,地図上も一定幅で表されることを意味している。建物の幅だけでなく,道路幅,建物同士の間隔についても同様である。つまり,平行投影によれば,地物が3次元的に表現されるにも関わらず,左右方向および奥行き方向の縮尺は維持されるのである。
【0012】
本発明は,このように平行投影を用いることにより,縮尺を維持した3次元地図を提供することができる。平行投影では,投影図から得られる奥行き感を,現実の奥行きに合わせるため,奥行き方向に一定の倍率をかけて描画することがある。このように一定の倍率をかけた場合でも,平行投影を採用する限り,左右方向および奥行き方向のそれぞれにおいて,相対的に縮尺は維持される。
【0013】
平行投影という技法自体は,製図の分野で既に広く用いられているが,このように3次元地図に適用した例は従来,存在しなかった。先に説明した通り,従来の3次元地図は,景色をユーザの目に見える通りに忠実に描画することを指向していたため,平行投影の採用は全く検討されていなかったのである。発明者は,景色を忠実に描画するという考え方から,地図としての縮尺を維持する点を重視するという考え方に発想を転換することによって,平行投影を採用するに至ったのである。
【0014】
平行投影を採用することによって,本発明では,地図を描画する際の処理負荷という点でも,次に示す利点がある。
透視投影(図1(a)参照)では,投影する基準となる視点PVを定める必要があるのに対し,平行投影(図2(a)参照)では,視点を定める必要がない。従って,透視投影では,視点が指定される度に,地物の3次元形状を表す3次元モデルに基づいて,レンダリングと呼ばれる投影処理を施して投影図を得る必要がある。
これに対し,平行投影では,視点を指定する必要がないため,所定の投影方向に対する描画結果を予め用意しておくことができるのである。視点と無関係に生成された描画結果は,地図の描画範囲をどのように指定した場合でも共通して利用することができる。この結果,本発明では,3次元地図を描画する際のレンダリング処理が不要となるため,地図の描画時の処理負荷を激減させることが可能となる。
【0015】
本発明では,地物を高さ方向に1よりも大きい係数倍だけ拡大した仮想地物を平行投影して地物データを生成してもよい。
ユーザは地物を地上から見上げることが通常である。地物の上斜めからの投影による平行投影では,投影図から受ける高さ感覚が,現実の地物を見上げた時の高さ感覚よりも低く感じることがある。上述の係数倍によって現実よりも高くした仮想地物に対して投影を行えば,高さ感覚のずれを緩和することができる。高さ方向を係数倍しても,左右方向および奥行き方向の縮尺は維持されるため,本発明の利点は損なわれない利点もある。
【0016】
本発明では,地物データベースには,縮尺の異なる複数階層の地物データを格納してもよい。階層を分けることにより,低階層では,狭域を詳細にデータ化することができ,高階層では,細部の地物を省略してデータ量を抑制しつつ広域をデータ化することができる。3階層以上を設けても構わない。描画部は,描画すべき範囲に応じた階層の地物データを用いて地図を描画することができる。
このように複数階層を設ける場合,各階層の地物データは,平行投影を行う投影方位および投影角度(以下,投影方位および投影角度を「平行投影パラメータ」という)が同一の平行投影によって生成することが好ましい。ある座標点が投影される位置は平行投影パラメータによって定まる。従って,各階層で平行投影パラメータを統一しておけば,同一の座標点の各階層における投影位置同士を容易に対応づけることができる。この結果,描画範囲の中心位置などの特定の点を固定したままで,地図を拡大縮小することが,比較的容易に実現できる。
各階層で平行投影パラメータを変化させる態様をとることも可能である。この場合,描画に使用する階層を変化させる場合には,描画範囲の中心位置などの特定の点が次の階層において投影される位置を解析した上で,次の階層の描画を行うことが好ましい。
【0017】
本発明では,地物データベースは,同一領域に対して投影方位が異なる複数種類の地物データを格納してもよい。この場合,描画範囲入力部が,更に,3次元地図を描画する方位の指定を入力し,描画部が,指定された方位に応じた投影方位の地物データを用いて描画を行うことができる。
こうすることにより,種々の方向から見た状態の3次元地図を描画することができ,利便性を向上させることができる。一方向から投影した3次元地図では,3次元的に描画された建物の陰に隠れて見えなくなる部位,いわゆる死角が生じるが,投影方位が異なる3次元地図を提供することによって,こうした死角を解消することができる。また,経路案内に3次元地図を利用する場合には,案内すべき経路に応じて投影方位が異なる3次元地図を使い分けることにより,進行方向を上側に表示するヘディングアップ表示を円滑に実現することができる。
この態様において,描画する方位は,ユーザが指定してもよいし,ヘディングアップ表示においてはユーザの進行方向を用いてもよい。
【0018】
本発明では,更に,地物の名称を表すための文字を指定する文字データを格納した文字データベースを備えてもよい。複数の投影方位からの地物データが備えられている場合,文字データベースは,投影方位ごとに個別に用意してもよいし,1種類の文字データベースを投影方位が異なる複数種類の地物データと対応づけてもよい。複数種類の地物データと対応づける場合,文字データは,投影方向に応じて,文字を3次元地図上に出力する否かを指定するためのフラグ(以下,ビハインドフラグと言う)を備え,描画部は,このフラグで指定された文字を3次元地図上に出力するようにしてもよい。出力とは,ディスプレイ等への表示,およびプリンタ等での印刷を含む。
3次元地図では,投影方位によって地物が視認できたり,死角に隠れたりするため,地物を表す文字も,これに応じて出力するか否かを制御することが好ましい。上述の態様によれば,文字を表示するか否かを予めビハインドフラグとして格納してあるため,複雑な演算・解析処理をするまでなく,文字の出力を適切に制御することが可能となる。
【0019】
文字データには,文字を出力すべき位置を,高さ情報を含む3次元で指定してもよい。描画部が,指定された位置に対して,地物データを生成する際の平行投影と同じ平行投影を施した位置に文字を出力することにより,高さ情報を反映した表示をすることができる。
こうすることにより,3次元的に表現された地物の接地部分だけでなく,上層階の壁面付近や地物の上方などに文字を表すことができ,見やすい3次元地図を出力することができる。高さ情報は,メートルなどの実測値,地物の階数など種々の形で指定可能であり,地物ごとに変化させてもよい。また,描画方位に応じて異なる高さを指定可能としてもよい。
【0020】
本発明では,地物データベースは,所定の2次元領域からなるメッシュに区切って地物データを格納してもよい。この場合,各メッシュには,メッシュ上に存在しない地物に対する地物データを格納することを許容しておくことが好ましい。
従来の平面の電子地図では,メッシュをまたがって存在する地物のデータは,各メッシュに分断されたポリゴンとして格納されていた。3次元の電子地図では,メッシュをまたがって存在する地物のデータは,分断可能なものは各メッシュに分断して格納し,分断できないものは,いずれかのメッシュにまとめて格納していた。このように,従来の電子地図データでは,各メッシュの地物データは,当該メッシュ内に一部または全部が存在する地物のデータを格納するのが通常であった。
しかし,平行投影では,従来,生じ得なかった新しい課題として,いずれかのメッシュ内に存在する地物であっても,その上部が他のメッシュに描かれる場合が生じ得る。本発明では,かかる場合の対策として,各メッシュには,当該メッシュ上にない地物のデータを格納することを許容した。こうすることにより,メッシュをまたがって描画されるべき地物についても,複雑な処理を要さず平行投影による3次元地図の描画が可能となる。
【0021】
本発明において,地物データに含まれる道路のデータは,道路上の各地点の高さ,いわゆるアンジュレーションを考慮して平行投影したものであってもよい。かかる地物データを用いて3次元地図上に経路または現在位置などの経路案内情報を描画する場合には,次の構成を用いることが好ましい。
経路案内情報入力部は,描画すべき経路案内情報,つまり経路位置および現在位置の少なくとも一方を,高さを含む3次元で指定された情報で入力する。描画部は,指定された情報に対して,地物データを生成する際の平行投影と同じ平行投影を施して経路を描画する。
道路データまたは経路案内情報の一方のみが高さ情報を有している場合には,平行投影した場合に,経路案内情報と道路とがずれて描画されてしまう。これに対し,上述の構成では,経路案内情報に対しても,道路と同じ平行投影が施されるため,上述のずれを解消して経路案内情報を描画することができる。
もっとも,アンジュレーションを考慮しない2次元データに基づいて道路データが整備されている場合には,経路案内情報に対しても,平行投影を施すことなく,2次元データを用いて描画すればよい。この場合には,建物など道路以外の地物もアンジュレーションを考慮しないデータとして整備しておくことが望ましい。
【0022】
本発明は,上述の3次元地図描画システムに限らず,種々の態様で構成可能である。
例えば,本発明は,3次元地図を描画するために用いる地物データをコンピュータによって生成するための地物データ生成方法として構成してもよい。
この地物データ生成方法では,地物の3次元形状を表す3次元モデルを予め格納した3次元地図データベースを用意する。この3次元地図データベースは,地物データを生成するコンピュータ内に備える方法,DVD等の媒体で提供する方法,コンピュータがネットワーク経由でアクセス可能なサーバに格納する方法などで用意できる。
コンピュータは,地物データを生成する対象となる対象領域の指定を入力し,3次元地図データベースから,対象領域および隣接する所定範囲の領域内に存在する3次元モデルを,メモリ内に入力する。そして,メモリ内の3次元モデルに対して,平行投影によって地物を平面上に投影した2次元描画データを生成し,メモリ内に格納し,この2次元描画データから,対象領域として指定された領域内のデータを抽出して,地物データを生成,出力する。
【0023】
上述の通り,本発明では,対象領域だけでなく,そこに隣接する所定範囲に存在する3次元モデルも読み込んだ上で平行投影を施すのである。平行投影では,メッシュ内に存在する地物の投影図は,当該メッシュからはみ出して描かれる可能性がある。逆に,対象領域に存在しない地物であっても,平行投影の結果,その一部の投影図が対象領域に描かれる可能性もある。これらを考慮して,本発明では,対象領域に隣接する所定範囲も含めて平行投影を施すのである。こうすることによって,対象領域内に存在しない地物の投影図も漏れなく得ることが可能となる。
所定範囲は,メッシュの大きさおよび平行投影パラメータに応じて設定すればよい。投影角度が鉛直に近づくほど,所定範囲は狭くでき,水平に近づくほど,所定範囲を広げる必要が生じることになる。
また,所定範囲は,必ずしも対象領域が中心に来るように設定する必要はない。例えば,東から投影した場合には投影図は西側に延びるため,対象領域よりも西側のメッシュに存在する地物の投影図が対象領域に描画されることはない。このように投影方位を考慮して,対象領域に地物が描画される可能性がある方位のメッシュ,つまり対象領域に対して投影方位側に隣接するメッシュのみを所定範囲として設定してもよい。
【0024】
本発明は,その他,コンピュータによって3次元地図を描画する3次元地図描画方法として構成してもよいし,かかる描画をコンピュータに実行させるためのコンピュータプログラムとして構成してもよい。また,かかるコンピュータプログラムを記録したコンピュータが読み取り可能な記録媒体として構成してもよい。記録媒体としては,フレキシブルディスクやCD−ROM,光磁気ディスク,ICカード,ROMカートリッジ,パンチカード,バーコードなどの符号が印刷された印刷物,コンピュータの内部記憶装置(RAMやROMなどのメモリ)および外部記憶装置等,コンピュータが読取り可能な種々の媒体を利用できる。
【図面の簡単な説明】
【0025】
【図1】透視投影による3次元地図の描画例を示す説明図である。
【図2】平行投影による3次元地図の描画例を示す説明図である。
【図3】3次元地図表示システムの構成を示す説明図である。
【図4】地物データの内容を示す説明図である。
【図5】地物データのデータ構造を示す説明図である。
【図6】投影角度と描画結果との関係を示す説明図である。
【図7】平行投影の投影方位を示す説明図である。
【図8】地物データの階層構造を示す説明図である。
【図9】地物データの階層構造の変形例を示す説明図である。
【図10】地物データの生成方法を示す説明図である。
【図11】地物データの生成処理のフローチャートである。
【図12】地物データと文字データとのリンクを示す説明図である。
【図13】ビハインドフラグの内容を示す説明図である。
【図14】地図表示処理のフローチャートである。
【図15】実施例による3次元地図を例示する説明図である。
【図16】経路案内処理のフローチャートである。
【図17】表示範囲決定処理のフローチャートである。
【図18】アンジュレーションによる影響を示す説明図である。
【図19】アンジュレーションを考慮した座標変換方法を示す説明図である。
【図20】座標変換処理のフローチャートである。
【図21】経路案内例を示す説明図である。
【発明を実施するための形態】
【0026】
本発明の実施例について以下の順序で説明する。
A.装置構成:
B.地物データ構造:
B1.平行投影によるデータ:
B2.複数の投影方位:
B3.階層構造:
C.地物データ生成方法:
D.文字データ構造:
E.地図表示処理:
F.経路案内処理:
F1.全体の処理:
F2.座標変換:
【実施例1】
【0027】
A.装置構成:
図3は,実施例における3次元地図表示システムの構成を示す説明図である。サーバ200からネットワークNE2等を介して提供される地図データに基づいて,携帯電話300に地図を表示する構成例を示した。地図を表示する端末としては,パーソナルコンピュータ,ナビゲーション装置などを用いてもよい。また,3次元地図表示システムは,携帯電話300のような端末とサーバ200とからなるシステムの他,スタンドアロンで稼働するシステムとして構成してもよい。
図中には,3次元地図データを生成するデータ生成装置100も併せて示した。
【0028】
携帯電話300には,主制御部304の下で稼働する種々の機能ブロックが構成されている。本実施例では,主制御部304および各機能ブロックは,それぞれの機能を実現するソフトウェアをインストールすることによって構成したが,その一部または全部をハードウェア的に構成してもよい。
送受信部301は,サーバ200とのネットワークNE2を介した通信を行う。本実施例では,3次元地図を表示するための地図データおよびコマンドの送受信が主として行われる。
コマンド入力部302は,キーボード300kの操作等を通じて,ユーザからの指示を入力する。本実施例における指示としては,3次元地図の表示範囲,拡大・縮小の指定,経路案内を行う際の出発地,目的地の設定などが揚げられる。
GPS入力部303は,GPS(Global Positioning System)の信号に基づいて緯度経度の座標値を得る。また,経路案内では,緯度経度の変化に基づいて進行方向を算出する。
地図情報記憶部305は,サーバ200から提供された地図データを一時的に記憶しておくバッファである。経路案内時のように表示すべき地図が時々刻々と移動していく場合,地図情報記憶部305では不足する範囲の地図データをサーバ200から受信して地図を表示する。
マップマッチング変換部307は,経路案内をする場合に,探索された経路および現在位置を,平行投影された3次元地図上の道路上にずれなく表示するため,経路位置および現在位置の座標値に対して必要な座標変換を施す。座標変換の方法については後述する。
表示制御部306は,地図情報記憶部305およびマップマッチング変換部307から提供されるデータに基づいて,携帯電話300のディスプレイ300dに3次元地図を表示する。
【0029】
サーバ200には,図示する機能ブロックが構成されている。本実施例では,これらの機能ブロックは,それぞれの機能を実現するソフトウェアをインストールすることによって構成したが,その一部または全部をハードウェア的に構成してもよい。
地図データベース210は,3次元地図を表示するためのデータベースである。本実施例では,地物データ211,文字データ212,ネットワークデータ213を含む地図データを格納する。地物データ211は,道路,建物などの地物を3次元的に表示するためのデータであり,地物の3次元モデルを平行投影することで得られた2次元のポリゴンデータである。文字データ212は,地図に表示すべき文字,例えば,地物の名称や地名などのデータである。ネットワークデータ213は,道路をノード,リンクの集まりで表現したデータである。ノードとは,道路同士の交点や道路の端点に相当するデータである。リンクはノードとノードとを結ぶ線分であり,道路に相当するデータである。本実施例では,ネットワークデータ213を構成するノード,リンクの位置は,緯度経度および高さの3次元データで定められている。
送受信部201は,ネットワークNE2を介して携帯電話300とのデータの送受信を行う。本実施例では,3次元地図を表示するための地図データおよびコマンドの送受信が主として行われる。また,送受信部201は,ネットワークNE1を介してデータ生成装置100との通信も行う。本実施例では,生成された地図データの授受が主として行われる。
データベース管理部202は,地図データベース210からのデータの読み出し,書き込みを制御する。
経路探索部203は,地図データベース210内のネットワークデータ213を用いて,経路探索を行う。経路探索には,ダイクストラ法などを用いることができる。
【0030】
データ生成装置100には,図示する機能ブロックが構成されている。本実施例では,これらの機能ブロックは,パーソナルコンピュータに,それぞれの機能を実現するソフトウェアをインストールすることによって構成したが,その一部または全部をハードウェア的に構成してもよい。
送受信部105は,ネットワークNE1を介してサーバ200とデータの授受を行う。
コマンド入力部101は,キーボード等を介してオペレータの指示を入力する。本実施例では,地図データを生成すべき領域の指定,平行投影パラメータの指定等が含まれる。
3D地図データベース104は,地図データを生成するために用いられる3次元モデルを格納するデータベースである。道路,建物などの地物については,3次元形状を表す電子データが格納されている。3D地図データベース104は,従来,透視投影によって3次元地図を表示するために備えられる3次元モデルを利用することができる。
平行投影部102は,3D地図データベース104に基づいて平行投影による描画を行って地物データを生成する。描画された投影図は,平行投影データ103に格納され,送受信部105を介してサーバ200の地図データベース210の地物データ211に格納される。平行投影部102は,平行投影する処理過程で,各地物が他の地物の死角となるか否かを判定し,判定結果をビハインドフラグ設定部106に受け渡す。
ビハインドフラグ設定部106は,3D地図データベース104から,各地物の名称を表す文字データを入力し,平行投影部102から受け取った判定結果に基づいて,それぞれの文字を地図上に表示すべきか否かを指定するビハインドフラグを設定する。ビハインドフラグは,ある地物が他の地物の死角になる場合には,文字の非表示を表す値に設定され,死角にならない場合には,表示を表す値に設定される。本実施例では,地物データ211は複数の投影方位に対して用意され,投影方位に応じて死角は変化するため,ビハインドフラグは,投影方位ごとに設定される。
【0031】
B.地物データ構造:
B1.平行投影によるデータ:
図4は,地物データの内容を示す説明図である。3次元データD3から平行投影によってデータD1,D2が得られる様子を示している。3次元データD3は,平面P3上に,建物M3の形状をx,y,zの3次元座標で表したデータである。
この建物M3を鉛直方向(図中の矢印A1方向)に平面P1上に平行投影すると,建物M3が長方形M1のように2次元的に表現されたデータD1となる。これは,従来の2次元地図データに相当する。
これに対し,本実施例では,鉛直方向に対して所定の投影角度だけ傾けた斜め方向(図中の矢印A2方向)の平面P2上に平行投影する。この結果,データD2上には,建物M2のように3次元的に建物が描画される。建物M2は3次元的に表現されてはいるものの,データD2は,あくまでも投影された2次元の描画データである。本実施例では,投影面内のuv座標内の座標値(u1,v1),(u2,v2)などの点列で,建物M2を描画するためのポリゴンデータを規定した。建物M2の側壁,屋根部分で個別のポリゴンデータとしてもよいし,全体を一つのポリゴンデータとしてもよい。窓Wは,建物の壁面に貼り付けるテクスチャ,つまりラスタデータとして用意してもよいし,窓を個別のポリゴンデータとして用意してもよい。
本実施例の地物データは,このように斜め方向の平行投影によって各地物を投影した2次元データによって構成されている。
【0032】
図5は,地物データのデータ構造を示す説明図である。一つの建物BL01を例にとって,データ構造を説明する。
図の左側には,この建物BL01の位置関係を2次元的に示した。地図データは,メッシュM01,M02に区切って整備されている。左下の緯度経度がP01(LAT01,LON01)で表されるメッシュM01内の矩形が建物BL01である。建物BL01の緯度経度は座標G(LATb,L0Nb)で表される。ここでは,建物BL01はメッシュM01からはみ出していない場合を例示した。
【0033】
この位置に存在する建物BL01に対して平行投影すると(矢印CH01),メッシュM03,M04に示すように建物BL01は3次元的に描画される。本実施例では,メッシュM03の左下の緯度経度P02(LAT02,LON02)は,メッシュM01のP01と一致している。本実施例では,このようにメッシュM03,M04は,各頂点の緯度経度が,平面上のメッシュM01,M02の頂点の緯度経度と一致するように定義した。もっとも,投影面におけるメッシュM03,M04は,平面におけるメッシュM01,M02と無関係に設定することも可能である。
平行投影の結果,建物BL01は,メッシュM03内の部分BL03だけでなく,メッシュM04内の部分BL04によって描かれる。本実施例では,矢印CH03,CH04に示すように,一つの建物BL01を描画するポリゴンのうち,メッシュM03に属する部分BL03と,メッシュM04に属する部分BL04とを分離し,それぞれ別個のポリゴンデータとして管理する。
【0034】
図の右側に,それぞれのポリゴンデータの構造を例示した。各ポリゴンに対するデータには,名称,位置,形状,種別,文字,属性等が格納される。
本実施例では,名称としては,建物の名称BL01を用いた。メッシュM03に属する部分BL03,およびM04に属する部分BL04には,共通の名称が付されることになるので,両者が同一の建物に対するポリゴンであることが判別可能となる。名称としてポリゴンに固有の名称を用いることもできる。この場合には,同一の建物に対するポリゴン同士を関連づける情報を別途用意しておくことが好ましい。
【0035】
位置は,建物BL01が存在する緯度経度の座標(LATBL0Nb)である。形状は,各メッシュ内で定義される相対的な2次元座標uvで,ポリゴンを形成する点列を規定するデータである。部分BL03に対する形状データのPb1(u1,v1),Pb2(u2,v2)等のデータは,頂点Pb1,Pb2の位置を,メッシュM03内のuv座標で表した値である。部分BL04に対する形状データのPb3(u3,v3),Pb4(u4,v4)等のデータは,頂点Pb3,Pb4の位置を,メッシュM04内のuv座標で表した値である。
【0036】
種別には,ポリゴンが表す地物の種類を格納する。文字は,地物の名称を示すデータであるが,本実施例では,文字データは地物データとは別に用意しているため,地物データには文字データの格納先を示すデータ(図中のLINK)を格納するものとした。格納先を表すデータとしては,建物BL01に対する文字データに対するパス,アドレス,URL(Uniform Resource Locator)などを用いることができる。
属性は,地物に対する付加情報である。例えば,建物であれば高さ,階数;道路であれば車線幅,国道等の種別などを用いることができる。
【0037】
図6は,投影角度と描画結果との関係を示す説明図である。先に説明した通り,本実施例では,地物を平行投影して得られる投影図を描くデータを地物データとして用いる。平行投影パラメータである投影角度,投影方位は,任意に設定可能である。図の左側に示すように,投影角度Angは,鉛直方向からの投影(図中のPA0)を0度として,水平に近づくにつれて大きくなるように定義する。つまり,投影角度Angは,PA0<PA1<PA2<PA3である。
図の右上の描画IMG1は,投影角度PA1での平行投影図である。右下の描画IMG2は,投影角度PA2での平行投影図である。投影角度Angが小さければ,描画IMG1に示すように平面地図に近い感覚で建物同士の位置関係が把握しやすくなる。投影角度Angが大きければ,描画IMG2に示すように建物の形状を直感的に把握しやすくなる。投影角度は,これらの視覚的効果を考慮して設定すればよい。また,投影角度が異なる複数の地物データを用意しておき,ユーザが選択可能としてもよい。
【0038】
本実施例では,現実の建物をそのまま平行投影するのではなく,高さ方向にのみ1よりも大きい係数を乗じた上で平行投影している。図の左側に示すように,建物BLDの現実の高さhに対し,係数Cを乗じた高さC・hの仮想的な建物を求め,これに対して平行投影することによって,右側の描画IMG1,IMG2を得ているのである。
ユーザは通常,建物を下方から見上げることが多い。従って,上方から見る形で平行投影を施すと,投影図から得られる建物の高さ感覚は,現実に見上げた時の高さ感覚に合わないことがある。これに対し,上述のように,係数Cを乗じて,高さ方向にのみ拡大した仮想的な建物に対して平行投影を施せば,高さ感覚の違和感を緩和することができる。
係数Cは,視覚的な効果を考慮して任意に設定可能である。描画IMG1,IMG2を比較すれば明らかな通り,建物の高さ感覚は,投影角度Angによっても変化するため,複数の投影角度Angで平行投影を行う場合には,投影角度Angに応じて係数Cを変化させてもよい。もっとも,こうした違和感が問題とならない場合には,係数を乗じることなく平行投影を行っても構わない。
【0039】
B2.複数の投影方位:
平行投影パラメータは,投影角度と投影方位である。投影角度は,先に図6に示した通り鉛直からどれだけ傾けた方向に投影するかを表すパラメータである。投影方位は,いずれの方位に傾けるかを表すパラメータである。地物データは,単一の投影方位に対して用意することもできるが,本実施例では,複数の方位に対して用意している。
【0040】
図7は,平行投影の投影方位を示す説明図である。図示する通り,本実施例では,一つの領域ARに対して,方位を45度ずつずらして方位1〜方位8の8方位について,それぞれ平行投影を行い,地物データを生成した。例えば,方位1では北側から見た状態で平行投影した投影図が得られ,方位5では南側から見た状態で平行投影した投影図が得られる。方位1で死角になっていた建物でも,逆方向の方位5では死角にならず描画されることになる。多方位で地物データを用意しておけば,このように死角が生じた場合でも,その死角の地理は他の方位の地図で確認可能であるため,3次元的に表示することによって死角が生じることによる支障を緩和することができる。
本実施例では,8方位の地物データを用意したが,4方位としてもよいし,16方位またはそれ以上としてもよい。本発明者が検討した結果によれば,16方位で地物データを用意し,各方位の投影図を順次切り替えていけば,あたかも領域ARの周りを周回しながら,領域ARを見ているかのような表示を違和感なく実現することができることが分かっている。かかる観点からは,地物データは16方位に対して用意することが好ましいとも言える。
【0041】
B3.階層構造:
図8は,地物データの階層構造を示す説明図である。本実施例では,地物データおよび文字データは,共に複数の階層に分けて構成されている。階層LV1は,狭域を詳細に表示するためのデータである。階層LV3は,描画対象となる地物を間引くことによって,広域を効率的に表示するためのデータである。階層LV2は,階層LV1,LV3の中間の領域を描画するためのデータである。これらの階層は,表示すべき地図の拡大・縮小に応じて,使い分けられる。3階層に限らず,2階層または4階層以上としてもよい。
本実施例では,階層LV1〜LV3の全てにおいて,同じ平行投影パラメータで平行投影をしている。つまり,図中に示すように,地表面GLにおける特定の領域(図中のハッチングを付した部分)は,階層LV1〜LV3のいずれにおいても同じように投影される。従って,地図の拡大・縮小表示に伴って階層を切り換える場合でも,従前の階層における表示領域に対応する領域を次の階層でも容易に特定することができ,比較的簡易な処理で円滑な表示を実現することができる。
【0042】
図9は,地物データの階層構造の変形例を示す説明図である。ここでは,低階層LV1と,中階層LV2で平行投影パラメータが異なる例を示した。低階層LV1では,投影角度が大きい(水平に近い)状態で投影しているのに対し,中階層LV2では,投影角度が小さい(鉛直に近い)状態で投影している。
この結果,低階層LV1の座標系u1,v1と,中階層LV2の座標系u2,v2とは異なる座標系となるため,各階層において,地表面GLのハッチングを付した領域に対応する範囲を特定しづらくなる。かかる状態で低階層LV1から中階層LV2に表示を切り換える場合には,低階層LV1における表示範囲に対応する地表面GL上の範囲を求め,次に,この範囲に対応する中階層LV2上の範囲を特定する処理を施すことになる。
こうした処理負荷が許容できる場合には,図9のように,階層ごとに平行投影パラメータを変化させてもよい。例えば,広域の階層ほど投影角度を小さく(鉛直に近く)することによって,描画される地図を平面地図に近づけることができる。つまり,階層を変化させることによって,平面地図の利点と,3次元地図の利点とを使い分けることが可能となるという利点がある。
【0043】
C.地物データ生成方法:
図10は,地物データの生成方法を示す説明図である。本実施例では,3D地図データベースに含まれる3次元の地物データを平行投影することによって地物データを生成する。ただし,地図データをメッシュに区切って生成・管理する場合,平行投影をメッシュ単位で施したのでは,適切な地物データを生成することができないという問題がある。
図10中のハッチングを付したメッシュMPに対応する地物データを生成する場合を考える。3D地図データベースでは,メッシュMPの周囲に,図示する通り,M11〜M55までのメッシュが存在し,各メッシュには種々の地物が存在する。ここで,メッシュMPに隣接するメッシュM34に存在する地物B34を平行投影する場合を考える。平行投影が図中のVpj34で示す方向に行われるとすると,地物B34の上部は,メッシュMP内に投影されることになる。このように,平行投影で地物データを生成する場合,処理対象となるメッシュMPに対しては,そのメッシュ内に存在しない地物の一部が投影されることもあるのである。従って,単にメッシュごとに平行投影を行ったのでは,他のメッシュに存在する地物の投影図が欠けてしまい,適切な地物データを得ることができない。
【0044】
そこで,本実施例では,処理対象となるメッシュMPに対して,そこに隣接するメッシュ(M22,M23,M24,M25,M32,M34,M42,M43,M44),およびこれらに更に隣接するメッシュ(M11〜M15,M21,M25,M31,M35,M41,M45,M51〜M55)の3次元地物データを読み込み,メッシュM11〜M55全体に対して平行投影を施した上で,メッシュMPに対応する部分のポリゴンを切り取ることによって地物データを生成した。こうすることによって,メッシュMPの処理時に,隣接するメッシュM34に存在する地物B34に対しても平行投影が行われるから,その上部も漏れなく地物データ化することができる。
【0045】
本実施例では,上述の通り,処理対象となるメッシュMPから2区画までの位置にあるメッシュを用いているが,地物データの生成に用いる範囲は,任意に設定可能である。各メッシュのサイズが地物のサイズに比べて十分に大きく,2区画離れた位置にある地物が処理対象となるメッシュに投影される可能性がない場合には,1区画,つまり処理対象となるメッシュに直接隣接するメッシュのみを用いて平行投影を行ってもよい。また,逆に,メッシュのサイズが地物のサイズに比べて小さい場合には,3区画以上の範囲を用いて平行投影してもよい。
さらに,平行投影に用いる範囲は,処理対象となるメッシュMPの周囲に均等に配置する必要はなく,投影方位を考慮して,偏らせてもよい。例えば,図10中に示すように矢印Vpj34の方位で平行投影する場合を考える。この時,メッシュMPの左側に隣接するメッシュM32に存在する地物B32は,矢印Vpj32方向に投影される結果,投影図は地物B32の左側に描画される。つまり,この投影方位では,地物B32は,メッシュMPに投影されることはない。従って,メッシュMPを処理する際には,メッシュM32を平行投影に用いる必要はないことになる。
同様に,図10中の矢印Vpの投影方位で平行投影する場合には,太線で囲った範囲(メッシュM34,M35,M43〜M45,M53〜M55)があれば足りる。
このように,平行投影に用いる範囲は,処理対象となるメッシュMPよりも投影方位側に偏らせて設定しても構わない。
【0046】
図11は,地物データの生成処理のフローチャートである。データ生成装置100の平行投影部102(図3参照)が行う処理であり,ハードウェア的には,データ生成装置100を構成するパーソナルコンピュータのCPUが実行する処理である。
処理を開始すると,CPUは,処理対象となるメッシュの指定を入力する(ステップS100)。図10におけるメッシュMPの指定に相当する処理である。指定方法は,メッシュ固有のインデックス,メッシュの座標などを用いることができる。地図上でオペレータが指定した点の座標値を含むメッシュをデータ生成装置100が解析し,これを処理対象のメッシュとして設定する方法をとってもよい。
【0047】
また,CPUは,平行投影パラメータ,即ち投影方位と投影角度を入力する(ステップS101)。平行投影パラメータは,地物データを生成する度にオペレータが指定するものとしてもよいし,予めデフォルトの平行投影パラメータをデータ生成装置100内に設定しておく方法をとってもよい。
【0048】
次に,CPUは,対象メッシュおよびその周辺の所定範囲のメッシュについて,3D地図データベースを読み込む(ステップS102)。本実施例では,図10に示すように,対象メッシュMPから2区画以内のメッシュに属する3D地図データを読み込むものとした。この範囲が任意に設定可能であることは,図10で説明した通りである。読み込んだ3D地図データは,データ生成装置100のメモリ内に一時的に記憶される。
【0049】
読み込んだ3D地物データに対し,CPUはステップS101で指定された平行投影パラメータに基づいて,平行投影を施す(ステップS103)。この処理によって,各地物を平行投影で3次元的に表現した投影図が描画される。本実施例では,これらの描画結果は,2次元のポリゴンデータとして,データ生成装置100のメモリ内に一時的に格納する。描画結果をラスタデータとして格納してもよい。
【0050】
平行投影が完了すると,CPUは生成されたポリゴンデータから,対象メッシュに相当する領域を切出す(ステップS104)。複数のメッシュにまたがって描画されているポリゴンに対しては,図5に示したように,対象メッシュ内にある部分だけを抽出し,新たなポリゴンデータとして設定しなおす。また,この切出の際には,各ポリゴンに名称,位置,形状など図5に示した種々のデータを併せて整備する。
【0051】
そして,CPUは,地物データとして格納する(ステップS105)。本実施例では,地物データ211への格納指示とともに,データをサーバ200(図3参照)に送信する。
以上の処理を全メッシュについて実行することによって,本実施例の地物データ211を整備することができる。
【0052】
D.文字データ構造:
図12は,地物データと文字データとのリンクを示す説明図である。図の左側に,地物データ211の構造を模式的に示した。図8で示した通り,地物データは階層LV1〜LV3に分かれて用意されており,各階層において,図7で示した通り方位1〜方位8までに分かれて用意されている。図中に示すように,階層LV1における方位1〜方位8までの地物データには,BL03なる名称の地物に対応するレコードが共通して含まれている。この地物に対するレコードは,階層LV2,LV3における地物データにも存在する。このように,本実施例では,同一の地物に対するレコードが,種々の階層,方位に対し,重複して存在している。
【0053】
文字データ212には,各地物の名称表す文字情報を記録した文字レコードが複数記憶されている。本実施例では,文字レコードも階層ごとに整備してある。
地物データの各レコードには,その地物の名称を表す文字レコードの格納場所を示す情報LINKが記録されている。本実施例では,各階層内の複数の方位における地物データに対して,一つの文字レコードが共通して用いられるため,階層LV1において地物BL03に格納されている情報LINKの内容は同一である。図中では,複数の地物レコードに対して,一つの文字レコードが対応づけられる様子を矢印で示した。
【0054】
文字レコードには,名称,表示内容,フォント,色,サイズ,ビハインドフラグ,位置,高さなどの情報が格納されている。
名称は,文字レコードが対応する地物の名称である。地物を構成するポリゴンの名称を用いてもよい。図5に示すように一つの地物が複数のポリゴンで描画される場合もあるため,ポリゴンの名称を用いる場合には,複数の名称が格納されることになる。
表示内容は,地物の名称を表す文字列である。フォント,色,サイズは,文字列の表示態様を規定する情報である。
ビハインドフラグは,文字の表示可否を制御するフラグであり,地物データの方位に対応づけて設定される。図中の例では,「1,1,1,1,0,0,1,1」と設定されているため,方位1〜4および方位7,8では,文字を表示し(設定=1),方位5,6では非表示(設定=0)となることを意味している。ビハインドフラグの設定方法については,後述する。
位置は,文字を表示する座標である。対応する地物の代表点の座標,つまり地物データにおける「位置」情報と同じ値を用いることができる。
高さは,文字を表示する高さである。高さは,メートルなどを単位として表しても良いし,表示時のピクセル,地物の階数などを用いて表してもよい。
高さ情報を指定することにより,文字を地物の接地面よりも高い位置に表示させることが可能となり,文字と地物との関係を把握しやすい表示を実現することができる。本実施例では,高さは,全方位共通の値としたが,ビハインドフラグのように,方位ごとに設定可能としてもよい。
【0055】
本実施例では,階層ごとに文字データを整備したが,文字データを全階層に共通としてもよい。この場合,階層に応じて文字データの表示/非表示を制御するフラグを設定してもよい。このフラグには,ビハインドフラグに準じた形式を採用することができる。
【0056】
図13は,ビハインドフラグの内容を示す説明図である。中央の図は,建物BL03,BL04の2つの地物の配置を2次元的に示している。また,各方位における建物BL01に対するビハインドフラグ(BF)の設定値を示した。
建物BL01,BL04を,方位1から平行投影した場合,建物BL01は,建物BL04の死角にはならず視認可能である。方位1では,建物BL01の名称を表す文字を地図上に表示しても支障はないため,ビハインドフラグBFは,文字表示を意味する「1」に設定される。方位2,3,7,8についても同様である。
右下の投影図PIC4は方位4からの平行投影図である。図示する通り,方位4からの平行投影では,建物BL01は建物BL04の死角にはならない。従って,ビハインドフラグBFは「1」に設定される。
下の投影図PIC5は,方位5からの平行投影図である。この状態では,建物BL01は建物BL04の死角になっている。かかる状態で,建物BL01の名称を表示すると,ユーザはどの建物の名称が表示されているのか分からない。従って,この状態では,建物BL01の文字は非表示とすべきであるから,ビハインドフラグBFは,非表示を意味する「0」に設定される。
左下の投影図PIC6は,方位6からの平行投影図である。この状態では,図示するように,建物BL01は,上部がわずかに見えている。このように部分的に見えている場合には,ビハインドフラグは表示/非表示のいずれにも設定可能である。図中には,わずかしか見えない点を考慮し,ビハインドフラグBFを非表示「0」に設定した例を示した。一部とはいえ,建物BL03が見えている点を考慮し,ビハインドフラグBFを「1」と設定してもよい。
【0057】
図13では,建物BL01に対するビハインドフラグの設定について説明したが,建物BL04に対しても同様に設定可能である。図13に示した状態であれば,建物BL04のビハインドフラグは,全方位に対して表示「1」と設定するのが妥当である。
【0058】
死角となるか否かは,建物の平面的な位置関係だけでなく,建物の高さによっても異なるため,ビハインドフラグは平行投影の結果に応じて設定することが好ましい。図13の例においても,建物BL01の高さが,建物BL04よりも十分に高い場合には,ビハインドフラグBFは全方位で「1」となることも起き得る。
ビハインドフラグは,オペレータが手動で設定してもよいし,地物データ生成処理(図11参照)において,各地物の平行投影を行う際に,他の地物の死角になるか否かを判定して,自動的に設定可能としてもよい。図13の方位6における建物BL03のように部分的に見える地物は,例えば,次のように扱うことが可能である。
(1)描画される部分の面積が所定値以上の場合に表示とする;
(2)描画される部分の面積が建物BL01の所定割合以上の場合に表示とする;
(3)建物BL01の接地部分の一部または全部が描画される場合に表示とする;
(4)描画される部分が所定階数以上の場合に表示とする;
【0059】
E.地図表示処理:
図14は,地図表示処理のフローチャートである。本実施例では,携帯電話300の主制御部304および表示制御部306が実行する処理であり,ハードウェア的には携帯電話300のCPUが実行する処理である。
【0060】
この処理では,まずCPUは,表示位置,方位,範囲の指定を入力する(ステップS300)。ユーザがキーボード等でこれらを指定するものとしてもよいし,GPSで得られる現在位置を表示位置として用いるものとしてもよい。
CPUは,従前の地図表示処理において既に取得し携帯電話300内に保持されている地図情報から,指定に対応する地図情報を抽出する(ステップS301)。地図情報とは,地物データ,文字データ,ネットワークデータなど,地図を表示するために必要となる種々のデータの総称である。
図に抽出の様子を示した。メッシュで区切られた地図情報MEのうち,ハッチングを付した部分が既に携帯電話300に保持されている地図情報である。領域IAは,ユーザからの指定に対応する範囲を表している。この例では,保持されている地図情報のうち領域IAに重なる部分,つまりメッシュME3,ME4を除く部分が抽出されることになる。
領域IAと重複しないメッシュME3,ME4については,不要な情報として消去してもよいし,携帯電話300のメモリが許容する限り,残しておくようにしてもよい。
【0061】
CPUは,抽出した地図情報では,地図を表示するのに不足する場合には(ステップS302),サーバ200から不足部分の地図情報を取得する(ステップS303)。上述の例では,領域IAを表示するためには,メッシュME1,ME2が不足しているから,これらの地図情報が取得されることになる。
【0062】
こうして地図情報を取得し終えると,CPUは地物を描画する(ステップS304)。本実施例では,地物データは既に平行投影された後の2次元のポリゴンデータに過ぎないから,取得した地物データに従ってポリゴンを描画すれば3次元地図を表示することができる。
従来技術では,3次元モデルを用いて,レンダリングと呼ばれる処理を行って透視投影図を作成し,3次元地図を描画していたため,レンダリングに要する処理負荷が非常に大きかったのに対し,本実施例では,非常に軽い負荷で3次元地図を描画可能となる大きな利点がある。
【0063】
CPUはビハインドフラグが1に設定されている文字を地図中に表示する(ステップS305)。文字の表示は,地物の描画(ステップS304)と併せて行ってもよい。
表示された地図中での文字の表示位置は次の手順で設定することができる。
まず,地物データを構成する各メッシュの頂点の緯度経度は既知であるから,メッシュ内で文字レコードに付された位置情報(緯度経度)に対応する点を特定する。文字レコードの緯度経度に基づいて,各メッシュの頂点の緯度経度を補間して,メッシュ内で規定されたuv座標値を求めればよい。
次に高さ情報に応じて,文字の表示位置をu軸方向に移動させる。高さ情報が表示時のピクセル値で指定されている場合には,指定値を用いることができる。高さ情報がメートルや階数などで与えられている場合には,投影角度に応じた係数を乗じてピクセル値に変換すればよい。
【0064】
本実施例では,ビハインドフラグを利用することにより,死角になっていない地物に対してのみ文字を表示することが可能となる。ビハインドフラグは,方位ごとに設定されているため,指定された方位に応じて,文字の表示/非表示を切り替えることが可能である。
3次元モデルにレンダリングを施す場合には,レンダリングの処理過程で,地物が死角になっているか否かを判断して文字の標示/非表示を制御する必要があったため,文字の表示/非表示の制御に要する処理負荷が非常に大きかったのに対し,本実施例では,非常に軽い負荷で制御可能となる大きな利点がある。
【0065】
図15は,実施例による3次元地図を例示する説明図である。図15(a)の写真に対応する地域の出力例を示した。従来における透視投影による3次元地図の出力も,図15(a)のようになる。図15(a)の表示では,ビルBL1,BL2の形状を把握しやすく,この地点に立ったユーザは,すぐにビルBL1,BL2を直感的に識別できる利点がある。ただし,図15(a)では,両者の位置関係は把握しづらいし,遠景に見える他のビルまでの距離はつかめない。
【0066】
図15(b)は2次元地図の出力例である。図15(b)中にも,図15(a)のビルBL1,BL2に対応する建物を破線囲みで示した。2次元地図では,ビルBL1,BL2の位置関係は把握しやすいものの,実際にこの地域に立ったユーザから見ると,図示されたこれらの地物が図15(a)のビルBL1,BL2に当たるとことが直感的には把握しづらい。
【0067】
図15(c)は本実施例における出力例である。図15(c)にもビルBL1,BL2を破線囲みで示した。平行投影で描画されており,地図の縮尺は維持されている。従って,ビルBL1,BL2の位置関係や,これらのビルよりも遠方に位置するビルまでの距離は,2次元地図(図15(b))と同程度に把握可能である。
また,図15(c)では,地物が3次元的に表示されるため,ビルBL1,BL2の形状も直感的に認識可能である。図15(c)が上方から見下ろす感じで描かれているのに対し,実際にこの地点に立つユーザは図15(a)に示す通り下方見上げるようにビルBL1,BL2を見ることになるが,それでも図15(c)の表示に基づいてビルBL1,BL2を直感的に識別することが可能である。
このように本実施例における3次元地図表示は,平行投影を利用することによって,縮尺が維持されるという2次元地図の長所と,地物の形状を直感的に把握しやすいという3次元地図の長所とを兼ね備えることができる。
【0068】
図15(c)内には,「○○ビル」,「第二**ビル」という文字を例示した。その他の地物についての名称の表示は,図の煩雑化を回避するため図示を省略した。
本実施例では,高さ情報を含めて文字の表示位置が指定されているため,図示する通り,文字は,それぞれビルの接地部分ではなく上部に表示される。3次元地図では,このように地物の上部に文字を表示することにより,文字が他の地物の死角になることを回避でき,文字と地物との対応関係を認識しやすい自然な表示を実現することができる。
この例では,文字の高さ情報として,建物の高さを指定することにより,文字が各建物の屋上に配置される例を示した。高さ情報は任意に設定可能であり,建物の側壁部分に文字が表示されるようにしてもよい。
【0069】
F.経路案内処理:
F1.全体の処理:
図16は,経路案内処理のフローチャートである。左側に携帯電話300の処理を示し,右側にサーバ200の処理を示した。これらは,図3に示した種々の機能ブロックが協同して実行する処理であり,ハードウェア的には,携帯電話300およびサーバ200のCPUが実行する処理である。
【0070】
まず,携帯電話300のユーザが,経路探索の出発地,目的地を指定する(ステップS210)。出発地は,GPSで取得される現在位置を用いてもよい。目的地は,地物名称,住所,緯度経度の座標値など種々の方法で設定可能である。携帯電話300は,これらの指定結果をサーバ200に送信する。
サーバ200は,出発地,目的地の指定を入力すると(ステップS200),ネットワークデータ213(図3参照)を用いて経路探索を行う(ステップS201)。経路探索は,例えば,ダイクストラ法等を用いることができる。サーバ200は探索結果,即ち経路となるべきネットワークデータを携帯電話300に出力する(ステップS202)。
【0071】
携帯電話300は,探索結果を受信すると(ステップS211),以下の手順で経路案内を行う。
まず,携帯電話300は,ユーザの現在位置,進行方向を入力する(ステップS220)。現在位置は,GPSによって特定できる。進行方向は,従前の位置から現在位置までの変化に基づいて求めることができる。
次に,携帯電話300は表示範囲決定処理を行う(ステップS220)。この処理は,現在位置,進行方向に基づいて地図の表示範囲を決定する処理である(ステップS220)。
【0072】
図17は,表示範囲決定処理のフローチャートである。携帯電話300は,まず進行方向に基づいて,地図の方位を決定する(ステップS221)。図7で説明した通り,本実施例では8方位に対して地物データが用意されているため,使用すべき方位を,進行方向に応じて選択するのである。
図中に地図の方位の決定方法を示した。中央の四角の領域は,表示対象となる領域を表し,その周囲に,図7に対応する8方位を示した。各方位には,破線で示すように,それぞれ45度の角度領域が割り当てられる。携帯電話300は,これらの8つの角度領域から進行方向が含まれるものを選択する。例えば,矢印HDで示す方向に進行している場合には,方位5が選択されることになる。
角度領域は地物データが用意されている方位数に応じて決めることができる。16方位の地物データが用意されている場合には22.5度とすればよいし,4方位の場合には90度とすればよい。
【0073】
なお,図中の方位1,方位8に例示するように,各方位に割り当てる角度範囲を45度よりも大きく設定し,方位間に重複する領域を持たせてもよい。図中の一点鎖線で示す範囲は,45度よりも広い角度領域を表している。方位1,方位8に対して,このように広い角度領域を割り当てると,両者の間には,ハッチングを付した領域HAのように重複領域が生じる。
このように設定しておけば,方位を決定する際には,この領域をヒステリシス領域として用いることができる。例えば,進行方向が方位8から方位1に変化している場合には,進行方向が重複領域HAに入っても方位8を使用し,逆に方位1から方位8に変化している場合には,進行方向が重複領域HAに入っても方位1を使用するのである。このようにヒステリシスを設けることにより,方位1と方位8との境界付近で進行方向が細かく変化する場合に,表示される地図が頻繁に切り替わることを回避できる利点がある。
図中では方位1と方位8との間に重複領域HAを設ける例を示したが,他の方位間にも同様に重複領域を設けることが可能である。
こうして表示方位が決定されると,携帯電話300は,現在位置,方位に基づき表示範囲を決定することができる(ステップS222)。
【0074】
図の右側に,経路案内中における表示範囲の決定例を示した。
破線で示す経路PSみに沿って位置POS1,POS2,POS3と移動する場合を考える。位置POS1では,進行方向DR1は図中の真上,即ち方位5(ステップS221中の図を参照)に相当する。従って,携帯電話300は,方位5の地物データを用いて幅XAr,縦YArの範囲を表示範囲Ar1と設定する。幅および縦のサイズは,ユーザからの指示で決定してもよいし,ユーザの進行速度に応じて自動的に設定してもよい。進行速度は,現在位置の時間的変化に基づいて算出することができる。
【0075】
次に,位置POS2に移動すると,進行方向DR2はやや右側に変化する。しかし,この進行方向DR2は,まだ方位5の角度領域内に属するため,携帯電話300は,位置POS2においても方位5を選択し,表示範囲AR2を決定する。この結果,位置POS1から位置POS2に移動する間は,進行方向が右に変化しているものの,地図は方位5のままで平行移動する形で案内表示が行われることになる。
【0076】
次に,位置POS3に移動すると,進行方向DR3はさらに右側に変化する。この進行方向DR3は,方位5の角度領域を外れ,方位6の角度領域に属する。従って,携帯電話300は,位置POS3においては,方位6を選択し,表示範囲AR3を決定する。経路案内時には,位置POS2から位置POS3に至る途中で,方位5から方位6の地図に表示が切り替わることになる。
【0077】
図16に戻り,経路案内処理について説明する。
本実施例では,経路を表すネットワークデータおよび現在位置は,高さを含む3次元の位置座標で規定されている。また道路も,いわゆるアンジュレーション,つまり地表面の高さ変化を反映するため,高さ情報を有する3Dデータを平行投影することで生成されている。従って,ネットワークデータを平行投影と同じ方法で投影した上で地図上に表示しないと,経路が道路からずれて表示されてしまう。
そこで,本実施例では,経路を道路上に適切に表示するため,現在位置およびネットワークデータに対して平行投影を施して表示位置を得る処理を行う。これが,座標変換処理(ステップS230)である。座標変換の処理方法については後述する。
【0078】
以上の処理が完了すると,携帯電話300は,指定された表示範囲に従って地図表示処理を実行する(ステップS300)。この処理内容は,先に図14で示した処理と同じである。
次に,携帯電話300は,経路および現在位置を表示する(ステップS310)。経路は,道路とは異なる色,線などで示してもよいし,進行すべき方向や曲がり角などに,矢印その他を表示してもよい。
【0079】
携帯電話300は,ユーザが目的地に到着するまで(ステップS311),ステップS220以降の処理を繰り返し実行し,経路案内を行う。
【0080】
F2.座標変換:
図18は,アンジュレーションによる影響を示す説明図である。
図中の面A2Dは2次元地図における地表を表し,面A3Dは3次元地図における地表を表している。右側に示す通り,本実施例におけるネットワークデータ213,および地物データの生成に用いられる3D地図データベース104は,面A3Dに相当する3次元の情報を有するデータである。2次元平面A2D内のメッシュM2Dに対応する範囲は,起伏のあるメッシュM3Dに対応する。
面Apは平行投影による投影図を示している。矢印Vpjで示す方向に投影するため,2次元平面A2D内のメッシュM2Dに対応する範囲は,やや斜めにずれた位置のメッシュMP2となる。
一番下に示した面Agは,GPSで得られた緯度経度の座標面である。
【0081】
本実施例では,現在位置は,点P3D(x,y,z)のように3次元の位置座標で与えられる。この座標は,2次元的には位置Cpg(緯度,経度)に対応し,2次元地図が描画される面A2Dでは,メッシュM2D内の点P2D(X,Y)に相当する。
点P3Dを平行投影すれば,面Ap上のメッシュMp2内の点Pp2に描画される。これに対し,点P3Dの3次元座標のうち,2次元の要素(X,Y)を,平行投影が施された座標値であると想定すると,面Ap内では,本来のメッシュMp2とは異なるメッシュMp1内の点Pp1に描画されてしまう。本来の点Pp2との誤差Vcが生じてしまうのである。
そこで,本実施例では,面Ap内で点P3Dに対して,誤差Vc分の移動に相当する座標変換を施すことにより,点P3Dを平行投影した状態での描画を実現した。
【0082】
図19は,アンジュレーションを考慮した座標変換方法を示す説明図である。図18で示した誤差Vcに相応するベクトルを求め,これを補正量として座標変換を行う。この意味で,以下,誤差Vcを補正ベクトルVcとも呼ぶ。
図中の矢印Vpjは平行投影の方向を示している。点P3Dは,この平行投影によって点Pp2に投影されるべきものとする。
点P3DのX,Y座標のみを用いて投影した結果は点Pp1であるから,誤差Vcは,点Pp1から点Pp2に向かうベクトルとなり,図中のベクトルVcに等しくなる。
【0083】
補正ベクトルVcは,回転および平行移動を組み合わせたアフィン変換行列によって求めることができる。
点P3Dの高さを保持したまま,−X方向に平行移動するベクトルVc0に相当する変換行列を求める。投影角度Apを用いれば,ベクトルVc0の大きさは,点P3Dの高さzとtan(Ap)の積で表されるから,ベクトルVc0(Vc0x,Vc0y,Vc0z)は,次の通り表される。
Vc0x=−z×tan(Ap);
Vc0y=0;
Vc0z=0;
【0084】
補正ベクトルVcは,ベクトルVc0をz軸回りに投影方位(−Ay)だけ回転すればよい。従って,補正ベクトルVc(Vcx,Vcy,Vcz)は,次の通り表される。
Vcx=−z×tan(Ap)×cos(Ay);
Vcy= z×tan(Ap)×sin(Ay);
Vcz=0;
従って,P3Dを鉛直に投影した点Pp1に対して,上述の補正ベクトルVcを適用すれば点Pp2を求めることができる。補正ベクトルVcは,実質的には(Vcx,Vcy)の2次元ベクトルであるから,平行投影の投影面内で補正が可能である。
【0085】
上述の補正ベクトルVcは,y軸を北,x軸を東,z軸を高さ方向に定義し,北を0度として東,南,西,北の向きの角度で投影方位を表すものとした場合の値である。x,y,zおよび投影方位の定義に応じて,それぞれ適した変換式を用いる必要がある。
【0086】
図20は,座標変換処理のフローチャートである。図17のステップS230に相当する処理であり,携帯電話300のマップマッチング変換部307(図3参照)が実行する処理である。
処理を開始すると,携帯電話300は,平行投影パラメータAp(投影角度),Ay(投影方位)を入力する(ステップS301)。そして,平行投影パラメータに基づいて座標変換行列を生成する(ステップS302)。行列の内容は,図19で説明した通りである。
【0087】
次に,携帯電話300は,現在位置および表示範囲内のネットワークデータを入力し(ステップS303),現在位置の座標変換を施す(ステップS304)。また,ネットワークデータの座標変換を全ネットワークについて実行する(ステップS305,S306)。ネットワークの座標変換を現在位置の座標変換に先だって行ってもよいし,両者を並行して行ってもよい。
こうして現在位置およびネットワークデータの座標変換を終えると,携帯電話300は座標変換処理を終了する。この変換結果を用いて,地図表示が行われる(図16のステップS310参照)。
【0088】
図21は,経路案内例を示す説明図である。図21(a)から図21(c)まで順に経路を進行するにつれて案内表示が変化する様子を示した。
図21(a)では,実践の経路上に丸で囲って現在位置が示されている。道路および建物は,平行投影された地物データを用いて描画されている。先に説明した座標変換を施してあるため,経路および現在位置は,ともに適切な道路上に描画される。
図21(a)から,この経路をしばらく進むと,右折することが分かる。
【0089】
図21(b)は右折した状態の表示である。図21(a)とは異なる投影方位の地物データを用いて地図が描画されている。
図17で説明した通り,地図は進行方向に応じて切り替わる。この例では,右折途中で進行方向が右側に一定以上変化した時に,図21(a)の方位から,図21(b)の方位に地図が切り替えられることになる。このように進行方向に応じた方位の地物データを用いて地図を表示することにより,地物による死角を回避して経路を案内することができる。
図21(b)から,この経路をしばらく進むと,さらに右折することが分かる。
【0090】
図21(c)は経路を右折した状態の表示である。図21(b)とは,さらに異なる投影方位の地物データを用いて地図が描画されている。この例では,右折途中で進行方向が右側に一定以上変化した時に,図21(b)の方位から図21(c)の方位に地図が切り替えられることになる。
図21の例では,右折時に地図の方位が変化する例を示したが,方位が変わるのは必ずしも右左折時だけに限らない。カーブした道を進んでいる場合には,進行方向が変化して方位が切り替わる可能性もある。 また,経路案内途中で,ユーザの指示によって地図の方位を切り替え可能としてもよい。
【0091】
以上,本発明の実施例について説明した。3次元地図表示システムは,必ずしも上述した実施例の全ての機能を備えている必要はなく,一部のみを実現するようにしてもよい。また,上述した内容に追加の機能を設けてもよい。
本発明は上述の実施例に限定されず,その趣旨を逸脱しない範囲で種々の構成を採ることができることはいうまでもない。例えば,実施例においてハードウェア的に構成されている部分は,ソフトウェア的に構成することもでき,その逆も可能である。
【産業上の利用可能性】
【0092】
本発明は,地物を3次元的に表現した3次元地図を描画するために利用可能である。
【符号の説明】
【0093】
100…データ生成装置
101…コマンド入力部
102…平行投影部
103…平行投影データ
104…3D地図データベース
105…送受信部
106…ビハインドフラグ設定部
200…サーバ
201…送受信部
202…データベース管理部
203…経路探索部
210…地図データベース
211…地物データ
212…文字データ
213…ネットワークデータ
300…携帯電話
300d…ディスプレイ
300k…キーボード
301…送受信部
302…コマンド入力部
303…GPS入力部
304…主制御部
305…地図情報記憶部
306…表示制御部
307…マップマッチング変換部

【特許請求の範囲】
【請求項1】
地物を3次元的に表現した3次元地図を描画する3次元地図描画システムであって,
鉛直方向に対して所定の投影角度だけ傾けた斜め方向からの平行投影によって地物を平面上に投影した2次元描画データとしての地物データを格納する地物データベースと,
3次元地図を描画すべき範囲の指定を入力する描画範囲入力部と,
前記地物データベースから,前記指定に対応した地物データを読み込んで描画する描画部とを備える3次元地図描画システム。
【請求項2】
請求項1記載の3次元地図描画システムであって,
前記地物データは,前記地物を高さ方向に1よりも大きい係数倍だけ拡大した仮想地物を平行投影して得られるデータである3次元地図描画システム。
【請求項3】
請求項1または2記載の3次元地図描画システムであって,
前記地物データベースは,縮尺の異なる複数階層の地物データを格納しており,
各階層の地物データは,平行投影を行う投影方位および前記投影角度が同一の平行投影によって生成されたデータであり,
前記描画部は,前記描画すべき範囲に応じた階層の地物データを用いて前記描画を行う3次元地図描画システム。
【請求項4】
請求項1〜3いずれか記載の3次元地図描画システムであって,
前記地物データベースは,同一領域に対して投影方位が異なる複数種類の地物データを格納しており,
前記描画範囲入力部は,更に,前記3次元地図を描画する方位の指定を入力し,
前記描画部は,前記方位に応じた投影方位の地物データを用いて前記描画を行う3次元地図描画システム。
【請求項5】
請求項4記載の3次元地図描画システムであって,
前記地物の名称を表すための文字を指定する文字データを格納した文字データベースを備え,
前記文字データベースは,前記投影方位が異なる複数種類の地物データと対応づけられており,
前記文字データは,前記投影方向に応じて,前記文字を前記3次元地図上に出力する否かを指定するためのフラグを有しており,
前記描画部は,前記フラグで指定された文字を前記3次元地図上に出力する3次元地図描画システム。
【請求項6】
請求項5記載の3次元地図描画システムであって,
前記文字データにおいて,前記文字を出力すべき位置は,高さ情報を含む3次元で指定されており,
前記描画部は,前記指定された位置に対して,前記地物データを生成する際の平行投影と同じ平行投影を施した位置に前記文字を出力する3次元地図描画システム。
【請求項7】
請求項1〜6いずれか記載の3次元地図描画システムであって,
前記地物データベースは,所定の2次元領域からなるメッシュに区切って前記地物データを格納しており,
各メッシュには,当該メッシュ上に存在しない地物に対する地物データを格納することが許容されている3次元地図描画システム。
【請求項8】
請求項1〜7いずれか記載の3次元地図描画システムであって,
前記地物データに含まれる道路のデータは,該道路上の各地点の高さを考慮して平行投影されており,
前記3次元地図上に経路案内情報として描画すべき経路位置および現在位置の少なくとも一方を,高さを含む3次元で指定された情報で入力する経路案内情報入力部を備え,
前記描画部は,前記指定された情報に対して,前記地物データを生成する際の平行投影と同じ平行投影を施して前記経路を描画する3次元地図描画システム。
【請求項9】
3次元地図描画システムによって地物を3次元的に表現した3次元地図を描画するために用いる地物データをコンピュータによって生成するための地物データ生成方法であって,
前記3次元地図描画システムは,
鉛直方向に対して所定の投影角度だけ傾けた斜め方向からの平行投影によって地物を平面上に投影した2次元描画データとしての地物データを格納する地物データベースと,
3次元地図を描画すべき範囲の指定を入力する描画範囲入力部と,
前記地物データベースから,前記指定に対応した地物データを読み込んで描画する描画部とを備えるシステムであり,
前記地物データ生成方法は,
前記コンピュータが,前記地物データを生成する対象となる対象領域の指定を入力するステップと,
前記コンピュータが,前記地物の3次元形状を表す3次元モデルを予め格納した3次元地図データベースから,前記対象領域および隣接する所定範囲の領域内に存在する3次元モデルを,メモリ内に入力するステップと,
前記コンピュータが,前記メモリ内の3次元モデルに対して,鉛直方向に対して所定の投影角度だけ傾けた斜め方向からの平行投影によって地物を平面上に投影した2次元描画データを生成し,メモリ内に格納するステップと,
前記コンピュータが,前記メモリ内に格納された2次元描画データから,前記対象領域として指定された領域内のデータを抽出して,前記地物データを生成し,出力するステップとを備える地物データ生成方法。
【請求項10】
外部からの指示を入力するための入力部と,所定のデータベースにアクセスするためのデータアクセス部と,画像を出力する描画部とを備えるコンピュータによって地物を3次元的に表現した3次元地図を描画する3次元地図描画方法であって,
前記入力部が,前記3次元地図を描画すべき範囲の指定を入力するステップと,
前記アクセス部が,鉛直方向に対して所定の投影角度だけ傾けた斜め方向からの平行投影によって地物を平面上に投影した2次元描画データとしての地物データを格納する地物データベースにアクセスして,前記指定に対応した地物データを読み込むステップと,
前記描画部が,前記読み込まれた地物データに基づいて描画を行うステップとを備える
3次元地図描画方法。
【請求項11】
外部からの指示を入力するための入力部と,所定のデータベースにアクセスするためのデータアクセス部と,画像を出力する描画部とを備えるコンピュータによって地物を3次元的に表現した3次元地図を描画するためのコンピュータプログラムであって,
前記入力部が,前記3次元地図を描画すべき範囲の指定を入力するためのプログラムコードと,
前記アクセス部が,鉛直方向に対して所定の投影角度だけ傾けた斜め方向からの平行投影によって地物を平面上に投影した2次元描画データとしての地物データを格納する地物データベースにアクセスして,前記指定に対応した地物データを読み込むプログラムコードと,
前記描画部が,前記読み込まれた地物データに基づいて描画を行うプログラムコードとを備える
コンピュータプログラム。

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate

【図12】
image rotate

【図13】
image rotate

【図14】
image rotate

【図16】
image rotate

【図17】
image rotate

【図18】
image rotate

【図19】
image rotate

【図20】
image rotate

【図1】
image rotate

【図2】
image rotate

【図6】
image rotate

【図7】
image rotate

【図15】
image rotate

【図21】
image rotate


【公開番号】特開2011−186960(P2011−186960A)
【公開日】平成23年9月22日(2011.9.22)
【国際特許分類】
【出願番号】特願2010−53885(P2010−53885)
【出願日】平成22年3月11日(2010.3.11)
【出願人】(502002186)株式会社ジオ技術研究所 (23)
【Fターム(参考)】