ポリゴン分割装置およびポリゴン分割方法
【課題】ポリゴンを重なりや隙間が発生しないように分割することができるポリゴン分割装置を提供する。
【解決手段】第二分割手段は、ポリゴン32の内部に存在する点であって線分37a,37b上に存在する任意の点を新たな内部構成点36a,36bとして選択する。なお、内部構成点36a,36bについてはこれら内部構成点36a,36bのy座標が同一となるような点が選択される。次に、第二分割手段は、構成点31aと内部構成点36aとを繋ぐ線37a、構成点31bと内部構成点36bとを繋ぐ線37b、および内部構成点36aと内部構成点36bとを繋ぐ線38によって、ポリゴン32を分割する。なお、内部構成点36aと内部構成点36bとを繋ぐ線38は、仮想線33に対して垂直な線となる。
【解決手段】第二分割手段は、ポリゴン32の内部に存在する点であって線分37a,37b上に存在する任意の点を新たな内部構成点36a,36bとして選択する。なお、内部構成点36a,36bについてはこれら内部構成点36a,36bのy座標が同一となるような点が選択される。次に、第二分割手段は、構成点31aと内部構成点36aとを繋ぐ線37a、構成点31bと内部構成点36bとを繋ぐ線37b、および内部構成点36aと内部構成点36bとを繋ぐ線38によって、ポリゴン32を分割する。なお、内部構成点36aと内部構成点36bとを繋ぐ線38は、仮想線33に対して垂直な線となる。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、ベクトルデータとして記述された電子地図データの一部であるポリゴンを複数に分割する技術に関するものである。
【背景技術】
【0002】
ベクトルデータとして記述された電子地図データは、直交するX軸、Y軸の二次元座標上に定義された1つの構成点のみからなる点データ、二つの構成点とこれら構成点を繋ぐ線(ここで線とは、直線あるいは曲線である)からなる線データ、そして複数の構成点とその構成点を相互に接続する線とによって外形を模ったポリゴンデータの集合体である。この様な電子地図データは、大規模なGISシステムから携帯用の簡易機器、例えばパーソナルナビゲーションデバイス(PND:Personal
Navigation Device)や携帯ゲーム機にまで利用される。
【0003】
電子地図データが簡易機器で利用される場合、ポリゴンデータの取り扱いに注意が必要となる。簡易機器に採用されるCPUの処理能力、記憶領域のサイズなどから、ポリゴンデータとして処理できる構成点の数に制限があるからである。例えば、最も簡単な機器構成では許容される構成点の数が3個であり、この場合にはポリゴンデータとしては三角形しか取り扱うことが出来ない。そこで、この様な簡易機器にて複雑な形状のポリゴンデータを取り扱い可能とするための事前の処理として、多数の構成点からなるポリゴンデータを、簡易機器が許容する構成点の数以下となるように分割するポリゴン分割処理が行われる。
【0004】
例えば、上述した最も簡単な機器構成である簡易機器にて5角形ポリゴンを処理可能とするために、5角形ポリゴンを3個あるいはそれ以上の三角形ポリゴンに分割するのである。
この様なポリゴン分割技術としては各種の手法が開発されており、利用者はその目的に応じて何れかのポリゴン分割技術を選択しあるいは複数のポリゴン分割技術を組み合わせ、複雑なポリゴンデータを所定値以下の構成点からなるポリゴンデータの組み合わせとして扱っている。
【0005】
その中の一つとして、ベクトルデータの一種であるアウトラインフォント塗りつぶしの際、進入頂点リスト、左右稜線リスト、アクティブエッジリストの生成処理を含めず、処理を高速化するためにポリゴンを分割する技術がる(特許文献1)。この技術では、ポリゴンを分割する線分は例えばY軸に平行な線分であり、ポリゴンを左右に分割された2つのポリゴンによって共有する。その一端は分割前の図形の1頂点で、Y座標が極大または極小となる凹頂点である。この様なポリゴン分割を繰り返すことにより、分割終了後の各々のポリゴン形状は、進入頂点および退出頂点が各1個の単純な形状となる。したがって、複雑なアウトラインフォント塗りつぶし処理は、単純な図形塗りつぶし処理の繰り返しによって代替されることになり、簡単な回路により実現される。
【先行技術文献】
【特許文献】
【0006】
【特許文献1】特開平6−27927号公報
【発明の概要】
【発明が解決しようとする課題】
【0007】
従来、各種のポリゴン分割技術が開発されているが、その目的は、構成点数の多い複雑な形状のポリゴンデータを回転、拡縮などの図形処理、塗りつぶしなどの表示処理することにある。すなわち、従来のポリゴン分割技術の何れも、構成点数の多いポリゴンデータを構成点が所定値以下のポリゴンデータの組み合わせに変換することを目的としており、分割後のポリゴンデータの構成点数が所定値以下となれば目的を達成することになる。
【0008】
しかし、近年のデジタル技術、通信技術の進歩によって電子地図データを処理対象とする機器は飛躍的に増加し、かつ、それぞれが互いに通信し合ってデータを共有することで情報処理の効率化を図っている。この様な環境変化により、ある機器での取り扱いに適したようにポリゴン分割を行った後に、他の機器で分割後のポリゴンデータを更に再分割するような事態が頻発することになる。この様な場合において後段の他の機器は、前段の機器で行われたポリゴン分割の結果を単に受け取るだけであり、受け取ったポリゴンデータが単一のポリゴンデータであるかあるいはポリゴン分割した結果物であって複数のポリゴンデータの組み合わせにより単一の複雑なポリゴンデータを表現しているのかを知るすべはない。
【0009】
このため、例えば互いに接しており、構成点やその構成点相互を接続する線が互いに共通している一方のポリゴンデータを更に再分割する場合、その一方のポリゴンの共通している線上に新たな構成点を設定するなど相互のデータの共通性が崩れる事態が発生するのである。このデータの共通性の崩れは、新たな構成点が座標点に再配置された際にポリゴンの重なりや隙間発生の原因となる。
【0010】
一例として、従来のポリゴン分割装置を用いて、図11に示すポリゴン91を分割する場合を説明する。まず、当該ポリゴン91を構成する複数の構成点92から任意の構成点92a,92bを抽出する。次に、これら構成点92a,92bを結ぶ分割線分93でポリゴン91を分割して2つのポリゴン91a,91bを生成する。
このように分割されたポリゴン91aを、他の装置で任意の構成点数となるように分割する。例えば、図12に示すように、任意の構成点92と、構成点92a,92bを結ぶポリゴン91aの線分94に交差する点95とを繋ぐ分割線分96で、ポリゴン91aを複数のポリゴンに分割する。
【0011】
すると、図12の拡大図に示すように、線分94に交差する点95が直交するX軸97、Y軸98の二次元座標上に存在しないことがあるため、線分94に交差する点95がX軸97、Y軸98上の点に設定されることになる。このことは、ポリゴン91bについてもいえる。
【0012】
したがって、PNDや携帯端末で、このように分割されたポリゴン91a,91bを表示させた場合、これらポリゴン91a,91bの間に、図13に示すような隙間99が生じることになる。このポリゴン91a,91bが湖に関するポリゴンであった場合には、この隙間99は、描画されない領域となるため、ライン状のノイズとなって地図に表示されることになる。
本発明は、こうした課題を解決することのできるポリゴン分割装置、およびポリゴン分割方法を提供することを目的とする。
【課題を解決するための手段】
【0013】
上記課題を解決するために、本発明は、直交するX軸、Y軸の二次元座標上に定義されたベクトルデータにより地物を表現する電子地図データの一部であって、複数の構成点とその構成点を相互に接続する線とによって外形を模ったポリゴンを複数に分割するポリゴン分割装置であって、ポリゴンデータの構成点が所定値以上であって前記ポリゴンを分割する必要があるとき、そのポリゴンをX軸あるいはY軸と平行に略二等分する仮想線の端点それぞれに最も近接している前記ポリゴンの構成点を選択する分割点選択手段と、該分割点選択手段により選択された2つの構成点をそれぞれ一方の端点とする、前記仮想線に平行な線分である第一分割線分が一直線上にあるとき、当該第一分割線分により前記ポリゴンを分割する第一分割手段と、前記第一分割線分が一直線上にないとき、前記ポリゴン内部に存在する点であって第一分割線分上に存在する点を新たな構成点とし、前記第一分割線分と相互の新たな構成点を繋ぐ前記仮想線に垂直な第二分割線分とにより前記ポリゴンを分割する第二分割手段とを備えることを特徴とする。
なお、上述した特徴は、本発明の特徴のすべてを列挙したものではなく、これらを要部とする構成(または方法)もまた発明となり得る。
【発明の効果】
【0014】
本発明によれば、ある機器での取り扱いに適したようにポリゴン分割を行った後に、他の機器で分割後のポリゴンデータを更に再分割する場合であっても、分割後のポリゴンを表示させた場合に隙間が発生することを防止することができる。
【図面の簡単な説明】
【0015】
【図1】本実施例におけるポリゴン分割装置の構成図。
【図2】ポリゴン分割処理のフローチャート。
【図3】ポリゴン分割処理のフローチャート。
【図4】ポリゴン分割処理の説明図。
【図5】ポリゴン分割処理の説明図。
【図6】ポリゴン分割処理の説明図。
【図7】ポリゴン分割処理の説明図。
【図8】ポリゴン分割処理のフローチャート。
【図9】ポリゴン分割処理の説明図。
【図10】ポリゴン分割処理の説明図。
【図11】従来技術の説明図。
【図12】従来技術の説明図。
【図13】従来技術の説明図。
【発明を実施するための形態】
【0016】
以下、本発明を具体化したポリゴン分割装置について説明する。
図1に示すように、本実施例におけるポリゴン分割装置11はコンピュータであり、記憶手段としてのハードディスク12、分割点選択手段13、第一分割手段14、第二分割手段15、制御手段16を備える。
分割点選択手段13、第一分割手段14、第二分割手段15、制御手段16は、実際には、ポリゴン分割装置11が有する図示しないCPU(Central Processing Unit )がハードディスク12やメモリ等に記憶されている各種プログラムを実行することにより実現される。
【0017】
ハードディスク12には、電子地図データが記憶されている。この電子地図データは、建物の形状、道路の形状、海域の形状、都道府県や市区町村等の領域形状等をベクトルデータとして記述したポリゴンデータを含んでいる。
【0018】
分割点選択手段13は、ポリゴンデータの構成点が所定値以上であってそのポリゴンを分割する必要があると判断された場合、そのポリゴンをX軸あるいはY軸と平行に略二等分する仮想線の端点それぞれに最も近接しているポリゴンの構成点を選択する機能を有する。ここで、所定値は、分割されたポリゴンを利用する装置におけるCPUの処理能力、記憶領域のサイズなどを考慮して決定される値であればよく、任意の値に設定することが可能である。例えば、構成点が数千点である地図データのポリゴンデータを分割する場合には、所定値として800が設定される。
【0019】
第一分割手段14および第二分割手段15は、ポリゴンを分割する分割処理機能を有する。
第一分割手段14は、分割点選択手段13によって選択されたポリゴンにおける2つの構成点をそれぞれ一方の端点とする仮想線に平行な線分である第一分割線分が一直線上にあるとき、その第一分割線分によりポリゴンを分割する機能を有する。
【0020】
第二分割手段15は、第一分割線分が一直線上にないとき、ポリゴンの内部であって第一分割線分のそれぞれの他方の端点を新たな構成点とし、相互の新たな構成点を繋ぐ仮想線に垂直な第二分割線分によりそのポリゴンを分割する機能を有する。
制御手段16は、ポリゴン分割装置11が備える各手段12〜15の動作をメモリ等に記録されている所定のプログラムに基づいて制御する機能を有する。
【0021】
次に、本実施例におけるポリゴン分割装置11を用いてポリゴンを分割する処理方法について説明する。
図2に示すように、まず、制御手段16は、電子地図データに含まれているポリゴンデータをハードディスク12から読み出す(ステップS201)。次に、分割点選択手段13が、ポリゴンの構成点数をカウントするとともに、その構成点数が予め設定されている所定の数よりも多い場合に、そのポリゴンを分割する必要があると判断する(ステップS202)。一方、構成点数が予め設定されている所定の数よりも少ない場合には、次のポリゴンデータをハードディスク12から読み出す(ステップS201)。
【0022】
分割する必要があると判断された場合、図3に示すように、分割点選択手段13は、ポリゴン32の構成点31のうち、X軸(またはY軸)と平行に略二等分する仮想線33の端点34a,34bにそれぞれに最も近接しているポリゴンの構成点31a,31bを選択する(ステップS203)。例えば、分割点選択手段13は、端点34a,34bの位置からの直線距離が最も短くなる構成点31を選択する。なお、仮想線33は、ポリゴン32の重心点を通る線とすればよい。
【0023】
次に、第一分割手段14が、第一分割処理を実行する。図4に示すように、第一分割手段14は、分割点選択手段13によって選択された2つの構成点31a,31bをそれぞれ一方の端点としており、仮想線33に平行な線分であるそれぞれの線分35a,35bが一直線上にあるか否かを判定する(ステップS204)。線分35a,35bが一直線上にあると判定した場合、換言すれば線分35a,35bが同一線であると判定した場合、第一分割手段14は、その線分35a,35b(第一分割線分)によりポリゴン32を分割する(ステップS205)。図4の例では、線分35a,35bは一直線上に存在していないため、線分35aまたは線分35bによってポリゴン32が分割されることはない。
【0024】
なお、第一分割手段14は、仮想線33がY軸に平行であって、2つの構成点31a,31bのx座標が同一である場合に、構成点31a,31bを通る線分によりポリゴン32を分割するようにしてもよい。また、仮想線33がX軸に平行であって、2つの構成点31a,31bのy座標が同一である場合も同様である。
【0025】
一方、第一分割手段14によって線分35a,35bが一直線上にないと判定されたときには、第二分割手段15によって、第二分割処理が実行される。
まず、図5に示すように、第二分割手段15は、ポリゴン32の内部に存在する点であって線分35a,35b上に存在する任意の点を新たな内部構成点36a,36bとして選択する(ステップS206)。なお、内部構成点36a,36bについてはこれら内部構成点36a,36bのy座標が同一となるような点が選択される。
【0026】
次に、図6に示すように、第二分割手段15は、構成点31aと内部構成点36aとを繋ぐ線37a、構成点31bと内部構成点36bとを繋ぐ線37b、および内部構成点36aと内部構成点36bとを繋ぐ線38(第二分割線分)によって、ポリゴン32を分割する(ステップS207)。なお、内部構成点36aと内部構成点36bとを繋ぐ線38は、仮想線33に対して垂直な線となる。
【0027】
次に、制御手段16は、第一分割手段14または第二分割手段15によって分割されたそれぞれのポリゴンについて構成点数をカウントするとともに、当該構成点数と予め設定されている所定の数とを比較する(ステップS208)。構成点数が所定の数よりも多い場合には、制御手段16は、当該構成点数が所定の数よりも多いポリゴンについて、更なる分割処理を実行する(ステップS203)。なお、制御手段16は、分割されたポリゴンをハードディスク12に記憶する。
【0028】
そして制御手段16は、電子地図データに含まれるすべてのポリゴンについて分割処理を実行したか否かを判定する(ステップS209)。分割処理が実行されていないポリゴンが存在していると判定した場合、制御手段16は、当該ポリゴンをハードディスク12から読み出すとともに、上述した分割処理を当該読み出されたポリゴンに対して実行する。一方、すべてのポリゴンについて分割処理を実行したと判定した場合には、制御手段16は分割処理を終了する。
【0029】
(実施例の効果)
図7に示すように、本実施例におけるポリゴン分割装置11によって分割されたポリゴン32を、他の装置において更に任意の分割線41で複数のポリゴンに分割した場合であって、ポリゴン32を表示させた場合にポリゴン間に図13に示すような隙間が生じることはない。これは、ポリゴン分割装置11によって分割されたポリゴン32aにおける構成点31aから構成点31bまでの線分であって、新たな構成点31a,31bを通る線分の上の点は、すべて座標線42,43で規定される座標線上に存在している。そのため、分割線41をなす一方の端点として当該線分上の点が指定されたとしても、当該端点は必ずX軸42、Y軸43の二次元座標上に存在するためである。
【0030】
(他の実施例)
上述した実施例における分割処理については、以下の方法で実現してもよい。
図8、図9に示すように、まず、第一分割手段14は、ポリゴン32の構成点51のうち、任意の1点を開始構成点51aとして抽出する(ステップS801)。次に、第一分割手段14は、構成点51の数をカウントして、ほぼ開始構成点51aと反対側の位置に存在する構成点51を終了構成点51bとして抽出する(ステップS802)。
【0031】
次に、第一分割手段14は、開始構成点51aからポリゴン32の内部に向けてY軸に平行な線52を引く(ステップS803)。そして、第一分割手段14は、当該線52がポリゴン32を構成する線分と交差する点が終了構成点51bを含む何れかの構成点51であるか否かを判定する(ステップS804)。交差する点が構成点51である場合には、第一分割手段14は、開始構成点51aとその構成点51とを繋いだ線でポリゴン32を分割する(ステップS805)。
【0032】
一方、交差する点が構成点51でない場合には、第二分割手段15が、線52の先端の位置を開始構成点51aの方向へ数ドット(例えば2ドット)だけ戻すとともに、図10に示すように、その戻した位置から終了構成点51bに近づく方向へ、線52と垂直な線53を引く(ステップS806)。つまり線53は、X軸に平行な線である。そして、第二分割手段15は、線53のx座標が終了構成点51bのx座標と一致する位置まで線53を引くとともに、最後に、当該位置から終了構成点51bまでY軸に平行な線54を引く(ステップS807)。
【0033】
なお、線53を引いている途中で当該線53がポリゴン32を構成する線分と交差した場合には、線53の先端の位置を開始構成点51aの方向へ更に数ドットだけ戻す処理を実行したり、最終構成点51bを変更したりするなどの処理を実行する。
そして、第二分割手段15は、引かれた線52〜54によって、ポリゴン32を分割する(ステップS807)。
【符号の説明】
【0034】
11…ポリゴン分割装置
12…ハードディスク
13…分割点選択手段
14…第一分割手段
15…第二分割手段
16…制御手段
【技術分野】
【0001】
本発明は、ベクトルデータとして記述された電子地図データの一部であるポリゴンを複数に分割する技術に関するものである。
【背景技術】
【0002】
ベクトルデータとして記述された電子地図データは、直交するX軸、Y軸の二次元座標上に定義された1つの構成点のみからなる点データ、二つの構成点とこれら構成点を繋ぐ線(ここで線とは、直線あるいは曲線である)からなる線データ、そして複数の構成点とその構成点を相互に接続する線とによって外形を模ったポリゴンデータの集合体である。この様な電子地図データは、大規模なGISシステムから携帯用の簡易機器、例えばパーソナルナビゲーションデバイス(PND:Personal
Navigation Device)や携帯ゲーム機にまで利用される。
【0003】
電子地図データが簡易機器で利用される場合、ポリゴンデータの取り扱いに注意が必要となる。簡易機器に採用されるCPUの処理能力、記憶領域のサイズなどから、ポリゴンデータとして処理できる構成点の数に制限があるからである。例えば、最も簡単な機器構成では許容される構成点の数が3個であり、この場合にはポリゴンデータとしては三角形しか取り扱うことが出来ない。そこで、この様な簡易機器にて複雑な形状のポリゴンデータを取り扱い可能とするための事前の処理として、多数の構成点からなるポリゴンデータを、簡易機器が許容する構成点の数以下となるように分割するポリゴン分割処理が行われる。
【0004】
例えば、上述した最も簡単な機器構成である簡易機器にて5角形ポリゴンを処理可能とするために、5角形ポリゴンを3個あるいはそれ以上の三角形ポリゴンに分割するのである。
この様なポリゴン分割技術としては各種の手法が開発されており、利用者はその目的に応じて何れかのポリゴン分割技術を選択しあるいは複数のポリゴン分割技術を組み合わせ、複雑なポリゴンデータを所定値以下の構成点からなるポリゴンデータの組み合わせとして扱っている。
【0005】
その中の一つとして、ベクトルデータの一種であるアウトラインフォント塗りつぶしの際、進入頂点リスト、左右稜線リスト、アクティブエッジリストの生成処理を含めず、処理を高速化するためにポリゴンを分割する技術がる(特許文献1)。この技術では、ポリゴンを分割する線分は例えばY軸に平行な線分であり、ポリゴンを左右に分割された2つのポリゴンによって共有する。その一端は分割前の図形の1頂点で、Y座標が極大または極小となる凹頂点である。この様なポリゴン分割を繰り返すことにより、分割終了後の各々のポリゴン形状は、進入頂点および退出頂点が各1個の単純な形状となる。したがって、複雑なアウトラインフォント塗りつぶし処理は、単純な図形塗りつぶし処理の繰り返しによって代替されることになり、簡単な回路により実現される。
【先行技術文献】
【特許文献】
【0006】
【特許文献1】特開平6−27927号公報
【発明の概要】
【発明が解決しようとする課題】
【0007】
従来、各種のポリゴン分割技術が開発されているが、その目的は、構成点数の多い複雑な形状のポリゴンデータを回転、拡縮などの図形処理、塗りつぶしなどの表示処理することにある。すなわち、従来のポリゴン分割技術の何れも、構成点数の多いポリゴンデータを構成点が所定値以下のポリゴンデータの組み合わせに変換することを目的としており、分割後のポリゴンデータの構成点数が所定値以下となれば目的を達成することになる。
【0008】
しかし、近年のデジタル技術、通信技術の進歩によって電子地図データを処理対象とする機器は飛躍的に増加し、かつ、それぞれが互いに通信し合ってデータを共有することで情報処理の効率化を図っている。この様な環境変化により、ある機器での取り扱いに適したようにポリゴン分割を行った後に、他の機器で分割後のポリゴンデータを更に再分割するような事態が頻発することになる。この様な場合において後段の他の機器は、前段の機器で行われたポリゴン分割の結果を単に受け取るだけであり、受け取ったポリゴンデータが単一のポリゴンデータであるかあるいはポリゴン分割した結果物であって複数のポリゴンデータの組み合わせにより単一の複雑なポリゴンデータを表現しているのかを知るすべはない。
【0009】
このため、例えば互いに接しており、構成点やその構成点相互を接続する線が互いに共通している一方のポリゴンデータを更に再分割する場合、その一方のポリゴンの共通している線上に新たな構成点を設定するなど相互のデータの共通性が崩れる事態が発生するのである。このデータの共通性の崩れは、新たな構成点が座標点に再配置された際にポリゴンの重なりや隙間発生の原因となる。
【0010】
一例として、従来のポリゴン分割装置を用いて、図11に示すポリゴン91を分割する場合を説明する。まず、当該ポリゴン91を構成する複数の構成点92から任意の構成点92a,92bを抽出する。次に、これら構成点92a,92bを結ぶ分割線分93でポリゴン91を分割して2つのポリゴン91a,91bを生成する。
このように分割されたポリゴン91aを、他の装置で任意の構成点数となるように分割する。例えば、図12に示すように、任意の構成点92と、構成点92a,92bを結ぶポリゴン91aの線分94に交差する点95とを繋ぐ分割線分96で、ポリゴン91aを複数のポリゴンに分割する。
【0011】
すると、図12の拡大図に示すように、線分94に交差する点95が直交するX軸97、Y軸98の二次元座標上に存在しないことがあるため、線分94に交差する点95がX軸97、Y軸98上の点に設定されることになる。このことは、ポリゴン91bについてもいえる。
【0012】
したがって、PNDや携帯端末で、このように分割されたポリゴン91a,91bを表示させた場合、これらポリゴン91a,91bの間に、図13に示すような隙間99が生じることになる。このポリゴン91a,91bが湖に関するポリゴンであった場合には、この隙間99は、描画されない領域となるため、ライン状のノイズとなって地図に表示されることになる。
本発明は、こうした課題を解決することのできるポリゴン分割装置、およびポリゴン分割方法を提供することを目的とする。
【課題を解決するための手段】
【0013】
上記課題を解決するために、本発明は、直交するX軸、Y軸の二次元座標上に定義されたベクトルデータにより地物を表現する電子地図データの一部であって、複数の構成点とその構成点を相互に接続する線とによって外形を模ったポリゴンを複数に分割するポリゴン分割装置であって、ポリゴンデータの構成点が所定値以上であって前記ポリゴンを分割する必要があるとき、そのポリゴンをX軸あるいはY軸と平行に略二等分する仮想線の端点それぞれに最も近接している前記ポリゴンの構成点を選択する分割点選択手段と、該分割点選択手段により選択された2つの構成点をそれぞれ一方の端点とする、前記仮想線に平行な線分である第一分割線分が一直線上にあるとき、当該第一分割線分により前記ポリゴンを分割する第一分割手段と、前記第一分割線分が一直線上にないとき、前記ポリゴン内部に存在する点であって第一分割線分上に存在する点を新たな構成点とし、前記第一分割線分と相互の新たな構成点を繋ぐ前記仮想線に垂直な第二分割線分とにより前記ポリゴンを分割する第二分割手段とを備えることを特徴とする。
なお、上述した特徴は、本発明の特徴のすべてを列挙したものではなく、これらを要部とする構成(または方法)もまた発明となり得る。
【発明の効果】
【0014】
本発明によれば、ある機器での取り扱いに適したようにポリゴン分割を行った後に、他の機器で分割後のポリゴンデータを更に再分割する場合であっても、分割後のポリゴンを表示させた場合に隙間が発生することを防止することができる。
【図面の簡単な説明】
【0015】
【図1】本実施例におけるポリゴン分割装置の構成図。
【図2】ポリゴン分割処理のフローチャート。
【図3】ポリゴン分割処理のフローチャート。
【図4】ポリゴン分割処理の説明図。
【図5】ポリゴン分割処理の説明図。
【図6】ポリゴン分割処理の説明図。
【図7】ポリゴン分割処理の説明図。
【図8】ポリゴン分割処理のフローチャート。
【図9】ポリゴン分割処理の説明図。
【図10】ポリゴン分割処理の説明図。
【図11】従来技術の説明図。
【図12】従来技術の説明図。
【図13】従来技術の説明図。
【発明を実施するための形態】
【0016】
以下、本発明を具体化したポリゴン分割装置について説明する。
図1に示すように、本実施例におけるポリゴン分割装置11はコンピュータであり、記憶手段としてのハードディスク12、分割点選択手段13、第一分割手段14、第二分割手段15、制御手段16を備える。
分割点選択手段13、第一分割手段14、第二分割手段15、制御手段16は、実際には、ポリゴン分割装置11が有する図示しないCPU(Central Processing Unit )がハードディスク12やメモリ等に記憶されている各種プログラムを実行することにより実現される。
【0017】
ハードディスク12には、電子地図データが記憶されている。この電子地図データは、建物の形状、道路の形状、海域の形状、都道府県や市区町村等の領域形状等をベクトルデータとして記述したポリゴンデータを含んでいる。
【0018】
分割点選択手段13は、ポリゴンデータの構成点が所定値以上であってそのポリゴンを分割する必要があると判断された場合、そのポリゴンをX軸あるいはY軸と平行に略二等分する仮想線の端点それぞれに最も近接しているポリゴンの構成点を選択する機能を有する。ここで、所定値は、分割されたポリゴンを利用する装置におけるCPUの処理能力、記憶領域のサイズなどを考慮して決定される値であればよく、任意の値に設定することが可能である。例えば、構成点が数千点である地図データのポリゴンデータを分割する場合には、所定値として800が設定される。
【0019】
第一分割手段14および第二分割手段15は、ポリゴンを分割する分割処理機能を有する。
第一分割手段14は、分割点選択手段13によって選択されたポリゴンにおける2つの構成点をそれぞれ一方の端点とする仮想線に平行な線分である第一分割線分が一直線上にあるとき、その第一分割線分によりポリゴンを分割する機能を有する。
【0020】
第二分割手段15は、第一分割線分が一直線上にないとき、ポリゴンの内部であって第一分割線分のそれぞれの他方の端点を新たな構成点とし、相互の新たな構成点を繋ぐ仮想線に垂直な第二分割線分によりそのポリゴンを分割する機能を有する。
制御手段16は、ポリゴン分割装置11が備える各手段12〜15の動作をメモリ等に記録されている所定のプログラムに基づいて制御する機能を有する。
【0021】
次に、本実施例におけるポリゴン分割装置11を用いてポリゴンを分割する処理方法について説明する。
図2に示すように、まず、制御手段16は、電子地図データに含まれているポリゴンデータをハードディスク12から読み出す(ステップS201)。次に、分割点選択手段13が、ポリゴンの構成点数をカウントするとともに、その構成点数が予め設定されている所定の数よりも多い場合に、そのポリゴンを分割する必要があると判断する(ステップS202)。一方、構成点数が予め設定されている所定の数よりも少ない場合には、次のポリゴンデータをハードディスク12から読み出す(ステップS201)。
【0022】
分割する必要があると判断された場合、図3に示すように、分割点選択手段13は、ポリゴン32の構成点31のうち、X軸(またはY軸)と平行に略二等分する仮想線33の端点34a,34bにそれぞれに最も近接しているポリゴンの構成点31a,31bを選択する(ステップS203)。例えば、分割点選択手段13は、端点34a,34bの位置からの直線距離が最も短くなる構成点31を選択する。なお、仮想線33は、ポリゴン32の重心点を通る線とすればよい。
【0023】
次に、第一分割手段14が、第一分割処理を実行する。図4に示すように、第一分割手段14は、分割点選択手段13によって選択された2つの構成点31a,31bをそれぞれ一方の端点としており、仮想線33に平行な線分であるそれぞれの線分35a,35bが一直線上にあるか否かを判定する(ステップS204)。線分35a,35bが一直線上にあると判定した場合、換言すれば線分35a,35bが同一線であると判定した場合、第一分割手段14は、その線分35a,35b(第一分割線分)によりポリゴン32を分割する(ステップS205)。図4の例では、線分35a,35bは一直線上に存在していないため、線分35aまたは線分35bによってポリゴン32が分割されることはない。
【0024】
なお、第一分割手段14は、仮想線33がY軸に平行であって、2つの構成点31a,31bのx座標が同一である場合に、構成点31a,31bを通る線分によりポリゴン32を分割するようにしてもよい。また、仮想線33がX軸に平行であって、2つの構成点31a,31bのy座標が同一である場合も同様である。
【0025】
一方、第一分割手段14によって線分35a,35bが一直線上にないと判定されたときには、第二分割手段15によって、第二分割処理が実行される。
まず、図5に示すように、第二分割手段15は、ポリゴン32の内部に存在する点であって線分35a,35b上に存在する任意の点を新たな内部構成点36a,36bとして選択する(ステップS206)。なお、内部構成点36a,36bについてはこれら内部構成点36a,36bのy座標が同一となるような点が選択される。
【0026】
次に、図6に示すように、第二分割手段15は、構成点31aと内部構成点36aとを繋ぐ線37a、構成点31bと内部構成点36bとを繋ぐ線37b、および内部構成点36aと内部構成点36bとを繋ぐ線38(第二分割線分)によって、ポリゴン32を分割する(ステップS207)。なお、内部構成点36aと内部構成点36bとを繋ぐ線38は、仮想線33に対して垂直な線となる。
【0027】
次に、制御手段16は、第一分割手段14または第二分割手段15によって分割されたそれぞれのポリゴンについて構成点数をカウントするとともに、当該構成点数と予め設定されている所定の数とを比較する(ステップS208)。構成点数が所定の数よりも多い場合には、制御手段16は、当該構成点数が所定の数よりも多いポリゴンについて、更なる分割処理を実行する(ステップS203)。なお、制御手段16は、分割されたポリゴンをハードディスク12に記憶する。
【0028】
そして制御手段16は、電子地図データに含まれるすべてのポリゴンについて分割処理を実行したか否かを判定する(ステップS209)。分割処理が実行されていないポリゴンが存在していると判定した場合、制御手段16は、当該ポリゴンをハードディスク12から読み出すとともに、上述した分割処理を当該読み出されたポリゴンに対して実行する。一方、すべてのポリゴンについて分割処理を実行したと判定した場合には、制御手段16は分割処理を終了する。
【0029】
(実施例の効果)
図7に示すように、本実施例におけるポリゴン分割装置11によって分割されたポリゴン32を、他の装置において更に任意の分割線41で複数のポリゴンに分割した場合であって、ポリゴン32を表示させた場合にポリゴン間に図13に示すような隙間が生じることはない。これは、ポリゴン分割装置11によって分割されたポリゴン32aにおける構成点31aから構成点31bまでの線分であって、新たな構成点31a,31bを通る線分の上の点は、すべて座標線42,43で規定される座標線上に存在している。そのため、分割線41をなす一方の端点として当該線分上の点が指定されたとしても、当該端点は必ずX軸42、Y軸43の二次元座標上に存在するためである。
【0030】
(他の実施例)
上述した実施例における分割処理については、以下の方法で実現してもよい。
図8、図9に示すように、まず、第一分割手段14は、ポリゴン32の構成点51のうち、任意の1点を開始構成点51aとして抽出する(ステップS801)。次に、第一分割手段14は、構成点51の数をカウントして、ほぼ開始構成点51aと反対側の位置に存在する構成点51を終了構成点51bとして抽出する(ステップS802)。
【0031】
次に、第一分割手段14は、開始構成点51aからポリゴン32の内部に向けてY軸に平行な線52を引く(ステップS803)。そして、第一分割手段14は、当該線52がポリゴン32を構成する線分と交差する点が終了構成点51bを含む何れかの構成点51であるか否かを判定する(ステップS804)。交差する点が構成点51である場合には、第一分割手段14は、開始構成点51aとその構成点51とを繋いだ線でポリゴン32を分割する(ステップS805)。
【0032】
一方、交差する点が構成点51でない場合には、第二分割手段15が、線52の先端の位置を開始構成点51aの方向へ数ドット(例えば2ドット)だけ戻すとともに、図10に示すように、その戻した位置から終了構成点51bに近づく方向へ、線52と垂直な線53を引く(ステップS806)。つまり線53は、X軸に平行な線である。そして、第二分割手段15は、線53のx座標が終了構成点51bのx座標と一致する位置まで線53を引くとともに、最後に、当該位置から終了構成点51bまでY軸に平行な線54を引く(ステップS807)。
【0033】
なお、線53を引いている途中で当該線53がポリゴン32を構成する線分と交差した場合には、線53の先端の位置を開始構成点51aの方向へ更に数ドットだけ戻す処理を実行したり、最終構成点51bを変更したりするなどの処理を実行する。
そして、第二分割手段15は、引かれた線52〜54によって、ポリゴン32を分割する(ステップS807)。
【符号の説明】
【0034】
11…ポリゴン分割装置
12…ハードディスク
13…分割点選択手段
14…第一分割手段
15…第二分割手段
16…制御手段
【特許請求の範囲】
【請求項1】
直交するX軸、Y軸の二次元座標上に定義されたベクトルデータにより地物を表現する電子地図データの一部であって、複数の構成点とその構成点を相互に接続する線とによって外形を模ったポリゴンを複数に分割するポリゴン分割装置であって、
ポリゴンデータの構成点が所定値以上であって前記ポリゴンを分割する必要があるとき、そのポリゴンをX軸あるいはY軸と平行に略二等分する仮想線の端点それぞれに最も近接している前記ポリゴンの構成点を選択する分割点選択手段と、
該分割点選択手段により選択された2つの構成点をそれぞれ一方の端点とする、前記仮想線に平行な線分である第一分割線分が一直線上にあるとき、当該第一分割線分により前記ポリゴンを分割する第一分割手段と、
前記第一分割線分が一直線上にないとき、前記ポリゴン内部に存在する点であって第一分割線分上に存在する点を新たな構成点とし、前記第一分割線分と相互の新たな構成点を繋ぐ前記仮想線に垂直な第二分割線分とにより前記ポリゴンを分割する第二分割手段と
を備えることを特徴とするポリゴン分割装置。
【請求項2】
直交するX軸、Y軸の二次元座標上に定義されたベクトルデータにより地物を表現する電子地図データの一部であって、複数の構成点とその構成点を相互に接続する線とによって外形を模ったポリゴンを複数に分割するポリゴン分割装置を用いたポリゴン分割方法であって、
コンピュータが、
ポリゴンデータの構成点が所定値以上であって前記ポリゴンを分割する必要があるとき、そのポリゴンをX軸あるいはY軸と平行に略二等分する仮想線の端点それぞれに最も近接している前記ポリゴンの構成点を選択する分割点選択工程と、
該分割点選択工程により選択された2つの構成点をそれぞれ一方の端点とする、前記仮想線に平行な線分である第一分割線分が一直線上にあるとき、当該第一分割線分により前記ポリゴンを分割する第一分割工程と、
前記第一分割線分が一直線上にないとき、前記ポリゴン内部に存在する点であって第一分割線分上に存在する点を新たな構成点とし、前記第一分割線分と相互の新たな構成点を繋ぐ前記仮想線に垂直な第二分割線分とにより前記ポリゴンを分割する第二分割工程と
を実行することを特徴とするポリゴン分割方法。
【請求項1】
直交するX軸、Y軸の二次元座標上に定義されたベクトルデータにより地物を表現する電子地図データの一部であって、複数の構成点とその構成点を相互に接続する線とによって外形を模ったポリゴンを複数に分割するポリゴン分割装置であって、
ポリゴンデータの構成点が所定値以上であって前記ポリゴンを分割する必要があるとき、そのポリゴンをX軸あるいはY軸と平行に略二等分する仮想線の端点それぞれに最も近接している前記ポリゴンの構成点を選択する分割点選択手段と、
該分割点選択手段により選択された2つの構成点をそれぞれ一方の端点とする、前記仮想線に平行な線分である第一分割線分が一直線上にあるとき、当該第一分割線分により前記ポリゴンを分割する第一分割手段と、
前記第一分割線分が一直線上にないとき、前記ポリゴン内部に存在する点であって第一分割線分上に存在する点を新たな構成点とし、前記第一分割線分と相互の新たな構成点を繋ぐ前記仮想線に垂直な第二分割線分とにより前記ポリゴンを分割する第二分割手段と
を備えることを特徴とするポリゴン分割装置。
【請求項2】
直交するX軸、Y軸の二次元座標上に定義されたベクトルデータにより地物を表現する電子地図データの一部であって、複数の構成点とその構成点を相互に接続する線とによって外形を模ったポリゴンを複数に分割するポリゴン分割装置を用いたポリゴン分割方法であって、
コンピュータが、
ポリゴンデータの構成点が所定値以上であって前記ポリゴンを分割する必要があるとき、そのポリゴンをX軸あるいはY軸と平行に略二等分する仮想線の端点それぞれに最も近接している前記ポリゴンの構成点を選択する分割点選択工程と、
該分割点選択工程により選択された2つの構成点をそれぞれ一方の端点とする、前記仮想線に平行な線分である第一分割線分が一直線上にあるとき、当該第一分割線分により前記ポリゴンを分割する第一分割工程と、
前記第一分割線分が一直線上にないとき、前記ポリゴン内部に存在する点であって第一分割線分上に存在する点を新たな構成点とし、前記第一分割線分と相互の新たな構成点を繋ぐ前記仮想線に垂直な第二分割線分とにより前記ポリゴンを分割する第二分割工程と
を実行することを特徴とするポリゴン分割方法。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【公開番号】特開2011−203785(P2011−203785A)
【公開日】平成23年10月13日(2011.10.13)
【国際特許分類】
【出願番号】特願2010−67848(P2010−67848)
【出願日】平成22年3月24日(2010.3.24)
【出願人】(597151563)株式会社ゼンリン (155)
【Fターム(参考)】
【公開日】平成23年10月13日(2011.10.13)
【国際特許分類】
【出願日】平成22年3月24日(2010.3.24)
【出願人】(597151563)株式会社ゼンリン (155)
【Fターム(参考)】
[ Back to top ]