説明

指向性ポリゴンの3次元表示データ生成方法

【課題】 道路、河川など方向性を有する指向性ポリゴンを分割し、自然な3次元表示を実現可能な三角形ポリゴンデータを提供する。
【解決手段】 指向性ポリゴンデータは、始点、終点からなる2列の点列A1〜A6、B1〜B5によって表される。各点列は、位置座標の他、標高データが与えられている。ポリゴンデータ生成装置は、この点列をその全長で正規化し、0〜1の正規化空間で一次元的に配置する。そして、この正規化空間で長さが最小となる分割線を優先し、分割線B1−A2、B1−A3のように、三角形ポリゴンを生成する。かかる分割方法により、いびつな形状やバンク角が大きい三角形ポリゴンの発生を抑制することができ、自然な3次元表示を実現することができる。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、地表面に沿った方向性を有する地物を表す指向性ポリゴンを3次元表示するための三角形ポリゴンデータの生成方法に関する。
【背景技術】
【0002】
電子地図データを利用して地表面および地物の3次元表示が実現されている。地物には、人工の建造物、および湖沼などの自然に存在する物が含まれる。これらの地物には、人工であるか自然であるかを問わず、道路、河川、鉄道など地表面に沿った一定の方向性を有するものが存在する。地物のデータは位置および標高を有する点列からなるポリゴンとして与えられる。これらの点列は、必ずしも同一平面上に存在するとは限らないため、地物の3次元表示には、地物のポリゴンを三角形に分割した三角形ポリゴンが利用される。
【0003】
図10は従来技術における三角形ポリゴンの生成方法を示す説明図である。分割対象となるポリゴンPOLは、点列A1〜A6、B5〜B1で定義されている。ポリゴンPOLは、ポリゴンPOL1、POL2と隣接しており、構成点A1、B1を始点、構成点A6、B5を終点とする2本の点列からなる方向性を有するポリゴンとして認識される。
【0004】
ポリゴンPOLの分割に際しては、予め各構成点についての処理順序を規定しておく。この例では、構成点B2,B3,B4の順に処理を進めるものとした。まず、構成点B2から、対向する点列A1〜A6に対して順次、分割線を定義する。この例では、図中に実線で示す通り、構成点B2と構成点A1〜A5をそれぞれ結ぶ5本の分割線が求められる。
【0005】
構成点B2からの分割が完了すると、次に、構成点B3を用いた分割に移行する。この処理では、例えば、構成点B3−A1を結ぶ線(図中の破線)のように、ポリゴンPOLの外部を通過したり、分割済みの三角形ポリゴンを横切る分割線は採用されない。従って、構成点B3からは構成点B5、B6を結ぶ一点鎖線の分割線が求められる。同様にして、構成点B4と構成点A6を引く二点鎖線の分割線を設定することで、ポリゴンPOLの三角形ポリゴンへの分割が完了する。
【0006】
【特許文献1】特許第3376868号公報
【発明の開示】
【発明が解決しようとする課題】
【0007】
従来技術における分割方法では、図10におけるポリゴンPhp1、即ち構成点B2,A4、A5を結ぶ三角形ポリゴンのように、非常にいびつな形状の三角形が生じ得た。このように生成された三角形ポリゴンを用いて三次元表示を行うと、ポリゴンPOLが不自然に歪んで見えることがあった。特に、ポリゴンPOLがポリゴンPOL1からPOL2側に昇り勾配を有する道路のように、各構成点に有意な標高差が存在する場合、道路が左右にねじれているかのような表示がなされることがあった。本発明は、こうした課題を解決し、地表面に沿った方向性を有するポリゴンについて、自然な3次元表示を可能とする三角形ポリゴンを生成可能とすることを目的とする。
【課題を解決するための手段】
【0008】
本発明のポリゴンデータ生成装置は、地表面に沿った方向性を有する地物を表す指向性ポリゴンから、地物を3次元表示するための3角形ポリゴンデータを生成する。方向性を有する地物としては、例えば、道路、河川、鉄道および鉄道の駅構内などが挙げられる。これらのポリゴンは、通常、地物を表す他のポリゴンと隣接しているのが通常であるため、このように地物を表す他のポリゴンと隣接しているポリゴンを指向性ポリゴンと定義することもできる。
【0009】
ポリゴンデータ生成装置は、上述した指向性ポリゴンを形成する複数の構成点について、位置データおよび標高データを入力する。この入力は、始点および終点が規定された2列の点列の形式で行う。この入力には、このような2列の点列で予め定義された指向性ポリゴンのデータを読み込む方法、ポリゴンの外周を定義する一連の点列データを入力後に、2列の点列を定義する方法などを採ることができる。後者の態様としては、例えば、指向性ポリゴンが他のポリゴンと接触している複数の構成点を、始点または終点と定義することで、一連の点列データを2列の点列に分ける方法を採ることができる。
【0010】
ポリゴンデータ生成装置は、こうして入力された指向性ポリゴンを、以下の手順で3角形ポリゴンに分割する。まず、2列の点列上の各構成点の位置を、それぞれ始点、終点間の距離を基準として正規化する。正規化された座標空間では、2列の点列は同等の長さを有する2本の平行線上に配置されることになる。2列の点列の間隔は、任意に設定して構わない。そして、2列の点列間を分割する複数の分割線のうち、正規化された位置に基づいて求められる正規化距離が短いものを優先して三角形ポリゴンへの分割を行う。かかる分割を「ハシゴ分割」と称するものとする。本発明によれば、このハシゴ分割を採用することにより、指向性ポリゴンの分割時に、従来技術のようないびつな形状の三角形ポリゴンが生じることを抑制でき、自然な3次元表示を実現することが可能となる。
【0011】
本発明においては、正規化されたそれぞれの位置で、2列の点列の標高差を低減するよう標高データを補正してもよい。正規化された位置座標(以下、「正規化位置」と称する)がほぼ等しい2点間の標高差を低減することにより、交差方向、即ち指向性ポリゴンの始点から終点に向かう方向に直交する向き、における三角形ポリゴンの傾きを抑制することができる。従って、より自然な3次元表示を実現することができる。2本の点列上の各構成点の正規化位置は厳密に一致していないことが多い。かかる場合には、正規化位置が近接した2点を用いる方法、点列の補間によって正規化位置が一致する仮想的な構成点における標高を用いる方法などを採ることができる。2点間の標高差は厳密に0とする必要はなく、3次元表示時に不自然なねじれを抑制できる範囲で予め設定された許容誤差に収めればよい。標高差の補正は、正規化の後、三角形への分割に先だって行ってもよいし、分割の後処理として行っても良い。また、後述するバンク角のチェック後に行っても良い。
【0012】
このように標高を補正する場合、2列の点列の標高のうち、低い側を基準として補正を行う切り落とし処理と、高い側を基準として補正を行う盛り上げ処理のいずれを用いてもよい。また、2点の点列の標高の平均値を用いて補正を行ってもよい。例えば、斜面に沿って走る道路では、現実の道路の建設方法を考えると、切り落とし処理または盛り上げ処理のいずれかを選択的に実行することができる。
【0013】
切り落とし処理、及び盛り上げを選択的に実行する場合、両者の選択は、オペレータが手動で指示するようにしても構わないが、次の手順で自動的に判別してもよい。判断には指向性ポリゴンに対応する地物の航空写真データを用いる。そして、この航空写真データにおける影と地物の位置関係に基づいて、切り落とし処理および盛り上げ処理のいずれを適用するかを判断する。例えば、地物内に影がかかっている場合には、切り落とし処理を適用し、その他の場合には盛り上げ処理を適用するという判断方法を採ることができる。
【0014】
本発明では、分割された3角形ポリゴンについて、始点から終点に向かう方向を軸とする傾きであるバンク角が所定範囲内にあるか否かをチェックするようにしてもよい。このチェックにより、不自然な表示をより確実に抑制することができる。
【0015】
以上で説明したハシゴ分割は、1回の試行で完了させてもよいが、分割された3角形ポリゴンが、予め設定された許容条件を満足しない場合には、指向性ポリゴンを形成する点列上に少なくとも一つの構成点を追加して、再分割をするようにしてもよい。許容条件としては、例えば、上述のバンク角が所定範囲内に収まるという条件や、いびつな形状の三角形ポリゴンが生じていないという条件を用いることができる。後者の条件は、例えば、三角形ポリゴンの分割線長さが所定範囲内に収まるという条件、三角形ポリゴンの内角がそれぞれ所定値範囲内に収まるという条件などで評価することができる。
【0016】
本発明は、上述した特徴を全て備えている必要はなく、一部を省略したり適宜、組み合わせたりしてもよい。本発明は、ポリゴンデータ生成装置としての態様の他、コンピュータによってポリゴンデータを生成するポリゴンデータ生成方法として構成してもよい。また、かかる処理をコンピュータに実現させるためのコンピュータプログラム、このコンピュータプログラムを記録したコンピュータ読み取り可能な記録媒体として構成してもよい。ポリゴンデータ生成装置として構成する場合、スタンドアロンで稼働する装置としてもよいし、端末とサーバとをネットワークで接続して構成してもよい。記録媒体としては、フレキシブルディスク、CD−ROM、光磁気ディスク、ICカード、ROMカートリッジ、パンチカード、バーコードなどの符号が印刷された印刷物、コンピュータの内部記憶装置(RAMやROMなどのメモリ)および外部記憶装置等、コンピュータが読取り可能な種々の媒体を利用できる。
【発明を実施するための最良の形態】
【0017】
本発明の実施例について以下の順序で説明する。
A.システム構成:
B.指向性ポリゴンデータ:
C.ポリゴンデータ生成処理:
C1.ハシゴ分割処理:
C2.バンク評価処理:
C3.標高補正処理:
C4.構成点追加処理:
D.変形例:
【0018】
A.システム構成:
図1は実施例としてのポリゴンデータ生成システムの全体構成を示す説明図である。実施例のシステムは、ポリゴンデータ生成装置として機能する端末100と、種々のデータベースを提供するための各種サーバをネットワークNETで接続することで構成される。ネットワークNETは、LANやイントラネットのように限定的なものであってもよいし、インターネットのように広域的なものであってもよい。
【0019】
サーバによって提供されるデータベースとしては、指向性ポリゴンデータ202、航空写真データ204、3次元地図DB210が挙げられる。指向性ポリゴンデータ202は、道路、河川など方向性を有する地物のポリゴンデータである。航空写真データ204は、これらの地物の航空写真を表す画像データである。3次元地図DB210は、地図の3次元表示を行うためのデータベースであり、地表面ポリゴンデータ212、地物ポリゴンデータ214を含む。地表面ポリゴンデータ212は、地表面を3次元表示するための三角形ポリゴンデータである。地物ポリゴンデータ214は、道路、建物その他の地物を3次元表示するためのデータである。本実施例では、地表面ポリゴンデータ、および建物のデータは、予め用意されているものとして説明する。地物ポリゴンデータ214のうち、方向性を有する地物については、指向性ポリゴンデータ202から、端末100が生成する。
【0020】
図中に端末100の機能ブロックを併せて示した。本実施例では、これらの機能ブロックは、端末100にインストールされた所定のコンピュータプログラムをCPUが実行することにより、ソフトウェア的に構成される。機能ブロックの少なくとも一部を、ハードウェア的に実現しても構わない。
【0021】
コマンド入力部102は、端末100のキーボード、マウスなどに対するユーザの操作に基づいてコマンドを入力する。データ入出力部104は、ネットワークNETを介して、各種データベースとデータの授受を行う。入力するデータとしては、指向性ポリゴンデータ202、および航空写真データ204が挙げられる。後述する通り、指向性ポリゴンデータ202は、始点、終点からなる2列の点列データとして定義される。データ入出力部104は、指向性ポリゴンデータ202を、かかる点列データの形式に変換する機能も奏する。地図表示部106は、3次元地図DB210に基づき、端末100上に、地図を3次元表示する。
【0022】
指向性ポリゴンの分割による地物ポリゴンデータ214の生成は、分割制御部110の制御下で、ハシゴ分割部112、バンク評価部114、標高補正部116が稼働することで実現される。ハシゴ分割部112は、指向性ポリゴンデータ202の点列に基づいて分割線を定義し、この指向性ポリゴンを三角形ポリゴンに分割する。バンク評価部114は、分割された三角形ポリゴンのバンク角、即ち、指向性ポリゴンの始点から終点に向かう方向(以下、「進行方向」と呼ぶ)を軸とする回転角を求める。このバンク角は、不自然なバンクを伴わない形状に分割が行われているか否かの評価に用いられる。標高補正部116は、指向性ポリゴンの2列の点列上の各位置において、進行方向に交差する方向(以下、「交差方向」と呼ぶ)の標高差を抑制する。これは、バンク角を抑制するための処理でもある。標高補正は、後述する通り、切り落とし処理、盛り上げ処理の2通りを選択的に実行する。両者の使い分けは、標高補正部116が、航空写真データ204に基づいて判断する。
【0023】
分割制御部110は、ハシゴ分割部112、バンク評価部114、標高補正部116を以下の手順で稼働させ、指向性ポリゴンの分割を実行する。まず、ハシゴ分割部112にハシゴ分割を実行させる。次に、分割結果について、バンク評価部114によるバンク評価を実行する。そして、バンク角が大きい三角形ポリゴンが存在する場合には、標高補正部116による補正を行う。更に、分割結果について、いびつな形状の三角形ポリゴンの有無、バンク角が大きい三角形ポリゴンの有無を調査し、このような不適切な三角形ポリゴンが存在する場合には、指向性ポリゴンの外周に構成点を追加して、再分割を実行する。ハシゴ分割部112、バンク評価部114、標高補正部116の稼働順序は、この例に限らず、種々の順序を適用可能である。
【0024】
以上の処理で生成された三角形ポリゴンデータは、データ入出力部104およびネットワークNETを介して、地物ポリゴンデータ214に格納される。このシステム構成は、一例に過ぎず、端末100には、更に、建造物の地物ポリゴンデータ214を生成するための機能ブロック、地表面ポリゴンデータ212を生成するための機能ブロックなどを用意してもよい。また、バンク評価部114、標高補正部116を省略してもよい。
【0025】
B.指向性ポリゴンデータ:
図2は指向性ポリゴンデータ202の構造を示す説明図である。図の上方に指向性ポリゴンPOLの平面図を示した。指向性ポリゴンPOLは、ポリゴンPOL1、POL2にそれぞれ隣接している。指向性ポリゴンPOLは、ポリゴンPOL1と隣接する構成点A1、B1を始点、ポリゴンPOL2と隣接する構成点A6、B5を終点とする2列の点列、A1〜A6およびB1〜B5によって定義される。始点、終点の定義により、指向性ポリゴンPOLは、図中に矢印で示す進行方向が定義される。始点、終点は任意に定義可能であり、構成点A1、B1を終点、構成点A6、B5を始点と定義してもよい。この場合、進行方向は逆向きとなる。
【0026】
指向性ポリゴンデータ202は、構成点ごとに位置および標高のデータを有している。位置データは、緯度、経度で表すものとした。図中の構成点A1については、「(緯度、経度、標高)=(Lat,Lon,H)」が与えられている。他の構成点についても同様の形式で位置、標高が与えられている。
【0027】
本実施例では、指向性ポリゴンデータ202は、上述した2列の点列という形式ではなく、ポリゴンの外周を表す一連の点列の形式で用意されているものとした。このデータ構造例を図の中央に示した。即ち、指向性ポリゴンデータ202は、始点A1〜A6、B5〜終点B1のように、ポリゴンの外周を一周する順序で点列が定義されている。
【0028】
端末100は、指向性ポリゴンデータを上述した2列の点列データ202aに変換して入力する。図示する通り、この形式では、指向性ポリゴンデータとして、始点A1〜終点A6の点列と、始点B1〜終点B5の2つの点列が区別して定義されることになる。
【0029】
この変換は、次の手順で実行する。図の中央に示す通り、まず、ポリゴンPOLが他のポリゴンPOL1,POL2と接触している構成点(以下、「境界点」と呼ぶ)を認識する。この例では、構成点A1、A6、B5、B1の4点が見いだされる。次のこの4点のうち、指向性ポリゴンデータ202における始点A1を始点として、順次、構成点を抽出して点列Ar1を定義する。この点列Ar1は、境界点A6に至った時点で完成され、境界点A6は終点となる。同様にして、指向性ポリゴンデータ202における終点B1を始点として、順次、逆方向に構成点を抽出して点列Ar2を定義する。この点列Ar2は、境界点B5に至った時点で完成され、境界点B5は終点となる。
【0030】
2列の点列への変換は、上述の方法に限らず、種々の方法を採用可能である。また、指向性ポリゴンデータ202を、予め点列の形式で与えるものとしてもよい。
【0031】
C.ポリゴンデータ生成処理:
図3はポリゴンデータ生成処理のフローチャートである。指向性ポリゴンを三角形ポリゴンに分割して、3次元表示用のデータを生成するための処理であり、ユーザのコマンドに従って端末100のCPUが実行する処理である。
【0032】
この処理が開始されると、CPUはネットワークNET経由で指向性ポリゴンデータ202を入力する(ステップS10)。このデータは、先に説明した通り、2列の点列として定義されている。
【0033】
次にCPUは、これらの点列について正規化処理を行う(ステップS12)。図中に正規化処理の方法を例示した。まず、指向性ポリゴンの外周に沿った折れ線状の2列の点列A1〜A6、およびB1〜B5を、直線状に伸ばして配置する。各構成点間の距離は、指向性ポリゴンの外周における各構成点間の距離と等しい。点列B1〜B5の全長をLb、点列A1〜A6の全長をLaとする。始点A1,B1の位置を原点とすると、点列A1〜A6の各構成点の位置は0〜Laの一次元座標で表され、点列B1〜B5の各構成点の位置は0〜Lbの一次元座標で表される。
【0034】
次に、直線状に配置された点列A1〜A6の位置座標を全長Laで除し、点列B1〜B5の位置座標を全長Lbで除する。この結果、両点列の位置座標は、0〜1の一次元座標で表される。本実施例では、両点列を区別するため、間隔dの平行線上に配置して、処理を行うものとした。この間隔dは任意に設定可能である。正規化後の位置座標を与える座標空間を、以下、正規化空間と呼び、その位置座標を正規化座標と呼ぶものとする。
【0035】
CPUは、正規化座標に基づいてハシゴ分割処理(ステップS20)、バンク評価処理(ステップS40)、標高補正処理(ステップS60)をそれぞれ実行する。ハシゴ分割処理とは、指向性ポリゴンを三角形ポリゴンに分割する処理である。バンク評価処理とは、分割された三角形ポリゴンのバンク角を求める処理である。標高補正処理とは、指向性ポリゴンの各構成点について、交差方向の標高差を低減するための処理である。それぞれの処理内容については後で詳述する。
【0036】
CPUは、こうして得られた分割結果について、許容条件を満足しているか否かを評価する(ステップS80)。本実施例では、許容条件として、i)三角形ポリゴンの分割線が間隔dのα倍(αは1.0以上の実数)以下であること、ii)三角形ポリゴンのバンク角がθ(deg)以下であることという2つの条件を用いるものとした。条件i)における判断基準値αは、任意に設定可能である。この値を1.0に近づける程、分割線は正規化空間内で、点列に直交する線となり、より自然な3次元表示が可能となる一方、後述する構成点の追加が多数必要となり、処理時間が長くなる。バンク角についての判断基準値θも同様である。小さくする程、自然な3次元表示が可能となる一方、処理時間が長時間化する。判断基準値α、θは、このように、自然な3次元表示を実現するための要求と、処理時間に対する要求の双方のバランスを考慮して設定することが望ましい。ステップS80で用いる許容条件は、上述の他、任意に設定可能である。
【0037】
分割された三角形ポリゴンが許容条件を満足しない場合(ステップS80)、CPUは、構成点の追加処理を実行する(ステップS90)。これは、後で詳述する通り、正規化空間において、指向性ポリゴンの各点列上に新たに構成点を追加する処理である。構成点を追加した後、再度、ハシゴ分割処理、バンク評価処理、標高補正処理(ステップS20〜S60)を実行する。これらの処理は、許容条件が満たされるまで繰り返される。
【0038】
CPUは、許容条件を満足する結果が得られると(ステップS80)、分割結果を出力する(ステップS110)。本実施例では、出力先は、地物ポリゴンデータ214である。
【0039】
C1.ハシゴ分割処理:
図4はハシゴ分割処理のフローチャートである。ポリゴンデータ生成処理(図3)のステップS20に相当する処理である。CPUは、まず正規化データを入力する(ステップS21)。そして、初期化処理として、分割の処理位置を制御するためのポインタ、処理位置ポインタを各点列の始点に設定する(ステップS22)。
【0040】
次に、処理ポインタよりも終点側で正規化位置が最小となる構成点を検索する(ステップS23)。この構成点は、2つの点列を含めて全体で正規化位置が最小となる点である。そして、この検索された構成点と処理ポインタで指向性ポリゴンを分割する(ステップS24)。分割後は、処理ポインタを、この分割に使用された構成点まで移動することで、位置の更新を行う(ステップS25)。以上の処理を、三角形ポリゴンへの分割が完了するまで(ステップS26)、繰り返し実行する。
【0041】
図の右側に、ハシゴ分割の例を示した。上から順に処理が進む様子を示している。塗りつぶしの三角形Ap、Bpは、それぞれA側の点列A1〜A6、およびB側の点列B1〜B5の処理位置ポインタを表している。初期状態では、双方共に始点A1、B1に設定されている。この状態で、終点方向に正規化位置が最小となる構成点を検索すると、構成点A2が見いだされる。従って、A側の点列上の構成点A2と、B側の点列上の処理ポインタBpがある構成点、即ちB1とを結ぶ分割線SL1によってポリゴンを分割する。その後、処理位置ポインタApの位置は構成点A2の位置に更新される。
【0042】
次に、中段の状態で分割処理を実行する。この状態では、正規化位置が最小となる構成点として、A側の構成点A3が見いだされる。従って、A側の点列上の構成点A3と、B側の点列上の処理ポインタBpがある構成点B1とを結ぶ分割線SL2によってポリゴンを分割する。その後、処理位置ポインタApの位置は構成点A3の位置に更新される。
【0043】
次に、下段の状態で分割処理を実行する。この状態では、正規化位置が最小となる構成点として、B側の構成点B2が見いだされる。従って、A側の点列上の処理ポインタApがある構成点A3と、B側の構成点B2とを結ぶ分割線SL3によってポリゴンを分割する。その後、処理位置ポインタBpの位置は構成点B2の位置に更新される。以下、同様にして処理位置ポインタAp、Bpが終点A6、B5に至るまで処理を実行する。
【0044】
C2.バンク評価処理:
図5はバンク評価処理のフローチャートである。ポリゴンデータ生成処理(図3)のステップS40に相当する処理である。CPUはハシゴ分割された三角形ポリゴンのデータを入力する(ステップS41)。そして、各ポリゴンのバンク角評価値を算出する(ステップS42)。
【0045】
図中にバンク角評価値の算出方法を示した。評価対象となる三角形ポリゴンを2つ例示した。一つは、頂点P0、P1、P3で構成される三角形ポリゴンであり、もう一つは、頂点P1、P2、P3で構成される三角形ポリゴンである。各点の位置は、平面上の位置座標x、yおよび標高hに従って斜視図で示した。これらの各三角形ポリゴンについては、正規化された法線ベクトルN1,N2を求めることができる。この法線ベクトルN1、N2のxy平面上の射影ベクトルをN1xy、N2xyとする。三角形ポリゴンの地表面からの傾きが大きいほど、この成分値は大きくなる。
【0046】
射影ベクトルN1xy、N2xyの向きおよび大きさは、指向性ポリゴンの進行方向についての傾き、即ちピッチ角と、交差方向についての傾き、即ちバンク角の双方に影響を受ける。進行方向をx軸方向とすれば、ピッチ角は、射影ベクトルN1xy、N2xyのx成分に影響し、バンク角はy成分に影響する。つまり、バンク角が大きくなるほど、射影ベクトルN1xy、N2xyとx軸とのなす角の絶対値が大きくなる。本実施例では、バンク角の評価値として、射影ベクトルN1xy、N2xyとx軸のなす角の絶対値を用いるものとした。バンク角の評価値は、この他、射影ベクトルN1xy、N2xyのy方向成分、x軸との内積、外積など、種々の値を用いることができる。
【0047】
CPUは、こうして求められたバンク角評価値が、所定の閾値Thより大きくなる三角形ポリゴンの有無を判断する(ステップS43)。かかる三角形ポリゴンが存在する場合には、バンク角を抑制するための処理として、標高補正処理が必要と判断する(ステップS44)。かかる三角形ポリゴンが存在しない場合には、標高補正処理は不要と判断する(ステップS45)。これらの判断結果は、例えば、標高補正の要否を表すフラグに保存することができる。
【0048】
C3.標高補正処理:
図6は標高補正処理の方法を示す説明図である。図の中央に、バンク角を有する三角形ポリゴンPOLの例を示した。説明の便宜上、このポリゴンPOLは道路を表すものとする。中央の図は、道路の進行方向に見た断面図であり、山Mtの斜面に沿うようにポリゴンPOLが設定され、バンク角を有している状態である。
【0049】
道路の建設方法は、大きく2通り存在する。第1は、上方の図に示すように、崖CL1を作って斜面を切り落とし、その上に道路を設ける方法である。こうすれば、道路のポリゴンPOL1はバンクしなくなる。これは、ポリゴンPOLのうち、標高が高い側の構成点の標高を、低い側の構成点の標高に一致させる処理に相当する。この処理を「切り落とし処理」と称するものとする。
【0050】
切り落とし処理の様子を示す断面図の右側には、道路の航空写真を模式的に示した。ポリゴンPOL1に対応する道路Rdは、切り落とした崖CL1側の境界Rd1と、対向する境界Rd2で規定されている。切り落としによって道路が設けられている場合、崖CL1の影Sd1は、道路内に形成される。従って、バンク角を有するポリゴンに対して標高補正処理を施す場合、そのポリゴンに対応する航空写真を解析し、ポリゴンで表される地物、この例では道路Rd内に、影が存在する時には、切り落とし処理を適用すればよいことが分かる。
【0051】
道路を建設する第2の方法は、下方の図に示すように、盛り土によって崖CL2を設け、その上に道路を設ける方法である。こうすれば、道路のポリゴンPOL2はバンクしなくなる。これは、ポリゴンPOLのうち、標高が低い側の構成点の標高を、高い側の構成点の標高に一致させる処理に相当する。この処理を「盛り上げ処理」と称するものとする。
【0052】
盛り上げ処理の様子を示す断面図の右側には、道路の航空写真を模式的に示した。ポリゴンPOL2に対応する道路Rdは、盛り土の崖CL2側の境界Rd2と、対向する境界Rd1で規定されている。盛り土で道路が設けられている場合、崖CL2の影Sd2は、道路内には形成されない。従って、バンク角を有するポリゴンに対して標高補正処理を施す場合、そのポリゴンに対応する航空写真を解析し、ポリゴンで表される地物、この例では道路Rd内に、影が存在しない時には、盛り上げ処理を適用すればよいことが分かる。
【0053】
図7は標高補正処理のフローチャートである。ポリゴンデータ生成処理(図3)のステップS60に相当する処理である。本実施例では、先に、バンク評価処理で、標高補正要と判断された場合に実行する。CPUは、三角形ポリゴンデータおよび航空写真を入力する(ステップS61)。次に、図6で示した影と地物の位置関係に基づいて、標高補正方法として、切り落とし処理、盛り上げ処理のいずれを適用するかを決定し(ステップS62)、標高補正を実行する(ステップS63)。
【0054】
図中に標高補正の方法を模式的に示した。Pc1、Pc2、Pd1、Pd2、Pd3は、正規化空間における指向性ポリゴンの構成点である。ハッチングを付した三角形ポリゴンPc1、Pc2、Pd2について標高補正処理を施すものとして、処理内容を説明する。
【0055】
まず、この三角形ポリゴンについて、標高の補正が要求される構成点を選択する。切り落とし処理を実行する場合には、構成点Pc1およびPc2と、構成点Pd2とを比較し、標高が高い側の構成点が補正対象となる。盛り上げ処理を実行する場合には、逆に標高が低い側の構成点が補正対象となる。この例では、構成点Pc1、Pc2が補正対象であるものとする。
【0056】
次に、補正対象となる構成点に対向する点列上で、これらの構成点と同一の正規化位置における標高を求める。図の例では、構成点Pc1,Pc2に対応する仮想的な構成点Pd12、Pd23における標高を求めることになる。かかる位置に、構成点が存在すれば、その標高値を用いればよい。存在しない場合には、仮想的な構成点Pd12、Pd23の両側に隣接する構成点の標高値を補間することで、構成点Pd12、Pd23における標高値を求める。こうして求められた標高値を、それぞれ補正対象となる構成点Pc1、Pc2に与えることにより、標高補正は完了する。
【0057】
仮想的な構成点Pd12、Pd23の標高は、必ずしも補間によって求める必要はない。例えば、仮想的な構成点Pd12、Pd23に近接する既存の構成点の標高をそのまま用いるようにしてもよい。
【0058】
C4.構成点追加処理:
図8は構成点追加処理のフローチャートである。ポリゴンデータ生成処理(図3)のステップS80に相当する処理である。CPUは、三角形ポリゴンデータを入力する(ステップS91)。そして、許容条件を満たさない三角形ポリゴンの分割線を検索する(ステップS92)。図の例では、ハッチングを付した三角形ポリゴンが許容条件を満たしておらず、特に、構成点B3、A5を結ぶ分割線LLが長すぎるものとする。
【0059】
CPUは、この分割線LLが許容条件を満足できるよう、構成点B3、A5の周囲に新たな構成点B34、A35を追加する(ステップS93)。本実施例では、次の手順で追加位置を決定した。まず、構成点B3について、その両端に位置する構成点B2、B4との距離を比較する。この例では、距離B2−B3よりも、距離B3−B4の方が長い。CPUは、この長い側の構成点間の中央に新たな構成点を追加する。この例では、構成点B3,B4の中央に新たな構成点B34を追加する。構成点A5についても同様の処理により、構成点A3、A5の中央に新たな構成点A35を追加する。
【0060】
このように、構成点を追加して、再度、ハシゴ分割処理を実行すると、分割線B3−A35、A35−B34、B34−A5が生成されることになるため、分割線の長さが短縮され、許容条件を満足する可能性が向上する。
【0061】
構成点の設定は、種々の方法を採ることが可能である。本実施例では、A側の点列、B側の点列、双方に構成点を追加したが、いずれか一方にのみ追加しても構わない。また、構成点B3と同一の正規化位置に構成点A35を設け、構成点A5と同一の正規化位置に構成点B34を設けるようにしてもよい。
【0062】
以上で説明した実施例のポリゴンデータ生成システムによれば、指向性ポリゴンの分割時に、いびつな形状やバンク角が大きい三角形ポリゴンの生成を抑制することができる。従って、自然な3次元表示を実現することができる。
【0063】
実施例では、ハシゴ分割処理(図3のステップS20)の後、バンク評価処理(ステップS40)、標高補正処理(ステップS60)、構成点追加処理(ステップS80)を行うものとしたが、これらの処理の順序は、適宜、変更可能である。例えば、予め標高補正処理を施した上で、ハシゴ分割処理を行うようにしてもよい。また、バンク角の評価結果に関わらず標高補正処理を施すようにしてもよい。バンク評価処理、標高補正処理、構成点追加処理の少なくとも一部を省略してもよい。
【0064】
D.変形例:
図9は変形例としてのハシゴ分割処理のフローチャートである。ポリゴンデータ生成処理(図3)のステップS20に相当する処理である。CPUは、正規化データを入力する(ステップS21)。次に、各構成点につき、長さ最小となる分割線で指向性ポリゴンを分割する(ステップS27)。但し、分割線同士が交差する場合には、より短い側の分割線を採用する。この処理を、四角形ポリゴンが存在しなくなるまで(ステップS28)、繰り返し実行する。
【0065】
図の右側に、変形例におけるハシゴ分割の処理例を示した。A側の点列A1〜A6、B側の点列B1〜B5からなる指向性ポリゴンを分割する場合を示す。まず、構成点A1、B1については、最短の分割線A1−B1が求められる。構成点A2については、A2−B1、A2−B2のうち短い方である分割線A2−B1が設定される。以下、同様にして、図示するそれぞれの分割線が設定される。
【0066】
この状態では、ポリゴンB1、A2、A3、B2など、四角形ポリゴンが存在する。従って、次に下段の通り、再度、分割処理を進める。ステップS27では、分割線同士が交差する場合には、より短い側を採用するという条件を付しているため、四角形ポリゴンについては、結局、対角線同士を比較し、短い側を分割線として採用する処理を行うことになる。四角形ポリゴンB1、A2、A3、B2については、2本の対角線のうち短い方である分割線A2−B2が採用される。以下、同様にしてそれぞれの四角形ポリゴンについて、破線で示す分割線が設定される。この結果、四角形ポリゴンは存在しなくなるので、ハシゴ分割処理は完了する。かかる処理によっても、実施例と同様、いびつな形状やバンク角が大きい三角形ポリゴンの生成を抑制することができる。
【0067】
以上、本発明の種々の実施例について説明したが、本発明はこれらの実施例に限定されず、その趣旨を逸脱しない範囲で種々の構成を採ることができることはいうまでもない。
【図面の簡単な説明】
【0068】
【図1】実施例としてのポリゴンデータ生成システムの全体構成を示す説明図である。
【図2】指向性ポリゴンデータ202の構造を示す説明図である。
【図3】ポリゴンデータ生成処理のフローチャートである。
【図4】ハシゴ分割処理のフローチャートである。
【図5】バンク評価処理のフローチャートである。
【図6】標高補正処理の方法を示す説明図である。
【図7】標高補正処理のフローチャートである。
【図8】構成点追加処理のフローチャートである。
【図9】変形例としてのハシゴ分割処理のフローチャートである。
【図10】従来技術における三角形ポリゴンの生成方法を示す説明図である。
【符号の説明】
【0069】
100…端末
102…コマンド入力部
104…データ入出力部
106…地図表示部
110…分割制御部
112…ハシゴ分割部
114…バンク評価部
116…標高補正部
202…指向性ポリゴンデータ
204…航空写真データ
210…3次元地図DB
212…地表面ポリゴンデータ
214…地物ポリゴンデータ

