(57)【要約】【課題】  道路、河川など方向性を有する指向性ポリゴンを分割し、自然な３次元表示を実現可能な三角形ポリゴンデータを提供する。【解決手段】  指向性ポリゴンデータは、始点、終点からなる２列の点列Ａ１〜Ａ６、Ｂ１〜Ｂ５によって表される。各点列は、位置座標の他、標高データが与えられている。ポリゴンデータ生成装置は、この点列をその全長で正規化し、０〜１の正規化空間で一次元的に配置する。そして、この正規化空間で長さが最小となる分割線を優先し、分割線Ｂ１−Ａ２、Ｂ１−Ａ３のように、三角形ポリゴンを生成する。かかる分割方法により、いびつな形状やバンク角が大きい三角形ポリゴンの発生を抑制することができ、自然な３次元表示を実現することができる。【選択図】  図４    
2006010823.tif 000002
【特許請求の範囲】
【請求項１】
地表面に沿った方向性を有する地物を表す指向性ポリゴンから、該地物を３次元表示するための３角形ポリゴンデータを生成するポリゴンデータ生成装置であって、
前記指向性ポリゴンを形成する複数の構成点について、始点および終点が規定された２列の点列の形式で、各構成点につき位置データおよび標高データを入力するデータ入力部と、
前記指向性ポリゴンを前記３角形ポリゴンに分割するハシゴ分割部とを備え、
該ハシゴ分割部は、
前記２列の点列上の各構成点の位置を、それぞれ始点、終点間の距離を基準として正規化し、
前記２列の点列間を分割する複数の分割線のうち、前記正規化された位置に基づいて求められる正規化距離が短いものを優先して前記分割を行うポリゴン生成装置。
【請求項２】
請求項１記載のポリゴンデータ生成装置であって、
前記正規化されたそれぞれの位置で、前記２列の点列の標高差を低減するよう標高データを補正する標高補正部を備えるポリゴンデータ生成装置。
【請求項３】
請求項２記載のポリゴンデータ生成装置であって、
前記標高補正部は、前記正規化されたそれぞれの位置における前記２列の点列の標高のうち、低い側を基準として前記補正を行う切り落とし処理と、高い側を基準として前記補正を行う盛り上げ処理を選択的に実行可能であり、
前記データ入力部は、前記指向性ポリゴンに対応する地物の航空写真データを入力可能であり、
前記航空写真データにおける影と前記地物の位置関係に基づいて、前記切り落とし処理および盛り上げ処理のいずれを適用するかを判断する処理制御部とを備えるポリゴンデータ生成装置。
【請求項４】
請求項１記載のポリゴンデータ生成装置であって、
分割された前記３角形ポリゴンについて、前記始点から終点に向かう方向を軸とする傾きであるバンク角が所定範囲内にあるか否かをチェックするバンク評価部を備えるポリゴンデータ生成装置。
【請求項５】
請求項１記載のポリゴンデータ生成装置であって、
分割された前記３角形ポリゴンが、予め設定された許容条件を満足しない場合に、前記指向性ポリゴンを形成する点列上に少なくとも一つの構成点を追加して、前記ハシゴ分割部による再分割を行わせる再分割制御部を備えるポリゴンデータ生成装置。
【請求項６】
地表面に沿った方向性を有する地物を表す指向性ポリゴンから、該地物を３次元表示するための３角形ポリゴンデータを生成するポリゴンデータ生成方法であって、コンピュータが実行する工程として、
前記指向性ポリゴンを形成する複数の構成点について、始点および終点が規定された２列の点列の形式で、各構成点につき位置データおよび標高データを入力するデータ入力工程と、
前記指向性ポリゴンを前記３角形ポリゴンに分割するハシゴ分割工程とを備え、
該ハシゴ分割工程は、
前記２列の点列上の各構成点の位置を、それぞれ始点、終点間の距離を基準として正規化する正規化工程と、
前記２列の点列間を分割する複数の分割線のうち、前記正規化された位置に基づいて求められる正規化距離が短いものを優先して前記分割を行う分割工程とを備えるポリゴン生成方法。
【請求項７】
地表面に沿った方向性を有する地物を表す指向性ポリゴンから、該地物を３次元表示するための３角形ポリゴンデータを生成するコンピュータプログラムであって、
前記指向性ポリゴンを形成する複数の構成点について、始点および終点が規定された２列の点列の形式で、各構成点につき位置データおよび標高データを入力するデータ入力プログラムコードと、
前記指向性ポリゴンを前記３角形ポリゴンに分割するハシゴ分割プログラムコードとを備え、
該ハシゴ分割プログラムコードは、
前記２列の点列上の各構成点の位置を、それぞれ始点、終点を基準として正規化する正規化プログラムコードと、
前記２列の点列間を分割する複数の分割線のうち、前記正規化された位置に基づいて求められる正規化距離が短いものを優先して前記分割を行う分割プログラムコードとを備えるコンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、地表面に沿った方向性を有する地物を表す指向性ポリゴンを３次元表示するための三角形ポリゴンデータの生成方法に関する。
【背景技術】
【０００２】
電子地図データを利用して地表面および地物の３次元表示が実現されている。地物には、人工の建造物、および湖沼などの自然に存在する物が含まれる。これらの地物には、人工であるか自然であるかを問わず、道路、河川、鉄道など地表面に沿った一定の方向性を有するものが存在する。地物のデータは位置および標高を有する点列からなるポリゴンとして与えられる。これらの点列は、必ずしも同一平面上に存在するとは限らないため、地物の３次元表示には、地物のポリゴンを三角形に分割した三角形ポリゴンが利用される。
【０００３】
図１０は従来技術における三角形ポリゴンの生成方法を示す説明図である。分割対象となるポリゴンＰＯＬは、点列Ａ１〜Ａ６、Ｂ５〜Ｂ１で定義されている。ポリゴンＰＯＬは、ポリゴンＰＯＬ１、ＰＯＬ２と隣接しており、構成点Ａ１、Ｂ１を始点、構成点Ａ６、Ｂ５を終点とする２本の点列からなる方向性を有するポリゴンとして認識される。
【０００４】
ポリゴンＰＯＬの分割に際しては、予め各構成点についての処理順序を規定しておく。この例では、構成点Ｂ２，Ｂ３，Ｂ４の順に処理を進めるものとした。まず、構成点Ｂ２から、対向する点列Ａ１〜Ａ６に対して順次、分割線を定義する。この例では、図中に実線で示す通り、構成点Ｂ２と構成点Ａ１〜Ａ５をそれぞれ結ぶ５本の分割線が求められる。
【０００５】
構成点Ｂ２からの分割が完了すると、次に、構成点Ｂ３を用いた分割に移行する。この処理では、例えば、構成点Ｂ３−Ａ１を結ぶ線（図中の破線）のように、ポリゴンＰＯＬの外部を通過したり、分割済みの三角形ポリゴンを横切る分割線は採用されない。従って、構成点Ｂ３からは構成点Ｂ５、Ｂ６を結ぶ一点鎖線の分割線が求められる。同様にして、構成点Ｂ４と構成点Ａ６を引く二点鎖線の分割線を設定することで、ポリゴンＰＯＬの三角形ポリゴンへの分割が完了する。
【０００６】
【特許文献１】特許第３３７６８６８号公報
【発明の開示】
【発明が解決しようとする課題】
【０００７】
従来技術における分割方法では、図１０におけるポリゴンＰｈｐ１、即ち構成点Ｂ２，Ａ４、Ａ５を結ぶ三角形ポリゴンのように、非常にいびつな形状の三角形が生じ得た。このように生成された三角形ポリゴンを用いて三次元表示を行うと、ポリゴンＰＯＬが不自然に歪んで見えることがあった。特に、ポリゴンＰＯＬがポリゴンＰＯＬ１からＰＯＬ２側に昇り勾配を有する道路のように、各構成点に有意な標高差が存在する場合、道路が左右にねじれているかのような表示がなされることがあった。本発明は、こうした課題を解決し、地表面に沿った方向性を有するポリゴンについて、自然な３次元表示を可能とする三角形ポリゴンを生成可能とすることを目的とする。
【課題を解決するための手段】
【０００８】
本発明のポリゴンデータ生成装置は、地表面に沿った方向性を有する地物を表す指向性ポリゴンから、地物を３次元表示するための３角形ポリゴンデータを生成する。方向性を有する地物としては、例えば、道路、河川、鉄道および鉄道の駅構内などが挙げられる。これらのポリゴンは、通常、地物を表す他のポリゴンと隣接しているのが通常であるため、このように地物を表す他のポリゴンと隣接しているポリゴンを指向性ポリゴンと定義することもできる。
【０００９】
ポリゴンデータ生成装置は、上述した指向性ポリゴンを形成する複数の構成点について、位置データおよび標高データを入力する。この入力は、始点および終点が規定された２列の点列の形式で行う。この入力には、このような２列の点列で予め定義された指向性ポリゴンのデータを読み込む方法、ポリゴンの外周を定義する一連の点列データを入力後に、２列の点列を定義する方法などを採ることができる。後者の態様としては、例えば、指向性ポリゴンが他のポリゴンと接触している複数の構成点を、始点または終点と定義することで、一連の点列データを２列の点列に分ける方法を採ることができる。
【００１０】
ポリゴンデータ生成装置は、こうして入力された指向性ポリゴンを、以下の手順で３角形ポリゴンに分割する。まず、２列の点列上の各構成点の位置を、それぞれ始点、終点間の距離を基準として正規化する。正規化された座標空間では、２列の点列は同等の長さを有する２本の平行線上に配置されることになる。２列の点列の間隔は、任意に設定して構わない。そして、２列の点列間を分割する複数の分割線のうち、正規化された位置に基づいて求められる正規化距離が短いものを優先して三角形ポリゴンへの分割を行う。かかる分割を「ハシゴ分割」と称するものとする。本発明によれば、このハシゴ分割を採用することにより、指向性ポリゴンの分割時に、従来技術のようないびつな形状の三角形ポリゴンが生じることを抑制でき、自然な３次元表示を実現することが可能となる。
【００１１】
本発明においては、正規化されたそれぞれの位置で、２列の点列の標高差を低減するよう標高データを補正してもよい。正規化された位置座標（以下、「正規化位置」と称する）がほぼ等しい２点間の標高差を低減することにより、交差方向、即ち指向性ポリゴンの始点から終点に向かう方向に直交する向き、における三角形ポリゴンの傾きを抑制することができる。従って、より自然な３次元表示を実現することができる。２本の点列上の各構成点の正規化位置は厳密に一致していないことが多い。かかる場合には、正規化位置が近接した２点を用いる方法、点列の補間によって正規化位置が一致する仮想的な構成点における標高を用いる方法などを採ることができる。２点間の標高差は厳密に０とする必要はなく、３次元表示時に不自然なねじれを抑制できる範囲で予め設定された許容誤差に収めればよい。標高差の補正は、正規化の後、三角形への分割に先だって行ってもよいし、分割の後処理として行っても良い。また、後述するバンク角のチェック後に行っても良い。
【００１２】
このように標高を補正する場合、２列の点列の標高のうち、低い側を基準として補正を行う切り落とし処理と、高い側を基準として補正を行う盛り上げ処理のいずれを用いてもよい。また、２点の点列の標高の平均値を用いて補正を行ってもよい。例えば、斜面に沿って走る道路では、現実の道路の建設方法を考えると、切り落とし処理または盛り上げ処理のいずれかを選択的に実行することができる。
【００１３】
切り落とし処理、及び盛り上げを選択的に実行する場合、両者の選択は、オペレータが手動で指示するようにしても構わないが、次の手順で自動的に判別してもよい。判断には指向性ポリゴンに対応する地物の航空写真データを用いる。そして、この航空写真データにおける影と地物の位置関係に基づいて、切り落とし処理および盛り上げ処理のいずれを適用するかを判断する。例えば、地物内に影がかかっている場合には、切り落とし処理を適用し、その他の場合には盛り上げ処理を適用するという判断方法を採ることができる。
【００１４】
本発明では、分割された３角形ポリゴンについて、始点から終点に向かう方向を軸とする傾きであるバンク角が所定範囲内にあるか否かをチェックするようにしてもよい。このチェックにより、不自然な表示をより確実に抑制することができる。
【００１５】
以上で説明したハシゴ分割は、１回の試行で完了させてもよいが、分割された３角形ポリゴンが、予め設定された許容条件を満足しない場合には、指向性ポリゴンを形成する点列上に少なくとも一つの構成点を追加して、再分割をするようにしてもよい。許容条件としては、例えば、上述のバンク角が所定範囲内に収まるという条件や、いびつな形状の三角形ポリゴンが生じていないという条件を用いることができる。後者の条件は、例えば、三角形ポリゴンの分割線長さが所定範囲内に収まるという条件、三角形ポリゴンの内角がそれぞれ所定値範囲内に収まるという条件などで評価することができる。
【００１６】
本発明は、上述した特徴を全て備えている必要はなく、一部を省略したり適宜、組み合わせたりしてもよい。本発明は、ポリゴンデータ生成装置としての態様の他、コンピュータによってポリゴンデータを生成するポリゴンデータ生成方法として構成してもよい。また、かかる処理をコンピュータに実現させるためのコンピュータプログラム、このコンピュータプログラムを記録したコンピュータ読み取り可能な記録媒体として構成してもよい。ポリゴンデータ生成装置として構成する場合、スタンドアロンで稼働する装置としてもよいし、端末とサーバとをネットワークで接続して構成してもよい。記録媒体としては、フレキシブルディスク、ＣＤ−ＲＯＭ、光磁気ディスク、ＩＣカード、ＲＯＭカートリッジ、パンチカード、バーコードなどの符号が印刷された印刷物、コンピュータの内部記憶装置（ＲＡＭやＲＯＭなどのメモリ）および外部記憶装置等、コンピュータが読取り可能な種々の媒体を利用できる。
【発明を実施するための最良の形態】
【００１７】
本発明の実施例について以下の順序で説明する。
Ａ．システム構成：
Ｂ．指向性ポリゴンデータ：
Ｃ．ポリゴンデータ生成処理：
Ｃ１．ハシゴ分割処理：
Ｃ２．バンク評価処理：
Ｃ３．標高補正処理：
Ｃ４．構成点追加処理：
Ｄ．変形例：
【００１８】
Ａ．システム構成：
図１は実施例としてのポリゴンデータ生成システムの全体構成を示す説明図である。実施例のシステムは、ポリゴンデータ生成装置として機能する端末１００と、種々のデータベースを提供するための各種サーバをネットワークＮＥＴで接続することで構成される。ネットワークＮＥＴは、ＬＡＮやイントラネットのように限定的なものであってもよいし、インターネットのように広域的なものであってもよい。
【００１９】
サーバによって提供されるデータベースとしては、指向性ポリゴンデータ２０２、航空写真データ２０４、３次元地図ＤＢ２１０が挙げられる。指向性ポリゴンデータ２０２は、道路、河川など方向性を有する地物のポリゴンデータである。航空写真データ２０４は、これらの地物の航空写真を表す画像データである。３次元地図ＤＢ２１０は、地図の３次元表示を行うためのデータベースであり、地表面ポリゴンデータ２１２、地物ポリゴンデータ２１４を含む。地表面ポリゴンデータ２１２は、地表面を３次元表示するための三角形ポリゴンデータである。地物ポリゴンデータ２１４は、道路、建物その他の地物を３次元表示するためのデータである。本実施例では、地表面ポリゴンデータ、および建物のデータは、予め用意されているものとして説明する。地物ポリゴンデータ２１４のうち、方向性を有する地物については、指向性ポリゴンデータ２０２から、端末１００が生成する。
【００２０】
図中に端末１００の機能ブロックを併せて示した。本実施例では、これらの機能ブロックは、端末１００にインストールされた所定のコンピュータプログラムをＣＰＵが実行することにより、ソフトウェア的に構成される。機能ブロックの少なくとも一部を、ハードウェア的に実現しても構わない。
【００２１】
コマンド入力部１０２は、端末１００のキーボード、マウスなどに対するユーザの操作に基づいてコマンドを入力する。データ入出力部１０４は、ネットワークＮＥＴを介して、各種データベースとデータの授受を行う。入力するデータとしては、指向性ポリゴンデータ２０２、および航空写真データ２０４が挙げられる。後述する通り、指向性ポリゴンデータ２０２は、始点、終点からなる２列の点列データとして定義される。データ入出力部１０４は、指向性ポリゴンデータ２０２を、かかる点列データの形式に変換する機能も奏する。地図表示部１０６は、３次元地図ＤＢ２１０に基づき、端末１００上に、地図を３次元表示する。
【００２２】
指向性ポリゴンの分割による地物ポリゴンデータ２１４の生成は、分割制御部１１０の制御下で、ハシゴ分割部１１２、バンク評価部１１４、標高補正部１１６が稼働することで実現される。ハシゴ分割部１１２は、指向性ポリゴンデータ２０２の点列に基づいて分割線を定義し、この指向性ポリゴンを三角形ポリゴンに分割する。バンク評価部１１４は、分割された三角形ポリゴンのバンク角、即ち、指向性ポリゴンの始点から終点に向かう方向（以下、「進行方向」と呼ぶ）を軸とする回転角を求める。このバンク角は、不自然なバンクを伴わない形状に分割が行われているか否かの評価に用いられる。標高補正部１１６は、指向性ポリゴンの２列の点列上の各位置において、進行方向に交差する方向（以下、「交差方向」と呼ぶ）の標高差を抑制する。これは、バンク角を抑制するための処理でもある。標高補正は、後述する通り、切り落とし処理、盛り上げ処理の２通りを選択的に実行する。両者の使い分けは、標高補正部１１６が、航空写真データ２０４に基づいて判断する。
【００２３】
分割制御部１１０は、ハシゴ分割部１１２、バンク評価部１１４、標高補正部１１６を以下の手順で稼働させ、指向性ポリゴンの分割を実行する。まず、ハシゴ分割部１１２にハシゴ分割を実行させる。次に、分割結果について、バンク評価部１１４によるバンク評価を実行する。そして、バンク角が大きい三角形ポリゴンが存在する場合には、標高補正部１１６による補正を行う。更に、分割結果について、いびつな形状の三角形ポリゴンの有無、バンク角が大きい三角形ポリゴンの有無を調査し、このような不適切な三角形ポリゴンが存在する場合には、指向性ポリゴンの外周に構成点を追加して、再分割を実行する。ハシゴ分割部１１２、バンク評価部１１４、標高補正部１１６の稼働順序は、この例に限らず、種々の順序を適用可能である。
【００２４】
以上の処理で生成された三角形ポリゴンデータは、データ入出力部１０４およびネットワークＮＥＴを介して、地物ポリゴンデータ２１４に格納される。このシステム構成は、一例に過ぎず、端末１００には、更に、建造物の地物ポリゴンデータ２１４を生成するための機能ブロック、地表面ポリゴンデータ２１２を生成するための機能ブロックなどを用意してもよい。また、バンク評価部１１４、標高補正部１１６を省略してもよい。
【００２５】
Ｂ．指向性ポリゴンデータ：
図２は指向性ポリゴンデータ２０２の構造を示す説明図である。図の上方に指向性ポリゴンＰＯＬの平面図を示した。指向性ポリゴンＰＯＬは、ポリゴンＰＯＬ１、ＰＯＬ２にそれぞれ隣接している。指向性ポリゴンＰＯＬは、ポリゴンＰＯＬ１と隣接する構成点Ａ１、Ｂ１を始点、ポリゴンＰＯＬ２と隣接する構成点Ａ６、Ｂ５を終点とする２列の点列、Ａ１〜Ａ６およびＢ１〜Ｂ５によって定義される。始点、終点の定義により、指向性ポリゴンＰＯＬは、図中に矢印で示す進行方向が定義される。始点、終点は任意に定義可能であり、構成点Ａ１、Ｂ１を終点、構成点Ａ６、Ｂ５を始点と定義してもよい。この場合、進行方向は逆向きとなる。
【００２６】
指向性ポリゴンデータ２０２は、構成点ごとに位置および標高のデータを有している。位置データは、緯度、経度で表すものとした。図中の構成点Ａ１については、「（緯度、経度、標高）＝（Ｌａｔ，Ｌｏｎ，Ｈ）」が与えられている。他の構成点についても同様の形式で位置、標高が与えられている。
【００２７】
本実施例では、指向性ポリゴンデータ２０２は、上述した２列の点列という形式ではなく、ポリゴンの外周を表す一連の点列の形式で用意されているものとした。このデータ構造例を図の中央に示した。即ち、指向性ポリゴンデータ２０２は、始点Ａ１〜Ａ６、Ｂ５〜終点Ｂ１のように、ポリゴンの外周を一周する順序で点列が定義されている。
【００２８】
端末１００は、指向性ポリゴンデータを上述した２列の点列データ２０２ａに変換して入力する。図示する通り、この形式では、指向性ポリゴンデータとして、始点Ａ１〜終点Ａ６の点列と、始点Ｂ１〜終点Ｂ５の２つの点列が区別して定義されることになる。
【００２９】
この変換は、次の手順で実行する。図の中央に示す通り、まず、ポリゴンＰＯＬが他のポリゴンＰＯＬ１，ＰＯＬ２と接触している構成点（以下、「境界点」と呼ぶ）を認識する。この例では、構成点Ａ１、Ａ６、Ｂ５、Ｂ１の４点が見いだされる。次のこの４点のうち、指向性ポリゴンデータ２０２における始点Ａ１を始点として、順次、構成点を抽出して点列Ａｒ１を定義する。この点列Ａｒ１は、境界点Ａ６に至った時点で完成され、境界点Ａ６は終点となる。同様にして、指向性ポリゴンデータ２０２における終点Ｂ１を始点として、順次、逆方向に構成点を抽出して点列Ａｒ２を定義する。この点列Ａｒ２は、境界点Ｂ５に至った時点で完成され、境界点Ｂ５は終点となる。
【００３０】
２列の点列への変換は、上述の方法に限らず、種々の方法を採用可能である。また、指向性ポリゴンデータ２０２を、予め点列の形式で与えるものとしてもよい。
【００３１】
Ｃ．ポリゴンデータ生成処理：
図３はポリゴンデータ生成処理のフローチャートである。指向性ポリゴンを三角形ポリゴンに分割して、３次元表示用のデータを生成するための処理であり、ユーザのコマンドに従って端末１００のＣＰＵが実行する処理である。
【００３２】
この処理が開始されると、ＣＰＵはネットワークＮＥＴ経由で指向性ポリゴンデータ２０２を入力する（ステップＳ１０）。このデータは、先に説明した通り、２列の点列として定義されている。
【００３３】
次にＣＰＵは、これらの点列について正規化処理を行う（ステップＳ１２）。図中に正規化処理の方法を例示した。まず、指向性ポリゴンの外周に沿った折れ線状の２列の点列Ａ１〜Ａ６、およびＢ１〜Ｂ５を、直線状に伸ばして配置する。各構成点間の距離は、指向性ポリゴンの外周における各構成点間の距離と等しい。点列Ｂ１〜Ｂ５の全長をＬｂ、点列Ａ１〜Ａ６の全長をＬａとする。始点Ａ１，Ｂ１の位置を原点とすると、点列Ａ１〜Ａ６の各構成点の位置は０〜Ｌａの一次元座標で表され、点列Ｂ１〜Ｂ５の各構成点の位置は０〜Ｌｂの一次元座標で表される。
【００３４】
次に、直線状に配置された点列Ａ１〜Ａ６の位置座標を全長Ｌａで除し、点列Ｂ１〜Ｂ５の位置座標を全長Ｌｂで除する。この結果、両点列の位置座標は、０〜１の一次元座標で表される。本実施例では、両点列を区別するため、間隔ｄの平行線上に配置して、処理を行うものとした。この間隔ｄは任意に設定可能である。正規化後の位置座標を与える座標空間を、以下、正規化空間と呼び、その位置座標を正規化座標と呼ぶものとする。
【００３５】
ＣＰＵは、正規化座標に基づいてハシゴ分割処理（ステップＳ２０）、バンク評価処理（ステップＳ４０）、標高補正処理（ステップＳ６０）をそれぞれ実行する。ハシゴ分割処理とは、指向性ポリゴンを三角形ポリゴンに分割する処理である。バンク評価処理とは、分割された三角形ポリゴンのバンク角を求める処理である。標高補正処理とは、指向性ポリゴンの各構成点について、交差方向の標高差を低減するための処理である。それぞれの処理内容については後で詳述する。
【００３６】
ＣＰＵは、こうして得られた分割結果について、許容条件を満足しているか否かを評価する（ステップＳ８０）。本実施例では、許容条件として、ｉ）三角形ポリゴンの分割線が間隔ｄのα倍（αは１．０以上の実数）以下であること、ｉｉ）三角形ポリゴンのバンク角がθ（ｄｅｇ）以下であることという２つの条件を用いるものとした。条件ｉ）における判断基準値αは、任意に設定可能である。この値を１．０に近づける程、分割線は正規化空間内で、点列に直交する線となり、より自然な３次元表示が可能となる一方、後述する構成点の追加が多数必要となり、処理時間が長くなる。バンク角についての判断基準値θも同様である。小さくする程、自然な３次元表示が可能となる一方、処理時間が長時間化する。判断基準値α、θは、このように、自然な３次元表示を実現するための要求と、処理時間に対する要求の双方のバランスを考慮して設定することが望ましい。ステップＳ８０で用いる許容条件は、上述の他、任意に設定可能である。
【００３７】
分割された三角形ポリゴンが許容条件を満足しない場合（ステップＳ８０）、ＣＰＵは、構成点の追加処理を実行する（ステップＳ９０）。これは、後で詳述する通り、正規化空間において、指向性ポリゴンの各点列上に新たに構成点を追加する処理である。構成点を追加した後、再度、ハシゴ分割処理、バンク評価処理、標高補正処理（ステップＳ２０〜Ｓ６０）を実行する。これらの処理は、許容条件が満たされるまで繰り返される。
【００３８】
ＣＰＵは、許容条件を満足する結果が得られると（ステップＳ８０）、分割結果を出力する（ステップＳ１１０）。本実施例では、出力先は、地物ポリゴンデータ２１４である。
【００３９】
Ｃ１．ハシゴ分割処理：
図４はハシゴ分割処理のフローチャートである。ポリゴンデータ生成処理（図３）のステップＳ２０に相当する処理である。ＣＰＵは、まず正規化データを入力する（ステップＳ２１）。そして、初期化処理として、分割の処理位置を制御するためのポインタ、処理位置ポインタを各点列の始点に設定する（ステップＳ２２）。
【００４０】
次に、処理ポインタよりも終点側で正規化位置が最小となる構成点を検索する（ステップＳ２３）。この構成点は、２つの点列を含めて全体で正規化位置が最小となる点である。そして、この検索された構成点と処理ポインタで指向性ポリゴンを分割する（ステップＳ２４）。分割後は、処理ポインタを、この分割に使用された構成点まで移動することで、位置の更新を行う（ステップＳ２５）。以上の処理を、三角形ポリゴンへの分割が完了するまで（ステップＳ２６）、繰り返し実行する。
【００４１】
図の右側に、ハシゴ分割の例を示した。上から順に処理が進む様子を示している。塗りつぶしの三角形Ａｐ、Ｂｐは、それぞれＡ側の点列Ａ１〜Ａ６、およびＢ側の点列Ｂ１〜Ｂ５の処理位置ポインタを表している。初期状態では、双方共に始点Ａ１、Ｂ１に設定されている。この状態で、終点方向に正規化位置が最小となる構成点を検索すると、構成点Ａ２が見いだされる。従って、Ａ側の点列上の構成点Ａ２と、Ｂ側の点列上の処理ポインタＢｐがある構成点、即ちＢ１とを結ぶ分割線ＳＬ１によってポリゴンを分割する。その後、処理位置ポインタＡｐの位置は構成点Ａ２の位置に更新される。
【００４２】
次に、中段の状態で分割処理を実行する。この状態では、正規化位置が最小となる構成点として、Ａ側の構成点Ａ３が見いだされる。従って、Ａ側の点列上の構成点Ａ３と、Ｂ側の点列上の処理ポインタＢｐがある構成点Ｂ１とを結ぶ分割線ＳＬ２によってポリゴンを分割する。その後、処理位置ポインタＡｐの位置は構成点Ａ３の位置に更新される。
【００４３】
次に、下段の状態で分割処理を実行する。この状態では、正規化位置が最小となる構成点として、Ｂ側の構成点Ｂ２が見いだされる。従って、Ａ側の点列上の処理ポインタＡｐがある構成点Ａ３と、Ｂ側の構成点Ｂ２とを結ぶ分割線ＳＬ３によってポリゴンを分割する。その後、処理位置ポインタＢｐの位置は構成点Ｂ２の位置に更新される。以下、同様にして処理位置ポインタＡｐ、Ｂｐが終点Ａ６、Ｂ５に至るまで処理を実行する。
【００４４】
Ｃ２．バンク評価処理：
図５はバンク評価処理のフローチャートである。ポリゴンデータ生成処理（図３）のステップＳ４０に相当する処理である。ＣＰＵはハシゴ分割された三角形ポリゴンのデータを入力する（ステップＳ４１）。そして、各ポリゴンのバンク角評価値を算出する（ステップＳ４２）。
【００４５】
図中にバンク角評価値の算出方法を示した。評価対象となる三角形ポリゴンを２つ例示した。一つは、頂点Ｐ０、Ｐ１、Ｐ３で構成される三角形ポリゴンであり、もう一つは、頂点Ｐ１、Ｐ２、Ｐ３で構成される三角形ポリゴンである。各点の位置は、平面上の位置座標ｘ、ｙおよび標高ｈに従って斜視図で示した。これらの各三角形ポリゴンについては、正規化された法線ベクトルＮ１，Ｎ２を求めることができる。この法線ベクトルＮ１、Ｎ２のｘｙ平面上の射影ベクトルをＮ１ｘｙ、Ｎ２ｘｙとする。三角形ポリゴンの地表面からの傾きが大きいほど、この成分値は大きくなる。
【００４６】
射影ベクトルＮ１ｘｙ、Ｎ２ｘｙの向きおよび大きさは、指向性ポリゴンの進行方向についての傾き、即ちピッチ角と、交差方向についての傾き、即ちバンク角の双方に影響を受ける。進行方向をｘ軸方向とすれば、ピッチ角は、射影ベクトルＮ１ｘｙ、Ｎ２ｘｙのｘ成分に影響し、バンク角はｙ成分に影響する。つまり、バンク角が大きくなるほど、射影ベクトルＮ１ｘｙ、Ｎ２ｘｙとｘ軸とのなす角の絶対値が大きくなる。本実施例では、バンク角の評価値として、射影ベクトルＮ１ｘｙ、Ｎ２ｘｙとｘ軸のなす角の絶対値を用いるものとした。バンク角の評価値は、この他、射影ベクトルＮ１ｘｙ、Ｎ２ｘｙのｙ方向成分、ｘ軸との内積、外積など、種々の値を用いることができる。
【００４７】
ＣＰＵは、こうして求められたバンク角評価値が、所定の閾値Ｔｈより大きくなる三角形ポリゴンの有無を判断する（ステップＳ４３）。かかる三角形ポリゴンが存在する場合には、バンク角を抑制するための処理として、標高補正処理が必要と判断する（ステップＳ４４）。かかる三角形ポリゴンが存在しない場合には、標高補正処理は不要と判断する（ステップＳ４５）。これらの判断結果は、例えば、標高補正の要否を表すフラグに保存することができる。
【００４８】
Ｃ３．標高補正処理：
図６は標高補正処理の方法を示す説明図である。図の中央に、バンク角を有する三角形ポリゴンＰＯＬの例を示した。説明の便宜上、このポリゴンＰＯＬは道路を表すものとする。中央の図は、道路の進行方向に見た断面図であり、山Ｍｔの斜面に沿うようにポリゴンＰＯＬが設定され、バンク角を有している状態である。
【００４９】
道路の建設方法は、大きく２通り存在する。第１は、上方の図に示すように、崖ＣＬ１を作って斜面を切り落とし、その上に道路を設ける方法である。こうすれば、道路のポリゴンＰＯＬ１はバンクしなくなる。これは、ポリゴンＰＯＬのうち、標高が高い側の構成点の標高を、低い側の構成点の標高に一致させる処理に相当する。この処理を「切り落とし処理」と称するものとする。
【００５０】
切り落とし処理の様子を示す断面図の右側には、道路の航空写真を模式的に示した。ポリゴンＰＯＬ１に対応する道路Ｒｄは、切り落とした崖ＣＬ１側の境界Ｒｄ１と、対向する境界Ｒｄ２で規定されている。切り落としによって道路が設けられている場合、崖ＣＬ１の影Ｓｄ１は、道路内に形成される。従って、バンク角を有するポリゴンに対して標高補正処理を施す場合、そのポリゴンに対応する航空写真を解析し、ポリゴンで表される地物、この例では道路Ｒｄ内に、影が存在する時には、切り落とし処理を適用すればよいことが分かる。
【００５１】
道路を建設する第２の方法は、下方の図に示すように、盛り土によって崖ＣＬ２を設け、その上に道路を設ける方法である。こうすれば、道路のポリゴンＰＯＬ２はバンクしなくなる。これは、ポリゴンＰＯＬのうち、標高が低い側の構成点の標高を、高い側の構成点の標高に一致させる処理に相当する。この処理を「盛り上げ処理」と称するものとする。
【００５２】
盛り上げ処理の様子を示す断面図の右側には、道路の航空写真を模式的に示した。ポリゴンＰＯＬ２に対応する道路Ｒｄは、盛り土の崖ＣＬ２側の境界Ｒｄ２と、対向する境界Ｒｄ１で規定されている。盛り土で道路が設けられている場合、崖ＣＬ２の影Ｓｄ２は、道路内には形成されない。従って、バンク角を有するポリゴンに対して標高補正処理を施す場合、そのポリゴンに対応する航空写真を解析し、ポリゴンで表される地物、この例では道路Ｒｄ内に、影が存在しない時には、盛り上げ処理を適用すればよいことが分かる。
【００５３】
図７は標高補正処理のフローチャートである。ポリゴンデータ生成処理（図３）のステップＳ６０に相当する処理である。本実施例では、先に、バンク評価処理で、標高補正要と判断された場合に実行する。ＣＰＵは、三角形ポリゴンデータおよび航空写真を入力する（ステップＳ６１）。次に、図６で示した影と地物の位置関係に基づいて、標高補正方法として、切り落とし処理、盛り上げ処理のいずれを適用するかを決定し（ステップＳ６２）、標高補正を実行する（ステップＳ６３）。
【００５４】
図中に標高補正の方法を模式的に示した。Ｐｃ１、Ｐｃ２、Ｐｄ１、Ｐｄ２、Ｐｄ３は、正規化空間における指向性ポリゴンの構成点である。ハッチングを付した三角形ポリゴンＰｃ１、Ｐｃ２、Ｐｄ２について標高補正処理を施すものとして、処理内容を説明する。
【００５５】
まず、この三角形ポリゴンについて、標高の補正が要求される構成点を選択する。切り落とし処理を実行する場合には、構成点Ｐｃ１およびＰｃ２と、構成点Ｐｄ２とを比較し、標高が高い側の構成点が補正対象となる。盛り上げ処理を実行する場合には、逆に標高が低い側の構成点が補正対象となる。この例では、構成点Ｐｃ１、Ｐｃ２が補正対象であるものとする。
【００５６】
次に、補正対象となる構成点に対向する点列上で、これらの構成点と同一の正規化位置における標高を求める。図の例では、構成点Ｐｃ１，Ｐｃ２に対応する仮想的な構成点Ｐｄ１２、Ｐｄ２３における標高を求めることになる。かかる位置に、構成点が存在すれば、その標高値を用いればよい。存在しない場合には、仮想的な構成点Ｐｄ１２、Ｐｄ２３の両側に隣接する構成点の標高値を補間することで、構成点Ｐｄ１２、Ｐｄ２３における標高値を求める。こうして求められた標高値を、それぞれ補正対象となる構成点Ｐｃ１、Ｐｃ２に与えることにより、標高補正は完了する。
【００５７】
仮想的な構成点Ｐｄ１２、Ｐｄ２３の標高は、必ずしも補間によって求める必要はない。例えば、仮想的な構成点Ｐｄ１２、Ｐｄ２３に近接する既存の構成点の標高をそのまま用いるようにしてもよい。
【００５８】
Ｃ４．構成点追加処理：
図８は構成点追加処理のフローチャートである。ポリゴンデータ生成処理（図３）のステップＳ８０に相当する処理である。ＣＰＵは、三角形ポリゴンデータを入力する（ステップＳ９１）。そして、許容条件を満たさない三角形ポリゴンの分割線を検索する（ステップＳ９２）。図の例では、ハッチングを付した三角形ポリゴンが許容条件を満たしておらず、特に、構成点Ｂ３、Ａ５を結ぶ分割線ＬＬが長すぎるものとする。
【００５９】
ＣＰＵは、この分割線ＬＬが許容条件を満足できるよう、構成点Ｂ３、Ａ５の周囲に新たな構成点Ｂ３４、Ａ３５を追加する（ステップＳ９３）。本実施例では、次の手順で追加位置を決定した。まず、構成点Ｂ３について、その両端に位置する構成点Ｂ２、Ｂ４との距離を比較する。この例では、距離Ｂ２−Ｂ３よりも、距離Ｂ３−Ｂ４の方が長い。ＣＰＵは、この長い側の構成点間の中央に新たな構成点を追加する。この例では、構成点Ｂ３，Ｂ４の中央に新たな構成点Ｂ３４を追加する。構成点Ａ５についても同様の処理により、構成点Ａ３、Ａ５の中央に新たな構成点Ａ３５を追加する。
【００６０】
このように、構成点を追加して、再度、ハシゴ分割処理を実行すると、分割線Ｂ３−Ａ３５、Ａ３５−Ｂ３４、Ｂ３４−Ａ５が生成されることになるため、分割線の長さが短縮され、許容条件を満足する可能性が向上する。
【００６１】
構成点の設定は、種々の方法を採ることが可能である。本実施例では、Ａ側の点列、Ｂ側の点列、双方に構成点を追加したが、いずれか一方にのみ追加しても構わない。また、構成点Ｂ３と同一の正規化位置に構成点Ａ３５を設け、構成点Ａ５と同一の正規化位置に構成点Ｂ３４を設けるようにしてもよい。
【００６２】
以上で説明した実施例のポリゴンデータ生成システムによれば、指向性ポリゴンの分割時に、いびつな形状やバンク角が大きい三角形ポリゴンの生成を抑制することができる。従って、自然な３次元表示を実現することができる。
【００６３】
実施例では、ハシゴ分割処理（図３のステップＳ２０）の後、バンク評価処理（ステップＳ４０）、標高補正処理（ステップＳ６０）、構成点追加処理（ステップＳ８０）を行うものとしたが、これらの処理の順序は、適宜、変更可能である。例えば、予め標高補正処理を施した上で、ハシゴ分割処理を行うようにしてもよい。また、バンク角の評価結果に関わらず標高補正処理を施すようにしてもよい。バンク評価処理、標高補正処理、構成点追加処理の少なくとも一部を省略してもよい。
【００６４】
Ｄ．変形例：
図９は変形例としてのハシゴ分割処理のフローチャートである。ポリゴンデータ生成処理（図３）のステップＳ２０に相当する処理である。ＣＰＵは、正規化データを入力する（ステップＳ２１）。次に、各構成点につき、長さ最小となる分割線で指向性ポリゴンを分割する（ステップＳ２７）。但し、分割線同士が交差する場合には、より短い側の分割線を採用する。この処理を、四角形ポリゴンが存在しなくなるまで（ステップＳ２８）、繰り返し実行する。
【００６５】
図の右側に、変形例におけるハシゴ分割の処理例を示した。Ａ側の点列Ａ１〜Ａ６、Ｂ側の点列Ｂ１〜Ｂ５からなる指向性ポリゴンを分割する場合を示す。まず、構成点Ａ１、Ｂ１については、最短の分割線Ａ１−Ｂ１が求められる。構成点Ａ２については、Ａ２−Ｂ１、Ａ２−Ｂ２のうち短い方である分割線Ａ２−Ｂ１が設定される。以下、同様にして、図示するそれぞれの分割線が設定される。
【００６６】
この状態では、ポリゴンＢ１、Ａ２、Ａ３、Ｂ２など、四角形ポリゴンが存在する。従って、次に下段の通り、再度、分割処理を進める。ステップＳ２７では、分割線同士が交差する場合には、より短い側を採用するという条件を付しているため、四角形ポリゴンについては、結局、対角線同士を比較し、短い側を分割線として採用する処理を行うことになる。四角形ポリゴンＢ１、Ａ２、Ａ３、Ｂ２については、２本の対角線のうち短い方である分割線Ａ２−Ｂ２が採用される。以下、同様にしてそれぞれの四角形ポリゴンについて、破線で示す分割線が設定される。この結果、四角形ポリゴンは存在しなくなるので、ハシゴ分割処理は完了する。かかる処理によっても、実施例と同様、いびつな形状やバンク角が大きい三角形ポリゴンの生成を抑制することができる。
【００６７】
以上、本発明の種々の実施例について説明したが、本発明はこれらの実施例に限定されず、その趣旨を逸脱しない範囲で種々の構成を採ることができることはいうまでもない。
【図面の簡単な説明】
【００６８】
【図１】実施例としてのポリゴンデータ生成システムの全体構成を示す説明図である。
【図２】指向性ポリゴンデータ２０２の構造を示す説明図である。
【図３】ポリゴンデータ生成処理のフローチャートである。
【図４】ハシゴ分割処理のフローチャートである。
【図５】バンク評価処理のフローチャートである。
【図６】標高補正処理の方法を示す説明図である。
【図７】標高補正処理のフローチャートである。
【図８】構成点追加処理のフローチャートである。
【図９】変形例としてのハシゴ分割処理のフローチャートである。
【図１０】従来技術における三角形ポリゴンの生成方法を示す説明図である。
【符号の説明】
【００６９】
１００…端末
１０２…コマンド入力部
１０４…データ入出力部
１０６…地図表示部
１１０…分割制御部
１１２…ハシゴ分割部
１１４…バンク評価部
１１６…標高補正部
２０２…指向性ポリゴンデータ
２０４…航空写真データ
２１０…３次元地図ＤＢ
２１２…地表面ポリゴンデータ
２１４…地物ポリゴンデータ
【図１】
2006010823.tif 000003
【図２】
2006010823.tif 000004
【図３】
2006010823.tif 000005
【図４】
2006010823.tif 000006
【図５】
2006010823.tif 000007
【図６】
2006010823.tif 000008
【図７】
2006010823.tif 000009
【図８】
2006010823.tif 000010
【図９】
2006010823.tif 000011
【図１０】
2006010823.tif 000012