【実施例1】
【0014】
A.システム構成:
図1は、3次元地図表示システムの構成を示す説明図である。本実施例の3次元地図表示システムは、経路探索を行い、3次元地図を表示しながら経路案内をするシステムである。3次元地図表示システムは、経路探索、経路案内機能を伴わず、単にユーザからの指示等に従って3次元地図を表示するシステムとして構成してもよい。
実施例の3次元地図表示システムは、サーバ200と端末300とをネットワークNE2で接続して構成されている。端末300としては、スマートフォンを用いるものとしたが、携帯電話、携帯側情報端末、パーソナルコンピュータなど、地図を表示可能な種々の装置を利用可能である。
【0015】
サーバ200および端末300には、図示する種々の機能ブロックが用意されている。これらの機能ブロックは、本実施例では、それぞれの機能を実現するコンピュータプログラムを、サーバ200および端末300にインストールすることによってソフトウェア的に構成したが、その一部または全部をハードウェア的に構成してもよい。
本実施例では、サーバ200と端末300とからなる構成を採用したが、3次元地図表示システムは、スタンドアロンの装置として構成してもよいし、さらに多くのサーバ等からなる分散システムとして構成してもよい。
【0016】
(1)サーバ200について
地図データベース210には、3次元地図データベース211およびネットワークデータ213が格納されている。3次元地図データベース211には、地物の3次元形状を表すポリゴンデータ、ラインデータおよび文字データが格納されている。ネットワークデータ213は、道路をリンクおよびノードで表した経路探索用のデータである。
3次元地図データベース211の内容について説明する。本実施例では、地物を線状オブジェクトと、その他の一般地物とに分けて取り扱う。線状オブジェクトとは、道路のように線状の地物の総称であり、ラインデータ、即ち折れ線データで形状を表すことができるオブジェクトを言う。線状オブジェクトには、例えば、道路、線路、経路案内表示、河川などが含まれる。線状オブジェクト以外の一般地物には、建物等が含まれる。3次元地図データベース211においては、建物等の一般地物に対しては、3次元形状を表すポリゴンデータが用意されている。線状オブジェクトに対しては、ラインデータが用意されている。ただし、後述する通り、線状オブジェクトについてポリゴンデータを併せて用意するものとしてもよい。
データベース管理部202は、地図データベース210のデータの入出力を管理する。
経路探索部203は、ネットワークデータ213を利用して、端末300のユーザから指定された出発地から目的地までの経路を探索する。経路探索は、ダイクストラ法など周知の方法によって行うことができる。
送受信部201は、ネットワークNE2を介して、端末300との間で、種々のデータやコマンドの送受信を行う。
【0017】
(2)端末300について
主制御部304は、端末300に備えられた各機能ブロックの動作を統合制御する。
送受信部301は、ネットワークNE2を介してサーバ200との間で、データやコマンドの送受信を行う。
コマンド入力部302は、ユーザからの経路案内等に関する指示などを入力する。指示としては、例えば、経路案内の出発地、目的地の指定、地図表示時の表示スケールの指定などが挙げられる。
位置・通行情報取得部303は、GPS(Global Positioning System)等のセンサから端末300の現在位置を取得したり、ネットワークNE2経由で、交通渋滞や通行規制の情報を取得する。
地図情報記憶部305は、地図を表示する際に、サーバ200から取得した3次元地図データベース211を一時的に記憶する。本実施例では、端末300は、予め全ての地図データを記憶しておくのではなく、地図の表示範囲に応じて必要となる地図データを適宜、サーバ200から取得する。地図情報記憶部305は、こうして取得された地図データを記憶している。また、併せて、経路探索の結果も記憶する。
表示制御部306は、地図情報記憶部305に記憶されている地図データを用いて、端末300のディスプレイ300dへの地図表示を行う。
ライン描画データ設定部307は、線状オブジェクトを描画するために必要なデータを用意する機能を奏する。本実施例では、後述する通り、線状オブジェクトの一部については、ラインデータとポリゴンデータとを併用して描画を行う。双方のデータが地図情報記憶部305に格納されている場合には、双方を描画対象とする処理を行う必要がある。また、ポリゴンデータが存在しない場合には、ラインデータからポリゴンデータを生成する必要がある。ライン描画データ設定部307は、これらの処理を実行するのである。
線状オブジェクトのうち、ラインデータとポリゴンデータとを併用するものを、本実施例では、重畳描画オブジェクトと称する。線状オブジェクトの全てを重畳描画オブジェクトとしてもよいし、その一部を重畳描画オブジェクトと扱っても良い。例えば、線状オブジェクトのうち、特定の種別のものを重畳描画オブジェクトとしてもよいし、フラグを設定することにより、重畳描画オブジェクトとするか否かを個別に指定可能としてもよい。
【0018】
B.地図データベース:
図2は、3次元地図データベースの構造を示す説明図である。3次元地図データベース210は、表示スケールが異なる複数のレベルにより階層的に用意されている。上位層のレベルは、広範囲を表す詳細度の低い地図データであり、下位層のレベルは、やや狭い範囲を詳細に表す地図データである。レベルは、上位層、下位層の2階層だけでなく、さらに多数の階層を用意してもよい。
【0019】
下位層では、図示するように建物等の地物の3次元形状を表すポリゴンデータが格納されている。また、道路についてもポリゴンデータで用意されている。図中に、道路を例にとってポリゴンデータの内容を示した。ポリゴンデータには、固有の識別情報ID、ポリゴンの形状を表す頂点PP1、PP2等の3次元座標、および属性が格納されている。属性には、例えば、道路名称、道路種別、道路幅または車線数などの情報が含まれる。建物等の地物についても、同様の形式でポリゴンデータが用意されている。
【0020】
上位層では、広範囲を表示するため、道路についてはポリゴンではなくラインデータで用意されている。図中にラインデータの内容を示した。ラインデータには、固有の識別情報ID、ラインの形状を表す頂点PL1、PL2の3次元座標、および属性が格納されている。属性の内容は、下位層と同様である。
本実施例では、ポリゴンデータとラインデータの識別情報IDを関連づけることにより、同一の道路に対するデータを特定できるようにした。ポリゴンデータとラインデータの双方に同じ識別情報IDを用いるようにしてもよいし、両者を関連づけるデータを別途用意しても良い。
線状オブジェクトの中には、
図2に示した道路のように、異なるレベルではあっても、ポリゴンデータとラインデータとが、それぞれ用意されているものが存在する。全ての線状オブジェクトについてポリゴンデータとラインデータの双方が用意されている訳ではなく、ラインデータのみが備えられているものもある。例えば、経路案内時に表れる経路案内表示、即ち経路を示す線や矢印は、ラインデータのみが用意されている。
もっとも、本実施例におけるデータ構造は一例であり、異なるレベルにあるポリゴンデータとラインデータとを関連づけない構成としても構わない。
【0021】
C.経路案内処理:
図3は、経路案内処理のフローチャートである。経路案内処理は、ユーザによって指定された出発地から目的地に向かうまでの経路を探索し、その案内を行う処理である。これは、主としてサーバ200の経路探索部203、端末300の表示制御部306などが協働して行う処理であり、ハードウェア的にはサーバ200および端末300のCPUによって行われる処理である。
処理を開始すると、端末300は、ユーザから出発地、目的地の指定を入力する(ステップS10)。現在位置を出発地として用いても良い。
サーバ200は、端末300から出発地、目的地の情報を受け、ネットワークデータ213を参照して、経路探索を行う(ステップS11)。経路探索は、ダイクストラ法などの周知の方法をとることができる。
そして、経路探索結果に基づき、経路案内データを作成する(ステップS12)。経路案内データとは、経路案内用の線または矢印を描画するためのデータである。経路案内データは、ネットワークデータ213を用いて描画用のラインデータとすることもできるし、探索された経路に対応する道路のラインデータを用いてもよい。本実施例では、いずれの場合であっても、経路案内データは、ラインデータの形で用意するものとした。経路案内データは、経路探索の結果として、端末300に送信される。
【0022】
端末300は、次にユーザの現在位置に応じて、3次元地図を表示しながら経路を案内する処理を行う。
まず、端末300は、ユーザの現在位置を検出する(ステップS13)。現在位置は、GPSなどのセンサを利用して検出することができる。
そして、端末300は、地図表示処理によって3次元地図を表示する(ステップS14)。処理の内容は、後で詳述する。
以上の処理を、端末300は、目的地に到着するまで繰り返し実行する(ステップS15)。
【0023】
図4は、地図表示処理のフローチャートである。経路案内処理(
図3)のステップS14に相当する処理であり、端末300の表示制御部306が主として実行する処理である。
処理を開始すると、端末300は、視点、視線方向、表示スケールを入力する(ステップS20)。視点は、現在位置に基づいて定めるものとしてもよい。視線方向は、現在位置および進行すべき経路に基づいて定めるものとしてもよい。
そして、3次元地図として表示すべき範囲の地図データおよび経路案内データを読み込む(ステップS21)。3次元地図を表示するために、本実施例では、端末300は、まず地図情報記憶部305に格納されているデータを読み込む、そして地図を表示するために地図データが不足している場合には、不足分をサーバ200から取得する。
地図データを読み込むと、端末300は、重畳描画オブジェクトを抽出する(ステップS22)。先に説明した通り、重畳描画オブジェクトとは、線状オブジェクトのうち、ポリゴンデータおよびラインデータを併用して描画するものを言う。
【0024】
そして、端末300は、重畳描画オブジェクトについては、以下に示す通り、ポリゴンデータとラインデータとを併用するためのデータの用意をする。
まず、端末300は、他レベルの地図データから、重畳描画オブジェクトのポリゴンデータまたはラインデータを読み込む(ステップS23)。
図2で説明した通り、道路など、線状オブジェクトの種類によっては、上位層においてラインデータが格納され、下位層においてポリゴンデータが格納されていることがある。そこで、端末300は、重畳描画オブジェクトについて、このように異なる階層に用意されているデータを検索し、これらが存在する場合には、読み込んで、ポリゴンデータ、ラインデータの双方を描画用のデータとして準備するのである。本実施例では、線状オブジェクトについては、必ずラインデータが格納されているが、ポリゴンデータは、他の階層を検索しても存在しない場合がある。このような線状オブジェクトについては、ステップS23では、ポリゴンデータは用意できないことになる。
【0025】
次に、端末300は、重畳描画オブジェクトのうち、ポリゴンデータが存在しないものについて、ポリゴンを生成する(ステップS24)。
図中に処理の様子を例示した。ポリゴンの生成は、ラインデータに対して幅を持たせ、矩形状のポリゴンを生成することによって行う。こうして頂点ごとに拡幅して矩形状のポリゴンを生成すると、ラインが折れ線の場合、頂点においてポリゴン同士の重複やすき間が生じることがあるので、こうした箇所については、適宜、重複したポリゴンの削除や、すき間を埋めるためのポリゴンの生成などを行う。
以上の処理によって、重畳描画オブジェクトについて、ポリゴンデータおよびラインデータの双方が準備される。
【0026】
本実施例では、地図データベースからの読み込み(ステップS23)、およびポリゴンデータの生成(ステップS24)の2通りの方法を併用しているが、いずれか一方のみを用いるものとしてもよい。例えば、線状オブジェクトについては、地図データベースにおいてポリゴンデータではなくラインデータのみを用意するものとし、ステップS23を省略した上で、ラインデータからポリゴンデータを生成する方法(ステップS24)を行うものとしてもよい。
【0027】
以上の処理を終えると、端末300は、指定された視点、視線方向から透視投影によって3次元地図を描画する(ステップS25)。この際、重畳描画オブジェクトについては、ラインとポリゴンとを全領域において重ねて描画する。
【0028】
図5は、ポリゴンとラインとを併用した経路案内表示の例を示す説明図である。道路上に、経路案内用の線がポリゴンPPとラインLLとを重ねて描かれており、本実施例における出力例に相当する。本実施例の表示による効果を把握しやすいよう、道路など、経路案内表示以外の線状オブジェクトについては通常通りポリゴンのみを用いて描画してある。
視点に比較的近い領域Aでは、ポリゴンPPの幅がラインLLの線幅を上回っているため、ポリゴンPPが主として視認される。ポリゴンPPは、視点から遠方に行くほど幅が細くなるため、領域Aでは、経路案内表示として、遠近感を付与した表示を実現することができる。
視点から遠方の領域Bでは、ポリゴンPPの幅が非常に細くなるため、ラインLLが主として視認される。従って、視点から遠方においても、経路案内表示を容易に視認可能な態様で表示することができる。
【0029】
本実施例の出力例に対する比較対象として、ラインのみによる表示例およびポリゴンのみによる表示例を示す。
図6は、ラインによる経路案内表示の例を示す説明図である。視点に近い領域A、遠方の領域Bのいずれにおいても、経路案内表示は、ラインLLによって一定の線幅で表示される。かかる表示の場合、遠方の領域Bにおいても、経路案内表示をはっきりと視認できる利点があるが、手前の領域Aでは、遠近感に欠ける表示となり、リアリティを向上させ直感的に地理や経路等を把握できるという3次元地図としての利点を損ねる表示となっている。
図7は、ポリゴンによる経路案内表示の例を示す説明図である。視点に近い領域A、遠方の領域Bのいずれにおいても、経路案内表示は、ポリゴンPPによって表示される。かかる表示の場合、手前の領域Aでは、遠近感が付与され、リアリティのある表示を実現できる利点がある。しかし、遠方の領域Bにおいては、ポリゴンPPは、非常に細く描かれるため、ほとんど視認することができなくなってしまう。
【0030】
以上で説明した通り、実施例1の3次元地図表示システムによれば、線状オブジェクトについてポリゴンとラインとを併用することにより、視点に近い領域では、遠近感を付与しつつ、視点から遠方の領域でもはっきりと視認可能な表示を実現することができる。
また、実施例1では、ポリゴンによる描画と、ラインによる描画とを切り換えて使用するのではなく、全領域にわたって両者を併用するため、線状オブジェクトごとに、ポリゴンとラインとの切り換え地点を計算するなどの負荷をかけることなく、両者を重畳した描画を実現できる利点がある。
【実施例2】
【0031】
次に実施例2としての3次元地図表示システムについて説明する。実施例2は、重畳描画オブジェクトに対し、ポリゴンとラインとを切り換えて描画を行うものである。この意味で、実施例2では、重畳描画オブジェクトに対し、切換オブジェクトと呼ぶものとする。
システム構成(
図1参照)、データ構造(
図2参照)、経路案内処理(
図3参照)などは実施例1と同様であるため、以下では、地図表示処理に絞って説明を行う。
【0032】
図8は、第2実施例における道路表示の例を示す説明図である。
図8(a)に示すように、実施例2では、視点位置から所定の距離Dまでの範囲をポリゴン表示領域とし、それよりも遠方をライン表示領域と設定する。ポリゴン表示領域内では、ポリゴンデータを用いて切換オブジェクトを描画する。ライン表示領域内では、ラインデータに切り換えて切換オブジェクトを描画する。
図8(b)に、切換オブジェクトの描画例を示した。視点位置に近いポリゴン表示領域では、ポリゴンPによって描画される。その遠方のライン表示領域では、ラインLによって、一定の線幅で描画される。
ポリゴン表示領域とライン表示領域の境界の距離D(以下、「切換距離D」と呼ぶ)は、任意に設定可能であり、例えば、ポリゴンの幅とラインの幅とが同程度となる距離とすることができる。もっとも、かかる距離は、ポリゴンの幅およびラインの幅に依存するため、厳密には線状オブジェクトごとに相違する。従って第2実施例の態様では、線状オブジェクトごとに、ポリゴンの幅とラインの幅とが同程度となる距離を算出し、ポリゴンによる描画とラインによる描画とを切り換えるようにしてもよい。また、表示範囲内で重要度の高い線状オブジェクトで代表して、切換距離Dを決め、これを全ての切換オブジェクトに適用してもよい。さらに、予め切換距離Dを設定しておき、これを全ての切換オブジェクトに適用するようにしてもよい。
【0033】
図9は、第2実施例における地図表示処理のフローチャートである。
端末300は、視点、視線方向、表示スケールを入力し(ステップS30)、地図データ、経路案内データを読み込む(ステップS31)。これらの処理は、実施例1(
図4参照)と同様である。
次に、端末300は、切換オブジェクトを抽出し(ステップS32)、切換オブジェクトについて、ラインとポリゴンとの切換点を算出する(ステップS33)。図中に示したように、視点位置から切換距離Dの点が切換点となる。切換点よりも視点位置に近い側の部分L1はポリゴンで描かれ、遠方の部分L2はラインで描かれることになる。
【0034】
次に、端末300は、ポリゴン表示領域での描画用のポリゴンデータを生成する(ステップS34)。切換オブジェクトについてラインデータを読み込み、実施例1と同様(
図4のステップS24参照)、切換点よりも視点位置に近い側の部分L1のラインデータに幅を与えることでポリゴンを生成してもよい。また、他のレベルにおいてポリゴンデータが用意されている場合には、部分L1に相当する箇所のポリゴンデータを読み込んで利用してもよい。もっとも、他のレベルのポリゴンデータを利用する場合でも、部分L1に相当する箇所のみを切り出す処理は必要となる。
【0035】
端末300は、以上で設定された地図データを用いて視点位置、視線方向に基づく透視投影により地図の描画処理を行う(ステップS35)。この際、ポリゴン表示領域では、切換オブジェクトのポリゴンデータを使用して描画をし、ライン表示領域では、切換オブジェクトのラインデータを使用して描画を行う。
【0036】
以上で説明した実施例2の3次元地図表示システムによっても、切換オブジェクトについて、視点に近い領域ではポリゴンによる描画、遠方の領域ではラインによる描画というように、両者を併用して描画できるため、実施例1と同様、それぞれの利点を活かした3次元地図表示を実現することができる。
また、実施例2では、切換点を算出する負荷が増えるものの、実施例1のように視点から遠方において視認できなくなったポリゴンを描画するなど、無駄な描画を行う必要がなくなる利点がある。
【0037】
以上、本発明の実施例について説明した。
以上の実施例1、2で説明した種々の特徴点は、必ずしも全てを備えている必要はなく、適宜、一部を省略したり組み合わせたりして適用してもよい。
また、本発明は、上述した実施例の他、種々の変形例をとることができる。例えば、実施例においてソフトウェアで処理している部分はハードウェアに置き換えることもでき、その逆も可能である。