(57)【要約】【課題】  地図データにおいて複数の線分で囲まれた閉領域に対応するポリゴンを効率的に特定する。【解決手段】  道路を表す線分Ｌ１〜Ｌ５等を含む地図データを読み込む。ユーザが表示された地図上で指定点ＰＰを指定すると、この指定点ＰＰの周囲に存在する線分Ｌ１〜Ｌ４で取り囲まれる領域に対応するポリゴンを以下の手順で生成する。まず、指定点ＰＰを中心として放射状線分ＲＬ１〜ＲＬ１０を描き、各線分ＲＬ１〜ＲＬ１０と指定点ＰＰに近い場所で交差する線分Ｌ１〜Ｌ４を地図データから抽出する。そして、抽出された線分同士の交点を求めることにより、指定点ＰＰを取り囲むポリゴンを生成する。こうすることにより、ポリゴンの構成線分を効率的に指定することができ、ポリゴンの生成の効率化を図ることができる。【選択図】  図４
2006293809.tif 000002
【特許請求の範囲】
【請求項１】
複数の線を表すデータを含む図形データを処理する図形データ処理装置であって、
前記図形データを入力する入力部と、
前記図形データ上の任意の指定点の指定を受け付ける指定点入力部と、
前記指定された指定点を中心として放射状に延びる複数の放射状線分を表すデータを生成する放射状線分生成部と、
前記図形データで表される線のうち、前記放射状線分のそれぞれに対し前記中心に最も近い位置で交差する線を抽出し、前記指定された指定点を取り囲む閉図形を構成すべき線群として特定する線群特定部とを備える図形データ処理装置。
【請求項２】
請求項１記載の図形データ処理装置であって、
前記特定された線群に含まれる線同士の交点を頂点とするポリゴンを生成するポリゴン生成部を備える図形データ処理装置。
【請求項３】
請求項１または２記載の図形データ処理装置であって、
前記放射状線分生成部は、所定の条件に基づき、前記放射状線分の長さおよび間隔の少なくとも一方が可変である図形データ処理装置。
【請求項４】
請求項１〜３いずれか記載の図形データ処理装置であって、
前記線群特定部によって特定された複数の線分群同士または閉図形をグループ化して管理するグループ管理部を備える図形データ処理装置。
【請求項５】
請求項１〜４いずれか記載の図形データ処理装置であって、
任意の補助線を表すデータを、前記図形データに追加する追加部を有し、
前記線群特定部は、前記追加された補助線を含めて、前記抽出を行う図形データ処理装置。
【請求項６】
請求項１〜５いずれか記載の図形データ処理装置であって、
前記図形データは、線状に配置された記号または図形を含んでおり、
前記記号または図形の位置に基づいて、前記記号または図形に沿う配置線を設定する配置線設定部を有し、
前記線群特定部は、前記配置線を含めて、前記抽出を行う図形データ処理装置。
【請求項７】
請求項１〜６いずれか記載の図形データ処理装置であって、
前記図形データは複数のレイヤを含むと共に、複数の線がそれぞれ、いずれかのレイヤに対応づけられたデータ構造であり、
前記線群特定部による抽出処理の対象となるレイヤの指定を受け付けるレイヤ指定入力部を有し、
前記線群特定部は、前記指定されたレイヤに含まれる複数の線を対象として、前記抽出を行う図形データ処理装置。
【請求項８】
請求項１〜７いずれか記載の図形データ処理装置であって、
前記図形データは地図データである図形データ処理装置。
【請求項９】
複数の線を表すデータを含む図形データを処理する図形データ処理方法であって、
コンピュータが実行すべき工程として、
前記図形データを入力する入力工程と、
前記図形データ上の任意の指定点の指定を受け付ける指定点入力工程と、
前記指定された指定点を中心として放射状に延びる複数の放射状線分を表すデータを生成する放射状線分生成工程と、
前記図形データで表される線のうち、前記放射状線分のそれぞれに対し前記中心に最も近い位置で交差する線を抽出し、前記指定された指定点を取り囲む閉図形を構成すべき線群として特定する線群特定工程とを備える図形データ処理方法。
【請求項１０】
複数の線を表すデータを含む図形データを処理するコンピュータプログラムであって、
前記図形データを入力するための入力プログラムコードと、
前記図形データ上の任意の指定点の指定を受け付ける指定点入力プログラムコードと、
前記指定された指定点を中心として放射状に延びる複数の放射状線分を表すデータを生成する放射状線分生成プログラムコードと、
前記図形データで表される線のうち、前記放射状線分のそれぞれに対し前記中心に最も近い位置で交差する線を抽出し、前記指定された指定点を取り囲む閉図形を構成すべき線群として特定する線群特定プログラムコードとを備えるコンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数の線を表すデータを含む図形データから、閉図形を構成すべき線を特定する処理に関する。
【背景技術】
【０００２】
地図データを用いて、コンピュータ等で地図を表示するシステムが普及している。地図データは、建造物その他の地物や道路などを線分、折れ線、ポリゴンなどで描画するためのデータを含んでいる。線分、折れ線、ポリゴン等は、通過点や頂点を緯度経度等の座標値で表した点列で定義されている。
【０００３】
地図データは、上述の座標値を用いることにより、地図表示のみならず、２点間の距離または道のりの計測や、家枠、田畑、行政界その他の閉図形で表される領域の面積の計測などにも活用される。ただし、面積を計測する場合には、必ずしも計測対象となる閉図形が単一のポリゴンで表されているとは限らない。かかる場合には、計測対象となる閉図形を構成する線分を何らかの方法で指定する必要がある。計測対象となる閉図形が多大にある場合、閉図形を構成する線分をユーザが逐一、手作業で指定するのは、非常に煩雑な作業となるため、自動化が望まれている。
【０００４】
特許文献１および特許文献２は、上述の線分を次の手順で自動的に指定する技術を開示する。まず、表示された地図上で、ユーザは、計測対象となる閉図形内の任意の代表点をマウス等で指定する。コンピュータは、この代表点から予め指定された方向に線分を描画し、この線分と最初に交差する地図上の線分を特定する。次に、この線分に沿って着目点を順次移動させて行き、代表点から見て時計回り方向に進行可能な向きに交差する次の線分、即ち線分の左側に伸びる線分を探索する。こうして、最初の線分に戻ってくるまで、着目点を移動させながら、順次、交差する線分を探索する。
【０００５】
【特許文献１】特開平１１−１２０３３２号公報
【特許文献２】特開２００３−２９５７６４号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
地図データに含まれている線分は、全てが閉図形を構成しているとは限らない。例えば、表示上は地点で接続されているように見える２本の線分の端点が、微視的には離れていることがある。従来技術では、かかる場合には閉図形を特定することができなかった。
【０００７】
また、地図データには、種々の地図記号が描かれている。これらの中には、斜面、盛り土など一定の記号や図形が線状に配置されているものがある。面積の計測は、必ずしも明示的に描かれた線分で特定される領域のみならず、これらの地図記号で描かれた内側など明示的に線分が特定されていない領域についても要望されることがある。従来技術では、かかる場合にも閉図形を特定することができなかった。
【０００８】
これらの課題は、地図データ以外にも線分で描かれた種々の図形データで同様に生じ得る。また面積の計測に限らず、閉図形内の塗りつぶし処理など、図形データに含まれる線で特定される閉図形に対する種々の処理において同様に生じうる。更に、閉図形が、線分で構成されるものに限らず、折れ線や曲線で構成される場合も同様に生じうる。本発明は、これらの課題に鑑み、図形データにおいて閉図形を構成する線を自動的に特定する際の効率、精度、柔軟性の少なくとも一部を向上させることを目的とする。
【課題を解決するための手段】
【０００９】
本発明は、複数の線を表すデータを含む図形データを処理する図形データ処理装置として構成することができる。図形データとしては、地図データ、ＣＡＤデータ、ドローソフトで描かれた画像データなどを対象とすることができ、そこに含まれる線は、線分、折れ線、曲線のいずれでもよい。図形データ処理装置は、上述の図形データを入力し、図形データ上の任意の指定点の指定を受け付ける。指定点の指定は、例えば、図形データに基づいて表示された画像上の一点を、マウスその他のポインティングデバイスで指定する方法や、座標値入力など種々の方法を採ることができる。
【００１０】
図形データ処理装置は、こうして指定された指定点を中心として放射状に延びる複数の放射状線分を表すデータを生成する。そして、図形データで表される線のうち、放射状線分のそれぞれに対し中心に最も近い位置で交差する線を抽出し、指定された指定点を取り囲む閉図形を構成すべき線群（以下、「閉図形の構成線群」または単に「構成線群」と称する）として特定する。こうすることにより、線の端点同士が微視的にずれている場合でも、指定点を取り囲む閉図形の構成線群を効率的に抽出することができる。
【００１１】
図形データ処理装置は、更に後処理として、構成線群に含まれる線同士の交点を頂点とするポリゴンを生成するようにしてもよい。こうすれば、ポリゴン内の面積の計測やポリゴン内の塗りつぶしなど、図形データに対する多様な処理を円滑に行うことができる。隣接する線の端点が離れている場合には、交点は、これらの線同士を相互に延長して求めることができる。
【００１２】
交点を求める対象となる線は、例えば、隣接する放射状線分と交差している線とすることができる。こうすることにより、閉形状の対向する二辺の交点を求めるというような不適切な処理が生じる可能性を抑制でき、複雑な形状の閉形状であっても適切に認識可能となる。
【００１３】
ポリゴンは、交点を求める方法に限らず、例えば、線の端点同士を結んで定義するようにしてもよい。また、隣接する線同士が一点で接続している場合、または交差している場合には、その接続点または交点をポリゴンの頂点とし、離れている場合には線の端点を頂点としてもよい。もちろん、図形データ処理装置は、ポリゴンを生成することなく、単に構成線群として関連づけて管理するだけであっても良い。
【００１４】
放射状線分は、所定の条件に基づき、長さおよび間隔の少なくとも一方を可変とすることが好ましい。放射状線分の長さおよび間隔（以下、これらの変数を「放射状態パラメータ」と称する）は、閉形状の構成線分の抽出精度に影響を与えるため、これらを可変とすることにより、抽出精度を向上させることができる。放射状態パラメータは、放射状線分の全てについて均等に変化させるようにしてもよいし、不均等に変化させるようにしてもよい。放射状態パラメータは、ユーザが指定するようにしてもよいし、自動的に変化するようにしてもよい。
【００１５】
後者の態様としては、抽出精度が向上する方向、即ち長さを増大し、間隔を狭める方向に予め決められた態様で段階的に変化させる方法を採ることができる。例えば、閉図形の構成線群の抽出結果に対して、従前の長さを一定比率または所定長さだけ増大させ、間隔を一定比率または所定角度だけ狭めるようにする方法を採ることができる。放射状パラメータの自動変化は、ユーザによる再試行指示をトリガとして行うようにしてもよいし、抽出された線同士の交点が得られないとか、指定点から極端に離れた点となるなど、処理上の不適切な結果が得られたことをトリガとして行うようにしてもよい。
【００１６】
図形データ処理装置は、複数の線分群同士または閉図形をグループ化して管理可能としてもよい。こうすることで、グループ化された複数の閉図形の合計面積を計測する処理、複数の閉図形を同じパターンで塗りつぶす処理など、複数の閉図形にわたって施すべき処理が比較的容易に実現可能となる。グループ化すべき閉図形は、ユーザが逐一指定するようにしてもよいし、「隣接する閉図形同士をグループ化する」などのように所定の条件に従って自動的に特定するようにしてもよい。
【００１７】
図形データには、任意の補助線を表すデータを追加可能としてもよい。この場合には、追加された補助線を含めて構成線群の抽出を行うことが望ましい。こうすることにより、ユーザが図形を分割して任意に設定した閉図形に対する構成線群を抽出することが可能となり、処理の柔軟性を向上させることができる。
【００１８】
補助線追加が有効に作用する例を示す。閉図形には、全ての対角線が辺と交差しない形状（「凸形状」と称する）とそうでない形状（「凹形状」と称する）とがある。凸形状でない閉図形（すなわち凹図形）では、指定点の位置によっては、放射状線分が閉図形の一部の構成線と交わらなくなる場合が生じ得るため、全構成線を抽出できなくなるおそれがある。かかる場合には、補助線を追加可能とすることにより、ユーザは処理対象となる閉図形を任意の凸形状、または全構成線を抽出可能な凹形状に分割することができ、分割後の形状ごとに構成線群を抽出することができる。従って、一組の放射状線分では全構成線を抽出不能な凹形状についても、面積の計測、塗りつぶしなどの処理を効率的に行うことが可能となる。
【００１９】
これらの処理を更に効率的に実行可能とするため、生成された複数の形状をグループ化の対象としてもよい。この場合には、ユーザが分割後の各形状を指定するようにしてもよいし、補助線に隣接する形状同士を自動的にグループ化するようにしてもよい。
【００２０】
図形データには、線状に配置された記号または図形を含む場合がある。例えば、地図データにおいては盛り土など線状に分布する領域を表す地図記号が該当する。他の画像データではハッチングなどが該当する。図形データ処理装置は、これらの記号または図形の位置に基づいて、記号または図形に沿う配置線を設定し、この配置線を含めて閉図形の構成線群を抽出可能としてもよい。こうすることにより、特定される閉図形の対象を選択する柔軟性が向上する。
【００２１】
配置線の設定には、種々の方法を用いることができる。例えば、線状に配置されている各記号または図形ごとに代表点を予め定義しておき、この代表点を結ぶ折れ線または曲線として配置線を設定する方法を採ることができる。
【００２２】
図形データは複数のレイヤから構成されることがある。この図形データに含まれる複数の線は、それぞれいずれかのレイヤに対応づけられている。線とレイヤの対応付けは、例えば、線種や線の意味などに基づいて決めることができる。図形データがかかるデータ構造を採る場合には、図形データ処理装置は、レイヤの指定を受け付け可能とし、指定されたレイヤに含まれる複数の線を対象として閉図形の構成線群の抽出を行うようにしてもよい。こうすることにより、レイヤ単位で処理対象となる線を取捨選択することができ、ユーザが所望する閉図形をより効率的に特定可能となる。
【００２３】
先に説明した通り、本発明は、種々の図形データを対象とすることができ、特に地図データに対する有用性が高い。第１に、地図データを活用する態様として、多種多様な閉図形を対象とする面積計測や塗りつぶしなどの要望が多いからである。地図データにおいてこれらの処理を施す対象となる閉図形は、例えば、家枠などの地物、区字や市町村などの行政界のように、重畳的に存在する場合がある。また、周囲が盛り土となっている土地については、盛り土の内側の実質的に利用可能な領域が面積計測の対象となることもあれば、盛り土の外側まで含む所有地が面積計測の対象となることもある。このように地図データにおいては、面積計測等の対象となる閉図形の定義は多様である。
【００２４】
第２に、地図データは、幾何学的な図形で構成されるものではなく、航空写真や測量結果などに基づいてオペレータが手作業で入力等して生成するものであるため、閉図形と見える箇所でも微視的には構成線同士が離れていることが生じやすい。これらの理由に基づき、本発明は地図データを用いた処理に適しており、地図データを対象とすることによって、実用上要望される種々の処理の効率化を図ることが可能となる。
【００２５】
本発明は、上述した種々の特徴を必ずしも全て備えている必要はなく、一部を省略したり、適宜一部を組み合わせたりして構成してもよい。また、本発明は、図形データ処理装置としての態様の他、コンピュータによって上述の図形データ処理を実現する図形データ処理方法として構成してもよい。更に、かかる処理を実現するためのコンピュータプログラムや、このコンピュータプログラムを記録した記録媒体として構成してもよい。ここで、記録媒体としては、フレキシブルディスクやＣＤ−ＲＯＭ、光磁気ディスク、ＩＣカード、ＲＯＭカートリッジ、パンチカード、バーコードなどの符号が印刷された印刷物、コンピュータの内部記憶装置（ＲＡＭやＲＯＭなどのメモリ）および外部記憶装置等、コンピュータが読取り可能な種々の媒体を利用できる。
【発明を実施するための最良の形態】
【００２６】
本発明の実施例について、地図データ処理装置を例にとって、以下の順序で説明する。
Ａ．機能概要：
Ｂ．装置構成：
Ｃ．ポリゴン生成処理の原理：
Ｄ．処理内容：
Ｄ１．パラメータ設定処理：
Ｄ２．レイヤ選択処理：
Ｄ３．補助線登録処理：
Ｄ４．線分変換処理：
Ｄ５．ポリゴン生成処理：
Ｅ．変形例：
Ｅ１．ポリゴン形状設定方法の変形例：
Ｅ２．ポリゴン生成処理の変形例：
【００２７】
Ａ．機能概要：
図１は実施例としての地図データ処理装置の機能概要を示す説明図である。本実施例の地図データ処理装置は、予め用意された地図データに基づき、コンピュータのディスプレイ等の表示装置に地図を表示する。図１では、この地図表示例を示した。図示する通り、地図には、道路等を表す種々の線分、折れ線、曲線（以下、これらを総称して「線分」と称する）や、地図記号が表示されている。
【００２８】
ユーザがこの地図中の一点、例えば点Ｐをマウス等のポインティングデバイスで指定する（ユーザから指定される点を、以下、「指定点」と称する）。地図データ処理装置は、指定点Ｐを取り囲む線分を地図上から抽出し、これらの線分同士の交点を求めることにより、指定点Ｐを囲むポリゴンＡ１を求める。そして、このポリゴンＡ１の面積を計測し、ポリゴン形状のデータとともに、データベースに格納する。
【００２９】
地図データ処理装置の主機能は、上述の通りであるが、ポリゴンを生成する対象となる領域は、必ずしも図中のポリゴンＡ１のように単一種類の線分で明示的に囲まれた領域とは限らない。例えば、図中の右方に示した領域Ａ２、Ａ３を考える。領域Ａ３は周囲を道路に囲まれた領域である。この中には、斜面を表す地図記号Ｍ１が記載されている。領域Ａ２は、斜面でない部分、即ち領域Ａ３の中で実用可能な部分を表している。かかる場合、土地の所有範囲が問題となる時には、領域Ａ３の面積を計測する必要が生じる。一方、土地の利用可能な面積が問題となる時には、領域Ａ２の面積を計測する必要が生じる。領域Ａ２の一部は、地図記号Ｍ１で表されるため、全周を明示的に区画する線分は地図上には存在していない。地図データ処理装置は、かかる場合には、地図記号Ｍ１に基づき、領域Ａ２を区画する線分（以下、「配置線」と称する）を生成することで、領域Ａ２を表すポリゴンを設定することができる。
【００３０】
地図データ処理装置は、上述の機能を実現する際の種々の条件を設定する設定機能も有している。これらの諸機能については、具体的な処理内容と共に、順次説明する。
【００３１】
Ｂ．装置構成：
図２は地図データ処理装置の構成を示す説明図である。本実施例では、地図データ処理装置１０は、汎用のパーソナルコンピュータに地図データ処理用のコンピュータプログラムをインストールすることで実現した。図中に、地図データ処理装置１０の機能を実現するための機能ブロックを併せて示した。本実施例では、上述の通り、各機能ブロックは、パーソナルコンピュータのＣＰＵがコンピュータプログラムを実行することによってソフトウェア的に構成される。もっとも、これらの機能ブロックの少なくとも一部をハードウェア的に構成しても構わない。また、パーソナルコンピュータを用いることなく、専用の装置として構成してもよい。
【００３２】
各機能ブロックは、主制御部２０の制御下で、以下に示すそれぞれの機能を実現する。各機能ブロックの処理過程で得られる中間的な処理データは、主制御部２０がパーソナルコンピュータ内に設けられたメモリ領域に、中間データ４６として格納し、管理している。
【００３３】
コマンド入力部２２は、マウスやキーボードなどのデバイスを通じて、ユーザから指定されるコマンドを入力し、主制御部２０に受け渡す。地図データ処理装置で入力されるべきコマンドの内容は、処理内容と共に後述する。
【００３４】
表示制御部２６は地図データ処理装置１０のディスプレイその他の表示装置の表示内容を制御する。表示される画面としては、コマンドを入力するための入力用のウィンドウ、地図および生成されたポリゴンを表示するためのウィンドウなどが挙げられる。表示画面の具体例は、後で示す。
【００３５】
ポリゴン生成部３０は、図１で説明した主機能、即ち地図データに基づいて指定点を取り囲むポリゴンを生成する機能を奏する。生成されたポリゴンデータは、ポリゴン管理部４２によって管理される。本実施例では、ポリゴン管理部４２は、パーソナルコンピュータに内蔵されたハードディスク内に、図示する形式でポリゴンデータを格納、管理するものとした。ポリゴンデータの格納先としては、パーソナルコンピュータにローカルまたはネットワーク経由で接続されたハードディスク、サーバなどを用いてもよいし、光磁気ディスクその他の記録媒体を用いるようにしてもよい。
【００３６】
ポリゴンデータには、それぞれのポリゴンに一義的に付与されるポリゴン番号（図中の「ＰｏｌＮｏ．」）、およびポリゴン同士を関連づけるグループ番号（図中の「ＧｒＮｏ．」）が付与される。グループ番号を付与することにより、同一グループのポリゴンの総面積を計測する処理など、グループ単位での処理を効率的に施すことが可能となる。図中の例では、ポリゴン番号１，３の２つのポリゴンが同一の「グループ１」として扱われることになる。グループ番号は、省略することも可能である。例えば、グループ化すべきポリゴンが相互に隣接するポリゴンに限られる場合には、グループ化に代えて、これらのポリゴンを結合したポリゴンを新たに生成し、管理するようにしてもよい。こうすることにより、ポリゴン管理部４２にグループ番号を保持する必要がなくなり、データ構造の簡素化、およびデータ量の低減を図ることが可能となる。
【００３７】
ポリゴン形状としては、それぞれのポリゴンを形成する各頂点の緯度経度からなる２次元座標が記録される。図中の例では、例えば、ポリゴン番号１に対しては、（Ｌａｔ１１，Ｌｏｎ１１）、（Ｌａｔ１２，Ｌｏｎ１２）などの点列が記録されている。座標は緯度経度に限らず、Ｘ軸Ｙ軸からなる直交座標など種々の座標系を用いて定義することができる。本実施例では、更に、各ポリゴンについて、面積、および宅地、農地などの種別を記録するものとした。これらの情報は省略してもよい。また、ポリゴンデータには、ここに例示した以外の情報を併せて記録するようにしてもよい。
【００３８】
地図データ入力部２４は、ポリゴン生成等の処理に用いる地図データ４４を入力する。本実施例では、地図データ４４は、パーソナルコンピュータ内のハードディスクに格納しておくものとした。地図データ４４は、かかる態様に限らず、ローカルまたはネットワークを介して接続されたハードディスク、サーバなどから供給するようにしてもよいし、ＣＤ−ＲＯＭその他の記録媒体によって提供するようにしてもよい。
【００３９】
本実施例の地図データ４４は、後述する通りレイヤ構造、即ち道路、地物等のデータをそれぞれ複数のレイヤに分けて管理したデータ構造をなしている。地図データ入力部２４は、これらのうち処理に要求される対象レイヤのみを選択して入力する。入力すべき対象レイヤは、ユーザによる設定値が、処理パラメータ管理部４０に保持されている。
【００４０】
線分変換部３２は、斜面などの地図記号（図１中の記号Ｍ１参照）を、ポリゴン生成処理に適した線分に変換する機能を奏する。変換処理に必要となる諸量は、地図記号ごとにパターンデータとして、処理パラメータ管理部４０に保持されている。パターンデータの内容については、処理内容と併せて後述する。
【００４１】
補助線管理部３４は、ポリゴン生成の前処理として指定される補助線の登録、管理を行う。地図上には、ポリゴン生成に必ずしも適さない形状が含まれることがある。補助線とは、かかる形状を、ポリゴン生成に適した形状に分割するためにユーザによって指定される線分である。指定された補助線のデータは、処理パラメータ管理部４０に保持されている。
【００４２】
放射状線分生成部３６は、ポリゴン生成の処理過程で、用いられる放射状線分を生成する機能を奏する。放射状線分とは、ユーザによって指定された指定点を中心として、予め設定された長さおよび間隔で放射状に伸びる線分群を言う。放射状線分を生成するための長さ、間隔等のパラメータ（以下、「放射状態パラメータ」と称する）は、処理パラメータ管理部４０に保持されている。
【００４３】
図３は地図データのレイヤ構造を示す説明図である。最上方の地図Ｍは、全レイヤを重ねた状態を示している。レイヤＬ１は地図中に示されたＤＥＦ市と隣接する市との行政界が表されたレイヤである。レイヤＬ２は地図中の道路を表すレイヤである。レイヤＬ３は等高線を表すレイヤである。このように地図データは、種々のレイヤの階層構造をなしている。かかる構造を有することにより、例えば、行政界レイヤＬ１を非表示とすれば、行政界のみを消去した状態の地図を表示させることができる。本実施例では、レイヤの選択により、ポリゴン生成に無用な線分を処理対象外とし、ポリゴン生成処理の効率化を図っている。
【００４４】
図３に示したのはレイヤ構造の一例に過ぎず、地図データはこの他、種々のレイヤ構造を採ることができる。例えば、道路を更に国道、県道などの道路種別によって複数のレイヤに分けて管理するようにしてもよい。また、地図データは、必ずしも複数階層のレイヤ構造を採る必要はなく、単一のレイヤで全データを管理するようにしても構わない。
【００４５】
Ｃ．ポリゴン生成処理の原理：
図４はポリゴン生成処理の原理を示す説明図である。図中には、地図データに含まれる道路線分の一例を拡大して示した。図中の太い実線がそれぞれ道路の側線を表している。側線には、２つの端点を結ぶ線分（例えば、それぞれ端点Ｎ１１、Ｎ１２、Ｎ２１、Ｎ２２、Ｎ３１、Ｎ３２を結ぶ線分Ｌ１〜Ｌ３）もあれば、側線Ｌ４のように複数の点列Ｎ４１，Ｎ４２，Ｎ４３，Ｎ４４を経由する折れ線もある。図示してはいないが、曲線を含めても良い。以下では、説明の煩雑化を回避するため、特に断らない限り、これらの線分、折れ線、曲線を含め「線分」と総称する。
【００４６】
表示された地図では一点で接続されているように見える場合であっても、交差点において道路の側線間には微小な隙間が空いていることがある。図中破線で囲んだ領域Ａ１２、Ａ２３、Ａ３４に、それぞれ側線Ｌ１、Ｌ２、Ｌ３、Ｌ４の間に隙間が空いている例を示した。逆に、交差点では図中の領域Ａ４１のように、側線同士が交差していることもある。
【００４７】
本実施例の地図データ処理装置は、このように線分間に、隙間や交差箇所を含んでいる地図データに基づき、ユーザに指定された指定点ＰＰを取り囲むポリゴンを次の手順で生成する。まず、地図データ処理装置は、指定点ＰＰを中心とする放射状線分ＲＬ１〜ＲＬ１０を生成する。図中では、等角度間隔で１０本の線分群を生成した例を示した。放射状線分を生成する長さおよび間隔は可変である。
【００４８】
次に放射状線分ＲＬ１〜ＲＬ１０のそれぞれと交差する線分を抽出する。交差する線分が複数存在する場合には、指定点ＰＰに最も近いものを選択する。例えば、図の例では、放射状線分ＲＬ１については、線分Ｌ１、Ｌ５の２本が交差しており、そのうち、指定点ＰＰに近い線分Ｌ１が選択されることになる。以下、同様にして、放射状線分ＲＬ１〜ＲＬ１０のそれぞれにつき、線分Ｌ１〜Ｌ４が選択されることになる。これらの線分Ｌ１〜Ｌ４は、指定点ＰＰを取り囲むポリゴンの周囲を構成する線分となる。この意味で、放射状線分に基づいて抽出された線分Ｌ１〜Ｌ４を、「構成線分」と称する。
【００４９】
地図データ処理装置は、次に構成線分間の交点を順次求める。例えば、領域Ａ４１に示すように、線分Ｌ１、Ｌ４ついては既に交差しているため、特別な処理を施すまでなく交点ＩＳ４１が求まる。領域Ａ３４に示すように、交差していない線分Ｌ３、Ｌ４については、それぞれの線分を延長することで交点ＩＳ３４が求まる。領域Ａ２３に示すように、一方の線分Ｌ３のみを延長することで、他方の線分Ｌ２上に交点ＩＳ２３が求まる場合もある。また、領域Ａ１２に示すように、一方の線分Ｌ２を延長することで、他方の線分Ｌ１の端点Ｎ１２が交点となる特殊なケースもある。
【００５０】
ポリゴンは、構成線分Ｌ１〜Ｌ４の端点または経由点、および交点によって定義される。領域Ａ４１、Ａ２３に示すように、交点が構成線分上にある場合には、その構成線分の端点はポリゴンの頂点から外すようにしてもよい。つまり、領域Ａ４１では、線分Ｌ４、Ｌ１の上に交点があるため、端点Ｎ４４、Ｎ１１をポリゴンの頂点から外すことになる。領域２３では、線分Ｌ２上に交点があるため、端点Ｎ２２をポリゴンの頂点から外すことになる。
【００５１】
Ｄ．処理内容：
図５はメインループのフローチャートである。地図データ処理装置として、図４で説明した原理に基づき、ポリゴンの生成処理を実現するために要求される種々の処理である。図２に示した主制御部２０が実行する処理に相当し、ハードウェア的にはパーソナルコンピュータのＣＰＵが実行する処理である。
【００５２】
メインループは、ユーザが地図データ処理装置用のプログラムを起動することで、開始される。ＣＰＵは、処理を開始すると、まずメニュー画面を表示し、メニューの選択結果を入力する（ステップＳ１０）。次に、メニューの選択結果に応じて、図示するそれぞれの処理を実行し、再びメニューの選択処理に戻る。「終了」が選択された場合には、メインループを終了する。
【００５３】
メニューにおいて、「設定」が選択された場合、ＣＰＵは「パラメータ設定処理」を実行する（ステップＳ１００）。これは、図４で示した放射状線分を生成するための長さ、間隔等のパラメータ（以下、「放射状態パラメータ」と称する）を設定する処理である。処理内容については後述する。
【００５４】
メニューにおいて、「階層設定」が選択された場合、ＣＰＵは「レイヤ選択処理」を実行する（ステップＳ２００）。これは、図３で示した地図データのレイヤ構造のうち、ポリゴン生成処理で用いるべきレイヤを指定するための処理である。処理内容については後述する。
【００５５】
メニューにおいて、「補助線登録」が選択された場合、ＣＰＵは「補助線登録処理」を実行する（ステップＳ３００）。これは、図２における補助線管理部３４の機能に相当する処理であり、ポリゴン生成に適さない形状を、ポリゴン生成に適した形状に分割するための補助線を登録するための処理である。処理内容については後述する。
【００５６】
メニューにおいて、「線分変換」が選択された場合、ＣＰＵは「線分変換処理」を実行する（ステップＳ４００）。これは、図２で示した線分変換部３２の機能に相当する処理であり、斜面などの地図記号（図１中の記号Ｍ１参照）を、ポリゴン生成処理に適した線分に変換する処理である。処理内容については後述する。
【００５７】
メニューにおいて、「生成」が選択された場合、ＣＰＵは「ポリゴン生成処理」を実行する（ステップＳ５００）。これは、図４で示した原理に従ってポリゴンを生成する処理である。処理内容については後述する。以下、上述の各処理について、具体的な内容を順次詳述する。
【００５８】
Ｄ１．パラメータ設定処理：
図６はパラメータ設定処理のフローチャートである。先に説明した通り、放射状線分（図４参照）の長さおよび間隔などを表す放射状態パラメータを設定するための処理である。
【００５９】
この処理では、ＣＰＵは設定画面を表示し（ステップＳ１０２）、放射状態パラメータの設定値を入力する（ステップＳ１０４）。そして、ユーザが登録を指示した場合には（ステップＳ１０６）、入力された設定値で放射状態パラメータを更新して（ステップＳ１０８）、処理を終了する。ユーザがキャンセルを指示した場合には（ステップＳ１０６）、更新処理をスキップして終了する。
【００６０】
図の右側に、放射状態パラメータの内容を表した。本実施例では、放射状態パラメータとして、探索半径、探索角度の２つの設定値を用いる。探索半径は、放射状線分の長さを規定するパラメータである。図中の例ＥｘＡ、ＥｘＢに示すように、探索半径を小さくすると、放射状線分の長さが短くなる。ポリゴンの構成線分を求めるためには、探索半径は大きい方が好ましい。例ＥｘＢに示すように、探索半径が小さすぎると、構成線分が求まらない場合があるからである。実用上、探索半径の設定値は頻繁に調整する必要はなく、規定の探索半径で構成線分が求められなかった場合に、探索半径を大きくして再試行するという形で用いられることになる。
【００６１】
探索角度は、放射状線分の間隔を規定するパラメータである。図中の例ＥｘＡ中に示すように、等角度間隔で描かれる放射状線分同士の角度Ａｎｇが設定値となる。探索角度を大きくすると、例ＥｘＣに示すように、放射状線分の本数が減ることになる。例ＥｘＣに示すようにポリゴンの構成線分の本数に対して放射状線分の本数が過少の場合には、全構成線分を適切に抽出できないという問題が生じる。また、放射状線分が描かれる角度によっては例ＥｘＣに示すように、構成線分同士の隙間を放射状線分が突き抜けてしまうことによって、構成線分を適切に抽出できなくなる場合もある。その一方で、放射状線分の本数を増大すれば、構成線分を求めるための処理時間が増大するという問題も生じる。実用上、探索角度は頻繁に調整する必要はなく、上述したいずれかの問題がある場合に、試行錯誤的に調整するという形で用いられることになる。
【００６２】
放射状態パラメータは、上述した探索半径および探索角度以外にも種々の設定が可能である。探索半径および探索角度の一方を指定不能としてもよい。また、例えば、探索角度に代えて、放射状線分の本数を用いても良い。本実施例では、図の左右方向を開始線分として等角度間隔で放射状線分を描くようにしているが、開始線分の方向を放射状態パラメータで指定可能としてもよい。このパラメータを変化させることにより、例えば、図ＥｘＡの放射状線分を全体として指定点ＰＰ周りに回転させることができ、指定点ＰＰの真右に構成線分の隙間が空いている場合でも、適切な処理を実現することが可能となる。更に、本実施例では、等角度間隔かつ等しい長さで放射状線分を描くものとしているが、放射状態パラメータとして、不均一な間隔、長さで放射状線分を描画可能な設定値を用いるようにしてもよい。
【００６３】
図７は放射状態パラメータの設定画面例を示す説明図である。地図データ表示装置のディスプレイ上に表示される主画面１００を例示した。この主画面１００において、メニューに用意された設定ボタン１０１を選択すると、放射状態パラメータの設定ウィンドウ１０２が表示される。設定ウィンドウ１０２には、探索半径の入力エリア１０３、および探索角度の入力エリア１０４が設けられている。入力エリア１０３、１０４の一方をクリックして選択した後、数値をキーボードから入力することで、探索半径、探索角度をそれぞれ指定可能である。登録ボタン１０５をクリックすれば、入力エリア１０３、１０４の入力値が登録され、閉じるボタン１０６をクリックすれば入力値の登録がキャンセルされる。
【００６４】
Ｄ２．レイヤ選択処理：
図８はレイヤ選択用の画面例を示す説明図である。主画面２００において、メニューに用意された階層設定ボタン２０１を選択すると、レイヤ選択用の設定ウィンドウ２０２が表示される。設定ウィンドウには、一覧表の形で地図データのレイヤ構造が表示されている。図の例では、具体的には、左列から、階層番号、内容、線色、線幅、線種、ブラシ色、ブラシ種類、表示、透過モード、表示順、ポリゴン構成という内容になっている。「階層番号」は、各レイヤに一義的に付された番号である。「内容」とは大字界面、等高線など、各レイヤが表す内容である。「線色、線幅、線種」とは各レイヤで表示に用いられる線の表示色、幅、および実線、破線等の種別である。「ブラシ色、ブラシ種類」とは各レイヤのポリゴンの塗りつぶし色およびパターンである。
【００６５】
「表示」は各レイヤの表示／非表示の指定である。表示欄２０３のいずれかのセルをクリックし、プルダウンメニューから「表示／非表示」のいずれかを選択することによりレイヤごとに表示するか否かを指定することができる。「透過モード」とは下位層のレイヤの透過表示の可否である。「表示順」とはレイヤの描画順序である。数字が小さいほど、上位のレイヤ、即ち後で描かれるレイヤであることを表している。
【００６６】
「ポリゴン構成」は各レイヤに含まれる線分を、ポリゴンの構成線分の抽出対象とするか否かの指定である。ポリゴン構成欄２０４のいずれかのセルをクリックし、プルダウンメニューから「構成／非構成」のいずれかを選択することによりレイヤごとに構成線分の抽出対象とするか否かを指定することができる。
【００６７】
「表示」および「ポリゴン構成」の指定によって、ポリゴンの生成対象を柔軟に選択することができる。例えば、ポリゴン生成時に全く無用なレイヤについては、「非表示」かつ「非構成」としておけばよい。建造物のレイヤなど、指定点を指定する際に参照にはしたいが、ポリゴンの構成線分からは外したいレイヤについては、「表示」かつ「非構成」と設定すればよい。その他、ポリゴンの生成対象とすべきレイヤについては、「表示」かつ「構成」と設定すればよい。
【００６８】
上述の画面を利用して、各レイヤの表示、ポリゴン構成等を設定した上で、登録ボタン２０５をクリックすると、設定内容が対象レイヤデータとして処理パラメータ管理部４０（図２参照）に登録される。閉じるボタン２０６をクリックすると、登録内容は更新されずにレイヤ選択処理が終了して、設定ウィンドウ２０２が閉じる。
【００６９】
Ｄ３．補助線登録処理：
図９は補助線登録処理のフローチャートである。先に説明した通り、ポリゴン生成の対象となるべき図形を、予めポリゴン生成に適した形状に分割しておくための処理である。
【００７０】
処理を開始すると、ＣＰＵはディスプレイに地図を表示し（ステップＳ３０２）、補助線端点の入力を受け付ける（ステップＳ３０４）。設定画面はパラメータ設定処理（図７）と同様であるため図示を省略した。補助線端点は、ユーザがマウス等で指定する。図７における設定ウィンドウ１０２において、補助線端点の座標を入力可能としてもよい。ユーザが設定画面上の登録ボタンをクリックして、登録を指示すると、ＣＰＵは補助線データを更新する（ステップＳ３０８）。設定画面上の閉じるボタンをクリックすると、設定内容はキャンセルされ、一旦設定した補助線が消去されると共に、再び補助線端点の入力が可能となる（ステップＳ３０４）。補助線登録処理では、ＣＰＵは、ユーザが終了を指示するまで、以上の処理を繰り返し実行する。
【００７１】
図の右側に、補助線の設定方法を例示した。図中に示す実線で描かれた図形Ｆがポリゴンの生成対象となっている場合を考える。図形Ｆは、凹形状、即ちいずれかの対角線が図形外を通過する形状となっている。かかる図形について、指定点ＰＰを図中の位置に指定すると、放射状線分ＲＬ１１は、領域ＡＡに示す通り、線分Ｌ１１、Ｌ１２の２本と交差する。この場合、線分Ｌ１１は構成線分として抽出されるが、線分Ｌ１２は抽出されないため、図形Ｆを正確にポリゴン化することができない。指定点ＰＰの位置を種々変化させても本来、抽出されるべき構成線分の一部は、抽出されずに残される結果となる。このように凹形状では、１回のポリゴン生成処理では、適切なポリゴンが形成できない場合が生じ得る。
【００７２】
補助線はかかる場合に用いることができる。図中の例では、図形Ｆを補助線ＡＬで、図形Ｆ１、Ｆ２の２つに分割しておくのである。この状態で指定点ＰＰを指定すれば、図形Ｆ１は正確にポリゴン化することができる。その後、図形Ｆ２内のいずれかの位置に指定点を再度指定することで図形Ｆ２を正確にポリゴン化することができる。補助線によって分割された２つの図形Ｆ１、Ｆ２は、同じグループ番号（図２参照）を付してグループ化しておくことにより、本来の図形Ｆについてポリゴンを生成したのと、同等の取扱をすることが可能となる。
【００７３】
先に図２で説明した通り、このように分割して処理を行った後、図形Ｆ１、Ｆ２を結合して図形Ｆとして再度定義して、管理するようにしてもよい。かかる態様によれば、グループ番号を省略することができる利点がある。図形Ｆ１、Ｆ２の結合は、両者の頂点の座標を比較し、両者に共通の辺を削除することで行うことができる。
【００７４】
図の例では、図形Ｆの頂点同士を結ぶ状態で補助線ＡＬを設定した例を示した。補助線ＡＬはこのように厳密な対角線とする必要はない。図形Ｆの頂点から離れていたり、図形Ｆの辺と交差していたりしても構わない。本実施例のポリゴン生成の原理（図４参照）によれば、構成線分同士の隙間や交差は、処理に支障を与えないからである。
【００７５】
Ｄ４．線分変換処理：
図１０は線分変換処理のフローチャートである。斜面など線状に配置されている地図記号を、ポリゴン生成で処理可能な線分に変換する処理である。処理を開始するとＣＰＵは、変換対象指定画面を表示し（ステップＳ４０２）、変換対象の指定を入力する（ステップＳ４０４）。この指定画面は、レイヤ選択処理の設定画面（図８参照）と同様であるため図示を省略した。線分変換処理では、レイヤに代えて、変換可能な地図記号が一覧表の形式で表示される。かかる地図記号としては、例えば、切土・盛土などの斜面、崩土などが挙げられる。変換対象指定画面では、図８中の表示／非表示と同様の方法で、一覧表の中から、変換対象とすべき記号を指定することになる。
【００７６】
ＣＰＵは、次に指定された地図記号について、予め処理パラメータ管理部４０（図２参照）に管理されているパターンデータを読み込む（ステップＳ４０６）。図中に、切土・盛土などの斜面、および崩土について、パターンデータの例を示した。これらの記号は、それぞれ独立した線分の集合として構成されている。
【００７７】
パターンデータには、代表点、連結半径が含まれる。代表点とは、記号を変換した線分が通過すべき位置を表すデータである。代表点は、記号形状との相対的な関係で定義される。図中の例において、切土・盛土などの斜面については、記号を構成する各縦線分の中点を代表点に設定した。図中の線分Ｐ１１，Ｐ１２，Ｐ１３，Ｐ１４に付した塗りつぶしの丸印が代表点を表している。
【００７８】
連結半径とは、隣接する記号との接続可否を判定するための基準となる円領域の半径である。図中の例に、線分Ｐ１１、Ｐ１３について、連結半径の円を破線で示した。図から分かる通り、線分Ｐ１１と線分Ｐ１２の代表点の間隔は、連結半径よりも小さい。従って、これらの線分Ｐ１１、Ｐ１２は連続した斜面を表すものと取り扱われ、それぞれの代表点を線分で結ぶことが許容される。これに対し、線分Ｐ１３、Ｐ１４の代表点間の間隔は、連結半径よりも大きい。従って、斜面は、線分Ｐ１３、Ｐ１４の間で途切れているものと扱われ、両者の代表点間を線分で連結することは禁止される。
【００７９】
崩土も同様にして代表点、連結半径が設定されている。図示する通り、崩土については、山形の頂部を有する領域を一つの記号とみなし、この下部の中点に代表点を設定した。図中では、記号Ｐ２１、Ｐ２２、Ｐ２３、Ｐ２４の代表点を塗りつぶしの丸印で示した。また、記号Ｐ２１、Ｐ２３について連結半径に相当する円を破線で示した。これによれば、記号Ｐ２１、Ｐ２２は連続していると判断され、記号Ｐ２３とＰ２４の間では途切れていると判断されることになる。
【００８０】
図の例では、それぞれの記号について、代表点を１点のみ設定した例を示したが、代表点は複数設定してもよい。例えば、切土・盛土については、上述した中点に加えて、線分Ｐ１１の上端、下端をそれぞれ代表点と設定してもよい。
【００８１】
ＣＰＵは、上述したパターンデータの読み込みを完了すると（ステップＳ４０６）、地図データから変換対象として指定された地図記号を抽出し、その代表点を抽出する（ステップＳ４０８）。そして、連結半径内にある代表点同士を順次連結し、線分を生成する。こうして生成された線分を配置線と呼ぶ。
【００８２】
図中に、切土・盛土について、配置線の設定例を示した。塗りつぶした丸印が、ステップＳ４０６で説明した代表点を表している。破線の円Ｃ１、Ｃ２、Ｃ３は、連結半径で描いた円である。この例では、切土・盛土が円Ｃ３のところで途切れることが分かる。従って、代表点同士を結ぶことによって、実線ＬＬ１、ＬＬ４という２本の配置線が求められる。図中には、切土・盛土の上端、下端を代表点として設定した場合の配置線も併せて例示した。これらの代表点を用いることにより、配置線ＬＬ２、ＬＬ３、ＬＬ５、ＬＬ６がそれぞれ求められる。
【００８３】
ＣＰＵは、こうして設定された結果を登録することで、配置線データを更新し（ステップＳ４１２）、処理を完了する。登録に先立って、設定された配置線をディスプレイに表示し、ユーザがそれぞれの配置線についての登録可否、または全体についての登録可否を指定するようにしてもよい。
【００８４】
Ｄ５．ポリゴン生成処理：
図１１はポリゴン生成処理のフローチャートである。図４で説明した原理に基づいてポリゴンを生成する処理である。
【００８５】
処理を開始すると、ＣＰＵはレイヤ設定、放射状態パラメータを読み込む（ステップＳ５０２）。レイヤ設定は、レイヤ選択処理（図８参照）の設定結果、即ち「対象レイヤ」として管理されている設定情報である。放射状態パラメータは、パラメータ設定処理（図６、７参照）の設定結果である。
【００８６】
次に、ＣＰＵは、処理対象となる領域の地図を表示し、グループ番号の入力を受け付ける（ステップＳ５０４）。地図表示では、レイヤ設定に従い、表示／非表示が制御される。グループ番号は、ユーザが任意に指定可能である。既に登録されているポリゴンと同一のグループ番号を入力すれば、この登録済みのポリゴンと、以後の処理で生成されるポリゴンとがグループ化されることになる。
【００８７】
ユーザが地図上の一点をクリックすると、ＣＰＵはその点を指定点として入力し、放射状態パラメータに従って放射状線分を生成する（ステップＳ５０６）。そして、図４で説明した原理に基づいて構成線分を抽出し、交点を算出して、ポリゴン化を行う（ステップＳ５０８）。
【００８８】
ここでは、ポリゴン化の処理手順について図中の例に基づき説明する。まず、ＣＰＵは、放射状線分のいずれか一つを放射状線分［１］として選択し、それに反時計回りに隣接する線分を放射状線分［２］として選択する。図の例で、線分ＲＬ１、ＲＬ２をそれぞれ放射状線分［１］［２］として選択したとする。次に、こうして選択された放射状線分［１］［２］が交差する構成線分をそれぞれ特定する。上述の例では、両者共に線分Ｌ１となる。このように両者が一致する場合には、交点を求める必要はない。
【００８９】
次に、反時計回りに放射状線分を一つずらして同様の処理を行う。つまり、線分ＲＬ２、ＲＬ３が放射状線分［１］［２］として選択される。両者が交差する構成線分は、それぞれ線分Ｌ１、Ｌ２である。このように両者が異なる場合には、その交点を求める。以下、同様に順次、放射状線分［１］［２］をずらしながら、全放射状線分について処理を実行する。もちろん、ポリゴン化は、ここで説明した手順に限らず、種々の手法を適用することが可能である。放射状線分をずらす方向は、反時計回りに限らず、時計回りでも構わない。
【００９０】
以上の処理によってポリゴンが生成されると、ＣＰＵは生成されたポリゴンにハッチングを付して表示する（ステップＳ５１０）。ユーザが登録を指示すると（ステップＳ５１２）、ＣＰＵはポリゴンの面積を計測し、ユーザから種別の入力を受け付け（ステップＳ５１４）、これらのデータを登録してポリゴンデータを更新し（ステップＳ５１６）、処理を完了する。面積計測、および種別の入力は省略しても差し支えない。ユーザがキャンセルを指示すると（ステップＳ５１２）、ＣＰＵは生成されたポリゴンを消去し、グループ番号の入力（ステップＳ５０４）から処理を再開する。指定点の入力から処理を再開してもよい。また、ユーザの判断により、この段階で必要に応じて、放射状態パラメータの変更、補助線の追加登録などを行った上で、ポリゴン生成を再試行するようにしてもよい。
【００９１】
図１２はグループ番号入力の画面例を示す説明図である。主画面５００のメニューとして用意された自動生成ボタン５０１をクリックすると、グループ番号を入力するための入力ウィンドウ５０２が表示される（図１１のステップＳ５０４に相当）。入力ウィンドウ５０２では、ユーザはキーボードからグループ番号を入力することができる。番号を入力した後、登録ボタン５０３をクリックすれば入力したグループ番号でポリゴンの自動生成が開始される（図１１のステップＳ５０６以降の処理に相当）。中止ボタン５０４がクリックされた時は、ＣＰＵは入力ウィンドウ５０２を消去して処理を終了する。
【００９２】
主画面５００では、グループ番号入力を支援するため、既に登録されているポリゴンがグループ番号と共に表示される。図中の右方向に、番号３，３３，５５５と共にハッチングが付されて表示されている領域が、既登録のポリゴンである。この表示により、ユーザはグループ化が必要なポリゴンの番号を容易に指定することが可能となる。グループ番号をキーボードから数値で入力する方法の他、既登録されたポリゴンをクリックすることでそのポリゴンのグループ番号が入力されるようにしてもよい。また、グループ番号を入力することなく登録ボタン５０３をクリックした場合には、新規のグループ番号を自動的に付与するようにしてもよい。
【００９３】
図１３はポリゴン生成処理の画面表示例を示す説明図である。主画面５１０においてユーザが自動生成ボタンをクリックすると、先に説明した通り、ポリゴンの生成が行われる。主画面５１０の右よりの位置に、放射状線分および生成されたポリゴンを表示した。
【００９４】
ポリゴンが生成されると、画面には、登録可否の設定ウィンドウ５１２が表示される（図１１のステップＳ５１０およびＳ５１２に相当）。ユーザがＯＫボタン５１３をクリックすると、ＣＰＵは面積を計測して、種別入力を促した後、データの登録を行う（ステップＳ５１４以降の処理に相当）。ユーザがキャンセルボタン５１４をクリックすると、ＣＰＵは生成されたポリゴンを消去し、再びグループ番号の入力（図１２の画面）を開始する。
【００９５】
以上で説明した実施例の地図データ処理装置によれば、線分間に隙間や交差がある地図データを用いた場合でも、所望する閉領域に対応するポリゴンを比較的容易に生成することができる。また、本実施例では、パラメータ設定処理、レイヤ選択処理、補助線登録処理、線分変換処理を併用することにより（図５参照）、ポリゴンの生成対象を柔軟に指定可能であるとともに、ポリゴン生成時の精度向上を図ることも可能である。もっとも、これらの処理は必ずしも全てを備えている必要はなく、パラメータ設定処理、レイヤ選択処理、補助線登録処理、線分変換処理の少なくとも一部は省略した構成を採ることも可能である。
【００９６】
Ｅ．変形例：
Ｅ１．ポリゴン形状設定方法の変形例：
図１４はポリゴン形状設定方法の変形例を示す説明図である。実施例では、図４に示した通り、構成線分の交点に基づいてポリゴン形状を設定した。変形例では、離れている端点については、単に両者を結ぶことでポリゴン形状を設定する。交差する構成線分の場合には、実施例と同様、両者の交点を求めてポリゴン形状を設定する。
【００９７】
例えば、領域Ａ２３ａに示すように、構成線分Ｌ２，Ｌ３の端点Ｎ２２、Ｎ３１が離れている場合を考える。変形例では、図中に破線で示すように２つの端点Ｎ２２、Ｎ３１を結ぶ。同様に、領域Ａ３４ａに示す状態では、構成線分Ｌ３、Ｌ４の端点Ｎ３２、Ｎ４１を結ぶ。
【００９８】
これに対し、領域Ａ４１に示すように、構成線分Ｌ１，Ｌ４が交差している場合には、実施例と同様、両者の交点ＩＳ４１をポリゴンの頂点とする。領域Ａ１２に示すように、構成線分Ｌ１、Ｌ２の交点が、一方の構成線分の端点（この例では端点Ｎ１２）と一致する場合には、結果として実施例と同じ処理となる。
【００９９】
変形例の方法によれば、構成線分が交差していない場合には、交点を求める演算が省略可能となるため、ポリゴン生成時の処理負荷が軽減され、処理の短縮化を図ることができる利点がある。また、２本の構成線分のなす角度が小さく、両者が平行に近い状態で配置されている時には、構成線分同士の交点が端点から非常に遠くなり、いびつな形状のポリゴンが設定されるおそれがあるが、変形例の処理では、このようないびつな形状を回避することができる利点がある。
【０１００】
Ｅ２．ポリゴン生成処理の変形例：
図１５はポリゴン生成処理の変形例のフローチャートである。実施例における図１１に代わる処理である。実施例では、グループ番号の入力、放射状態パラメータの変更、補助線の追加などをユーザの判断で行う例を示したが、変形例では、これらを極力自動化した例を示す。
【０１０１】
処理が開始されると、ＣＰＵはレイヤ設定、放射状態パラメータを読み込み、地図を表示する（ステップＳ５５０）。これらの処理については、実施例（図１１）のステップＳ５０２、Ｓ５０４と同様である。ただし、グループ番号の入力は不要である。
【０１０２】
次に、ＣＰＵは指定点の入力を受け付け、３通りの探索角度でポリゴン化を行う（ステップＳ５５２）。実施例（図１１）のステップＳ５０８で説明したポリゴン化処理を、放射状態パラメータのうち探索角度を３通りに変化させて、３回繰り返し実行するのである。この場合の探索角度は、予めユーザが指定するようにしてもよいし、所定の規則に従って自動的に変化させるようにしてもよい。
【０１０３】
一例として、放射状線分の本数を、「従前に試行した本数と互いに素となる」という条件下で、順次増やしていく方法が挙げられる。例えば、「放射状線分の本数＝１０本」から処理を開始した場合、２回目は１０本と互いに素となる１１本で処理を実行する。３回目は、１０本および１１本と互いに素となる１３本で処理を実行する。こうすることにより、３回の試行で生成される放射状線分の位置が、描き初めの１本（図１１中の線分ＲＬ１）を除き、重複しなくなる。従って、先に図６で説明した弊害、即ち放射状線分の過少や、位置の不適切さによる弊害を回避しやすくなる。
【０１０４】
こうして３通りの探索角度でポリゴン化を行うと、ＣＰＵは非交差放射状線分が有るか否かを判断する（ステップＳ５５４）。非交差放射状線分とは、いずれの構成線分とも交差しない放射状線分を言う。かかる線分が存在する場合には、放射状線分の長さが短すぎることが原因と判断されるため、ＣＰＵは探索半径を増大し（ステップＳ５５６）、ポリゴン化（ステップＳ５５２）を再試行する。
【０１０５】
非交差放射状線分が存在しない場合には（ステップＳ５５４）、３通りの探索角度で得られたポリゴン化の結果を比較する。正確にポリゴン化が行われている場合には、少なくとも２通りの結果は一致しているはずである。従って、３通りの結果が全て相違する場合には（ステップＳ５５８）、ポリゴン化が適切に行われていないものと判断し、ＣＰＵは再度ポリゴン化処理を行う（ステップＳ５５２）。ステップＳ５５８の条件を更に厳しくし、３通りのいずれか１つでも結果が不一致の場合には、ポリゴン化処理を再試行するようにしてもよい。
【０１０６】
再試行時の探索角度は、当初の処理と異なる値を採るようにすることが好ましい。先に説明した「互いに素となる条件」で放射状線分の本数を増大させる場合には、ステップＳ５５８の判断前に実行された本数も含めて、「互いに素となる本数」を設定することが好ましい。
【０１０７】
結果が一致する場合には（ステップＳ５５８）、ＣＰＵは適正処理条件の成否をチェックする（ステップＳ５６０）。適正処理条件とは、補助線による分割要否を判断するための条件である。この条件について、図中の例に沿って説明する。
【０１０８】
図示する凹形状Ｆ１１について、指定点ＰＰを指定して、ポリゴン生成処理を実行した場合を考える。ポリゴン生成時には、図示する通り、指定点ＰＰから放射状線分が描かれ、構成線分として線分Ｌ２１、Ｌ２２が抽出される。ただし、図の例では、放射状線分の一部の線分ＲＬ２１、ＲＬ２２のみを示し、他の放射状線分は図示を省略した。図中に破線で示す部分については構成線分から欠落することになる。この状態でポリゴン化処理を行うと、線分Ｌ２１を延長した線分Ｌ２３と、線分Ｌ２２との交点Ｎａ４がポリゴンの頂点として認識されることになる。
【０１０９】
変形例では、交点を求める対象となった構成線分同士の端点間の最小距離が所定の閾値Ｔｈを超えないことを適正処理条件として用いる。図の例では、線分Ｌ２１の端点Ｎａ１と、線分Ｌ２２の端点Ｎａ２のうち近い側との距離Ｌｅと閾値Ｔｈとの比較によって適正処理条件の適否がチェックされる。距離Ｌｅが閾値Ｔｈ以上となる場合には、凹形状に対して、構成線分が欠落しているにも関わらずポリゴン化処理を行った異常処理結果と判断される。この処理で用いる地図データは、線分間に非常に微小な隙間が空いているに過ぎず、正常に処理が行われている時には端点間の距離は微小な値となるはずだからである。
【０１１０】
適正処理条件の判断に用いる閾値Ｔｈは任意に設定可能である。例えば、上述の観点から地図データに存在する線分間の隙間の最大値に基づき設定することができる。
【０１１１】
ＣＰＵは適正処理条件の成否チェックの結果、異常が発見された場合には（ステップＳ５６２）、補助線の追加が必要と判断し、補助線登録処理を実行する（ステップＳ５６４）。この処理は、実施例で説明した処理（図９参照）を適用することができる。
【０１１２】
異常が発見されなかった場合には（ステップＳ５６２）、生成されたポリゴンにグループ番号を付与し（ステップＳ５６６）、面積計測等を行ってポリゴンデータを更新する（ステップＳ５６８）。グループ番号の付与方法は、生成されたポリゴンに補助線が含まれるか否かによって使い分ける。補助線が含まれていない場合には、新規に生成されたポリゴンであることを意味するから、従前に登録されたグループ番号と異なる新規の番号を付与する。補助線が含まれている場合には、グループ化すべき他のポリゴンが存在することを意味するから、補助線に隣接するポリゴンと同一のグループ番号を付与する。隣接するポリゴンが未生成の時は、新規のグループ番号を付与すればよい。
【０１１３】
補助線の数によっては、上述の方法ではグループ番号が一意に定まらない場合がある。かかる例として、元の図形が２本の補助線で、両端および中央の３つの図形に分割された場合が挙げられる。この場合、両端のポリゴンから処理を開始すると、各ポリゴンに対して新規のグループ番号が付与されることになる。この結果、中央のポリゴンについては、補助線を挟んで隣接する両端のポリゴンのグループ番号が異なってしまい、グループ番号を一意に決定できなくなってしまう。上述の処理においては、このようにグループ番号が一意に決まらない場合には、ユーザにグループ番号の指定を求めるようにしたり、番号の小さい方または大きい方という規則に従って、いずれか一方を自動的に選択するようにしたりしてもよい。
【０１１４】
このように指定または選択を行うと、補助線を挟んで隣接するポリゴンのグループ番号が異なる部分が生じることになる。従って、このような箇所を抽出し、補助線を挟んで隣接するポリゴンについては、番号の小さい方または大きい方という規則に従って、いずれか一方のポリゴンのグループ番号に統一する処理を施すようにしてもよい。
【０１１５】
以上で説明した変形例の処理によれば、ポリゴン生成処理において、放射状態パラメータの設定、補助線登録の要否、グループ番号の入力を自動化できるため、ポリゴン生成の効率化を図ることができる。変形例の処理は一例に過ぎず、上述した全ての要素の一部についてのみ自動化を図るようにしてもよい。
【０１１６】
以上、本発明の種々の実施例について説明したが、本発明はこれらの実施例に限定されず、その趣旨を逸脱しない範囲で種々の構成を採ることができることはいうまでもない。実施例および変形例では、地図データの処理装置を例示したが、本発明は、地図データに限らず、線分を含む種々の図形データの処理に適用可能である。実施例および変形例では、ポリゴンデータを生成する例を示したが、本発明は、ポリゴンデータ自体を登録せず、単に面積等の計測結果を出力する態様で実現してもよい。
【図面の簡単な説明】
【０１１７】
【図１】実施例としての地図データ処理装置の機能概要を示す説明図である。
【図２】地図データ処理装置の構成を示す説明図である。
【図３】地図データのレイヤ構造を示す説明図である。
【図４】ポリゴン生成処理の原理を示す説明図である。
【図５】メインループのフローチャートである。
【図６】パラメータ設定処理のフローチャートである。
【図７】放射状態パラメータの設定画面例を示す説明図である。
【図８】レイヤ選択用の画面例を示す説明図である。
【図９】補助線登録処理のフローチャートである。
【図１０】線分変換処理のフローチャートである。
【図１１】ポリゴン生成処理のフローチャートである。
【図１２】グループ番号入力の画面例を示す説明図である。
【図１３】ポリゴン生成処理の画面表示例を示す説明図である。
【図１４】ポリゴン形状設定方法の変形例を示す説明図である。
【図１５】ポリゴン生成処理の変形例のフローチャートである。
【符号の説明】
【０１１８】
１０…地図データ処理装置
２０…主制御部
２２…コマンド入力部
２４…地図データ入力部
２６…表示制御部
３０…ポリゴン生成部
３２…線分変換部
３４…補助線管理部
３６…放射状線分生成部
４０…処理パラメータ管理部
４２…ポリゴン管理部
４４…地図データ
４６…中間データ
１００…主画面
１０１…設定ボタン
１０２…設定ウィンドウ
１０３、１０４…入力エリア
１０５…登録ボタン
１０６…閉じるボタン
２００…主画面
２０１…階層設定ボタン
２０２…設定ウィンドウ
２０３…表示欄
２０４…ポリゴン構成欄
２０５…登録ボタン
２０６…閉じるボタン
５００…主画面
５０１…自動生成ボタン
５０２…入力ウィンドウ
５０３…登録ボタン
５０４…中止ボタン
５１０…主画面
５１２…設定ウィンドウ
５１３…ＯＫボタン
５１４…キャンセルボタン
【図１】
2006293809.tif 000003
【図２】
2006293809.tif 000004
【図３】
2006293809.tif 000005
【図４】
2006293809.tif 000006
【図５】
2006293809.tif 000007
【図６】
2006293809.tif 000008
【図７】
2006293809.tif 000009
【図８】
2006293809.tif 000010
【図９】
2006293809.tif 000011
【図１０】
2006293809.tif 000012
【図１１】
2006293809.tif 000013
【図１２】
2006293809.tif 000014
【図１３】
2006293809.tif 000015
【図１４】
2006293809.tif 000016
【図１５】
2006293809.tif 000017