【特許請求の範囲】
【請求項1】
地表面に沿った方向性を有する地物を表す指向性ポリゴンから、該地物を3次元表示するための3角形ポリゴンデータを生成するポリゴンデータ生成装置であって、
前記指向性ポリゴンを形成する複数の構成点について、始点および終点が規定された2列の点列の形式で、各構成点につき位置データおよび標高データを入力するデータ入力部と、
前記指向性ポリゴンを前記3角形ポリゴンに分割するハシゴ分割部とを備え、
該ハシゴ分割部は、
前記2列の点列上の各構成点の位置を、それぞれ始点、終点間の距離を基準として正規化し、
前記2列の点列間を分割する複数の分割線のうち、前記正規化された位置に基づいて求められる正規化距離が短いものを優先して前記分割を行うポリゴン生成装置。
【請求項2】
請求項1記載のポリゴンデータ生成装置であって、
前記正規化されたそれぞれの位置で、前記2列の点列の標高差を低減するよう標高データを補正する標高補正部を備えるポリゴンデータ生成装置。
【請求項3】
請求項2記載のポリゴンデータ生成装置であって、
前記標高補正部は、前記正規化されたそれぞれの位置における前記2列の点列の標高のうち、低い側を基準として前記補正を行う切り落とし処理と、高い側を基準として前記補正を行う盛り上げ処理を選択的に実行可能であり、
前記データ入力部は、前記指向性ポリゴンに対応する地物の航空写真データを入力可能であり、
前記航空写真データにおける影と前記地物の位置関係に基づいて、前記切り落とし処理および盛り上げ処理のいずれを適用するかを判断する処理制御部とを備えるポリゴンデータ生成装置。
【請求項4】
請求項1記載のポリゴンデータ生成装置であって、
分割された前記3角形ポリゴンについて、前記始点から終点に向かう方向を軸とする傾きであるバンク角が所定範囲内にあるか否かをチェックするバンク評価部を備えるポリゴンデータ生成装置。
【請求項5】
請求項1記載のポリゴンデータ生成装置であって、
分割された前記3角形ポリゴンが、予め設定された許容条件を満足しない場合に、前記指向性ポリゴンを形成する点列上に少なくとも一つの構成点を追加して、前記ハシゴ分割部による再分割を行わせる再分割制御部を備えるポリゴンデータ生成装置。
【請求項6】
地表面に沿った方向性を有する地物を表す指向性ポリゴンから、該地物を3次元表示するための3角形ポリゴンデータを生成するポリゴンデータ生成方法であって、コンピュータが実行する工程として、
前記指向性ポリゴンを形成する複数の構成点について、始点および終点が規定された2列の点列の形式で、各構成点につき位置データおよび標高データを入力するデータ入力工程と、
前記指向性ポリゴンを前記3角形ポリゴンに分割するハシゴ分割工程とを備え、
該ハシゴ分割工程は、
前記2列の点列上の各構成点の位置を、それぞれ始点、終点間の距離を基準として正規化する正規化工程と、
前記2列の点列間を分割する複数の分割線のうち、前記正規化された位置に基づいて求められる正規化距離が短いものを優先して前記分割を行う分割工程とを備えるポリゴン生成方法。
【請求項7】
地表面に沿った方向性を有する地物を表す指向性ポリゴンから、該地物を3次元表示するための3角形ポリゴンデータを生成するコンピュータプログラムであって、
前記指向性ポリゴンを形成する複数の構成点について、始点および終点が規定された2列の点列の形式で、各構成点につき位置データおよび標高データを入力するデータ入力プログラムコードと、
前記指向性ポリゴンを前記3角形ポリゴンに分割するハシゴ分割プログラムコードとを備え、
該ハシゴ分割プログラムコードは、
前記2列の点列上の各構成点の位置を、それぞれ始点、終点を基準として正規化する正規化プログラムコードと、
前記2列の点列間を分割する複数の分割線のうち、前記正規化された位置に基づいて求められる正規化距離が短いものを優先して前記分割を行う分割プログラムコードとを備えるコンピュータプログラム。

【図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


【公開番号】特開2006−10823(P2006−10823A)
【公開日】平成18年1月12日(2006.1.12)
【国際特許分類】
【出願番号】特願2004−184850(P2004−184850)
【出願日】平成16年6月23日(2004.6.23)
【出願人】(502002186)株式会社ジオ技術研究所 (23)
【Fターム(参考)】