(57)【要約】【課題】  検索要求で指定された範囲に属する図形データをさらに高速で検索することができる図形データ管理方法およびシステムを提供すること。【解決手段】  格納された図形データについてその外接矩形の座標値をインデックスとして格納したインデックス格納手段を備え、図形データの検索要求に対し、当該検索要求で指定された検索範囲に属する図形を前記インデックスを参照して検索するた図形データ管理方法において、検索要求で指定された検索範囲内に、外接矩形の頂点が全く存在しない図形、１つの頂点のみが存在する図形、検索範囲外の２つの頂点を結ぶ線分が検索範囲と交差しない図形を、前記インデックスのみの参照によって検索範囲外の図形として決定するステップを備えることを特徴とする。【選択図】      図１７
2005135440.tif 000002
【特許請求の範囲】
【請求項１】
図形データを格納する図形データ格納手段と、格納された図形データについてその外接矩形の座標値をインデックスとして格納したインデックス格納手段を備え、図形データの検索要求に対し、当該検索要求で指定された検索範囲に属する図形を前記インデックスを参照して検索する図形データ管理方法において、検索要求で指定された検索範囲内に、外接矩形の頂点が全く存在しない図形、１つの頂点のみが存在する図形、検索範囲外の２つの頂点を結ぶ線分が検索範囲と交差しない図形を、前記インデックスのみの参照によって検索範囲外の図形として決定するステップを備えることを特徴とする図形データ管理方法。
【請求項２】
図形データを格納する図形データ格納手段と、格納された図形データについてその外接矩形の座標値をインデックスとして格納したインデックス格納手段を備え、図形データの検索要求に対し、当該検索要求で指定された検索範囲に属する図形を前記インデックスを参照して検索する図形データ管理システムにおいて、検索要求で指定された検索範囲内に、外接矩形の頂点が全く存在しない図形、１つの頂点のみが存在する図形、検索範囲外の２つの頂点を結ぶ線分が検索範囲と交差しない図形を、前記インデックスのみの参照によって検索範囲外の図形として決定する手段を備えることを特徴とする図形データ管理システム。
【請求項３】
図形データを格納する図形データ格納手段と、格納された図形データについてその外接矩形の座標値をインデックスとして格納したインデックス格納手段を備え、図形データの検索要求に対し、当該検索要求で指定された検索範囲に属する図形を前記インデックスを参照して検索する図形データ管理システムにおいて図形データを検索するためのプログラムを記録した媒体であって、検索要求で指定された検索範囲内に、外接矩形の頂点が全く存在しない図形、１つの頂点のみが存在する図形、検索範囲外の２つの頂点を結ぶ線分が検索範囲と交差しない図形を、前記インデックスのみの参照によって検索範囲外の図形として決定する処理をコンピュータに実行させるプログラムを記録した記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ｘｙ平面の２次元空間における図形、またはｘｙｚの３次元空間における図形を図形データベースに登録し、検索要求に応じて、該当する図形を出力する図形管理方法およびシステムに係り、特に、大量の図形から成る地図データ等を扱うのに好適な図形管理方法およびシステムに関するものである。
【背景技術】
【０００２】
従来において、形状および大きさが多種にわたる大量の図形から成る地図データを管理するシステムにおいては、高速検索を実現するために、（１）図形データ自体を矩形形状の複数のメッシュ領域に分割して格納する方法、（２）格納領域を矩形形状の複数のメッシュ領域に分割し、図形データを１つのメッシュ領域、または複数のメッシュ領域に跨る図形については最近傍のメッシュ領域に格納する方法、（３）下記の特許文献１に開示されているように、メッシュ境界に跨る図形データについては仮想的なメッシュに格納する方法が知られている。
【特許文献１】特開平５−１９７７９０号公報
【発明の開示】
【発明が解決しようとする課題】
【０００３】
しかしながら、上記（１）〜（３）のいずれの従来方法においても、図形データを１つまたは複数のメッシュ領域に分割して格納するため、それらの図形データをポインタ等で互いに対応付けて管理し、検索に際しては、分割した図形データをポインタに従って元に戻して出力することが必要になり、管理が面倒であり、また検索結果を得るまでの時間が長くなってしまうという問題がある。
【０００４】
また、複数のメッシュ領域のうち近傍のメッシュ領域に跨って格納する方法では、検索時に周囲のメッシュ領域を余分に検索する必要が生じ、検索時間が長くなってしまうという問題がある。
【０００５】
また、図形データ自体をメッシュ領域に分割する方法では、複数のメッシュ領域を検索した結果を元の図形データに復元する必要があるので、検索結果を得るまでの時間が長くなってしまうという問題がある。
【０００６】
本発明の第１の目的は、形状および大きさが多種の図形データの管理が容易で、高速検索が可能な図形データ管理方法およびシステムを提供することにある。
【０００７】
本発明の第２の目的は、図形データを格納する場合の時間を大幅に短縮することができる図形データ管理方法およびシステムを提供することにある。
【０００８】
本発明の第３の目的は、検索要求で指定された範囲に属する図形データをさらに高速で検索することができる図形データ管理方法およびシステムを提供することにある。
【課題を解決するための手段】
【０００９】
上記第１の目的を達成するために、本発明は、矩形領域を最深層に向って順次分割した階層構造のメッシュ領域に対応した４分木階層インデックスの格納手段を設け、管理対象の図形の外接矩形を他のメッシュ領域に跨ぐことなく包含し得る最深層のメッシュ領域を探索し、当該メッシュ領域に対応するインデックスに対し管理対象の図形の外接矩形の座標値を識別情報を付加して前記４分木階層インデックスの格納手段に格納するステップと、前記識別情報と対応付けて該当図形データを前記図形データ格納手段に格納するステップと、格納された図形データの検索要求に対し、当該検索要求で指定された検索範囲に属する図形を前記４分木階層インデックスを参照して検索するステップとを備えることを特徴とする。
【００１０】
また、上記第２の目的を達成するために、本発明は、矩形領域を最深層に向って順次分割した階層構造のメッシュ領域に対応した４分木階層インデックスの格納手段を設け、管理対象の図形の外接矩形における対角のｘｙ座標値の最小値および最大値を被除数、最深層の前記メッシュ領域の矩形領域幅を除数とする除算によって、前記最小値および最大値を他のメッシュ領域に跨ぐことなく包含し得る最深層のメッシュ領域を示す４分木階層インデックスの値を算出するステップと、算出した４分木階層インデックスの値で示されるメッシュ領域に対応するインデックスに対し管理対象の図形の外接矩形の座標値を識別情報を付加して前記４分木階層インデックスの格納手段に格納するステップと、前記識別情報と対応付けて該当図形データを前記図形データ格納手段に格納するステップとを備えることを特徴とする。
【００１１】
また、上記第３の目的を達成するために、本発明は、格納された図形データについてその外接矩形の座標値をインデックスとして格納したインデックス格納手段を備え、図形データの検索要求に対し、当該検索要求で指定された検索範囲に属する図形を前記インデックスを参照して検索するた図形データ管理方法において、検索要求で指定された検索範囲内に、外接矩形の頂点が全く存在しない図形、１つの頂点のみが存在する図形、検索範囲外の２つの頂点を結ぶ線分が検索範囲と交差しない図形を、前記インデックスのみの参照によって検索範囲外の図形として決定するステップを備えることを特徴とする。
【発明の効果】
【００１２】
以上のように本発明によれば、図形をその外接矩形の存在領域で管理することにより、各階層のインデックス内のみの検索によって該当する図形データを検索して出力することができる。また、外接矩形が存在しない他のメッシュ領域のインデックスは検索する必要がないため、他のインデックスを検索するのに必要な時間だけ検索時間が短縮され、高速検索が可能になる。
また、除算、排他的論理和演算などの演算処理によって対象図形の外接矩形の座標値を格納する際の最適なインデックス階層を求めるようにしたため、その最適なインデックス階層を高速に求めることができ、図形データの格納時間のさらなる短縮を図ることができる。
また、検索処理において、外接矩形と検索範囲の関係を分類し、外接矩形の検索範囲外の２つの頂点を結ぶ線分が検索範囲と交差しない図形については検索結果として採用しないようにしたため、外接矩形が検索範囲に接触するような図形が多く含まれるような場合であっても、図形検索インデックス内のみの検索だけで済み、図形データベースからの図形データの読出しを行わなくてもよいので、検索時間を短縮することができる。この結果、階層数が多い地図データなどを扱うシステムにおいて極めて有効なものとなる。
【発明を実施するための最良の形態】
【００１３】
以下、本発明を図示する実施形態を参照して詳細に説明する。
図１は、本発明を適用した図形データ管理システムの一実施形態を示すシステム構成図である。この実施形態のシステムは、図形の検索を行うユーザが使用するクライアントコンピュータとしての中央処理装置１０１、図形の検索および登録を行う図形管理サーバコンピュータ１０２とから構成されている。中央処理装置１０１には、ユーザが使用する座標入力装置１０３や検索結果を表示する表示装置１０４が付属している。また、図形管理サーバコンピュータ１０２は、図形検索装置１０５、図形登録装置１０６、地図データなどを構成する各種の図形を階層構造のインデックスで管理される格納領域に格納する図形データベース１０７、図形検索のための階層構造のインデックスを格納した図形検索インデックスファイル１０８、図形を登録する際に用いる図形入力装置１０９から構成されている。
【００１４】
図形検索装置１０５内には図形検索プログラム１０５ａが組み込まれ、この図形検索プログラム１０５ａによって検索要求に対する図形検索を行うようになっている。また、図形登録装置１０６には、図形登録プログラム１０６ａが組み込まれ、この図形登録プログラム１０６ａによって、各種の図形を階層構造のインデックスのうち各図形の外接矩形を包含し得る大きさを有する最深層のメッシュ領域に対応するインデックスで管理される格納領域に格納するようになっている。
なお、図形入力装置１０９は、１つの図形を構成する頂点や中心点の座標値、半径の値などを入力するポインティングデバイスあるいはデジタイザまたはキーボード、あるいはイメージスキャナなどで構成されるものである。また、クライアントコンピュータとしての中央処理装置１０１は、図形管理サーバコンピュータ１０２に直接接続する構成、あるいはＬＡＮやＷＡＮなどのネットワークを介して接続する構成にすることができる。
【００１５】
図２は、各種の大きさの図形データが階層構造のインデックスのうち、いずれのインデックスで管理されるかを模式的に示した図である。図形データの格納領域を管理するインデックスは、図形データの格納領域を２次元の矩形領域に対応させた場合に、その矩形領域を特定するものである。
本実施形態において、矩形領域は、図２に示すように、最浅層（レベル０）の矩形領域を最深層に向って順次４分割され、それぞれの分割矩形領域毎に１つのインデックスが対応付けられる。ここで、分割矩形領域をメッシュ領域と定義するものとすると、図２の例では、レベル０の階層は１つのメッシュ領域、その下層であるレベル１の階層は４つのメッシュ領域、最深層のメッシュ領域は１６個のメッシュ領域から構成され、それぞれのメッシュ領域毎に１つのインデックスが対応付けられる。これらのインデックスは、木構造に階層化され、４分木インデックスを構成している。
【００１６】
図形データを格納する場合、図形データを従来技術のように近傍のメッシュに格納するか、または複数のメッシュ領域に分割するのでなく、その図形データを包含し得るメッシュ領域のうち最深層のメッシュ領域に対応するインデックスで管理される図形データ格納領域に格納する。
図２に例示するような図形２０１〜２０４を格納する場合、図形２０３と２０４は当該図形の大きさがレベル２のメッシュ領域に包含し得る大きさであるので、レベル２のメッシュ領域に対応するインデックスで管理される図形データ格納領域に格納する。この場合、図形２０３はレベル２の１６個のメッシュ領域のうち当該図形２０３が存在する座標領域の１つのメッシュ領域に対応するインデックスで管理される図形データ格納領域に格納する。また、図形２０４も同様に、レベル２の１６個のメッシュ領域のうち当該図形２０４が存在する座標領域の１つのメッシュ領域に対応するインデックスで管理される図形データ格納領域に格納する。また、図形２０２は、当該図形２０２の大きさがレベル１のメッシュ領域に包含し得る大きさであるので、レベル１の４つのメッシュ領域のうち、図形２０２が存在する座標領域の１つのメッシュ領域に対応するインデックスで管理される図形データ格納領域に格納する。また、図形２０１は、当該図形２０１の大きさがレベル０のメッシュ領域に包含し得る大きさであるので、レベル０のメッシュ領域に対応するインデックスで管理される図形データ格納領域に格納する。
【００１７】
図形データベース１０７に格納される図形データ３００は、図３に示すように、３０４〜３０６で示すような各種の図形について、それらの図形を構成する頂点の座標値と図形種別から成るデータ３０２に対し図形ＩＤ３０１を付加して格納される。なお、図形種別とは、点、折れ線、多角形、円などの図形の種類を指すものである。
【００１８】
図４は、図形検索インデックスファイル１０８に格納されるインデックス４００の構造の一例を示す図であり、レベル０のメッシュ領域ｍ０（００）に対しては１つのインデックス、レベル１の４つのメッシュ領域ｍ１（００）〜ｍ１（１１）に対しては４つのインデックス、レベル２の１６個のメッシュ領域ｍ２（００）〜ｍ２（３３）に対しては１６個のインデックスが設けられている。そして、各インデックスにおいては、３０４〜３０６で示すような各種の図形について、これらの図形の外接矩形の対角の座標値「ｘｍｉｎ，ｙｍｉｎ」と「ｘｍａｘ，ｙｍａｘ」から成る図形座標値４０２に対し図形ＩＤ４０１を付加した構成で格納されるようになっている。
【００１９】
ここで、外接矩形の対角の座標値「ｘｍｉｎ，ｙｍｉｎ」と「ｘｍａｘ，ｙｍａｘ」とは、図５に示すように対象となる図形５０１を囲む外接矩形５０２の対角Ｐ１，Ｐ２のｘｙ座標値のことである。
【００２０】
本実施形態においては、対象となる図形の外接矩形の対角の座標値「ｘｍｉｎ，ｙｍｉｎ」と「ｘｍａｘ，ｙｍａｘ」から成る図形座標値４０２を各階層（各レベル）のインデックスに格納することにより、図形単位の格納データが固定長のデータとなり、インデックス自体の管理も容易になっている。
【００２１】
以上の構成において、まず、管理対象となる図形データを図形データベース１０７に格納する処理について図６のフローチャートを参照して説明する。この処理は、図形登録装置１０６の図形登録プログラム１０６ａの１つの機能である。
図６において、まず、管理対象の図形の外接矩形を他のメッシュ領域に跨ぐことなく包含し得る最深層のメッシュ領域を探索する（ステップ６０１）。外接矩形が他のメッシュ領域に跨ぐとは、図７（ａ）に示すように、外接矩形７０１が複数のメッシュ領域７０２，７０３に跨いで存在する状態を指し、メッシュ跨りなしとは、図７（ｂ）に示すように外接矩形７０１が１つのメッシュ領域７０４内に完全に包含される状態を指すものである。
【００２２】
次に、探索したメッシュ領域に対応するインデックスに対し管理対象の図形の外接矩形の座標値４０２を図形ＩＤ４０１を付加して格納する（ステップ６０２）。次に、前記図形ＩＤ４０１と対応付けて該当図形データを図形データベース１０７に格納する（ステップ６０３）。
【００２３】
格納された図形データの検索要求が入力された場合、その検索要求で指定された検索範囲に属する、または接触する図形を４分木階層のインデックス４００を参照して検索する。詳しくは、検索範囲に属する、または接触する座標値４０２を持つインデックスが存在するか否かを検索し、存在した場合には、そのインデックスの図形ＩＤ４０１を取得し、該図形ＩＤ４０１から対応する図形の座標値３０２を図形データベース１０７から読出し、図形データとして出力する。
【００２４】
この場合、階層構造のインデックスのうち最深層のインデックスから検索を開始し、検索範囲が複数のメッシュ領域を跨ぐような場合には、１段浅い層の検索に移る。例えば図８に示すように、レベル２のメッシュ領域の符号８０１で示す検索範囲が指定された場合、この検索領域はレベル２の２つのメッシュ領域を跨いでいるため、レベル１の検索に移り、このレベル１のインデックス内に該当する図形が存在するか否かを検索する。図８の例では、レベル１のメッシュ領域ｍ１（１０）に対応するインデックス内に該当する図形が存在するか否かを検索することになる。
【００２５】
このように、図形をその外接矩形の存在領域で管理することにより、各階層のインデックス内のみの検索によって該当する図形データを検索して出力することができる。また、外接矩形が存在しない他のメッシュ領域のインデックスは検索する必要がないため、高速検索が可能になる。例えば、図８の符号８０２で示す検索範囲が指定された場合、最深層であるレベル２のメッシュ領域ｍ２（３３）に対応する１つのインデックスのみを検索すればよく、他のインデックスは検索する必要がない。
図８の符号８０１で示す検索範囲が指定された場合でも同様に、レベル１のメッシュ領域ｍ１（１０）に対応する１つのインデックスのみを検索すればよく、他のインデックスは検索する必要がない。この他のインデックスを検索するのに必要な時間だけ検索時間が短縮され、高速検索が可能になる。
【００２６】
ところで、図形データを検索する場合、外接矩形が検索範囲に完全包含される場合は問題ないが、検索範囲に一部が接触する図形をどのように取扱うかが問題になる。すなわち、図９に検索範囲を円で指定した場合の例を示しているが、図９（ａ）の外接矩形９０１は検索範囲９００の内部に完全に包含されているので、外接矩形９０１内の図形を検索結果として直ちに出力することができる。
また、同図（ｃ）の外接矩形９０３は検索範囲９００の外部にあるので、この外接矩形９０３内の図形は検索範囲外のものであることを直ちに決定することができる。しかし、同図（ｂ）の外接矩形９０２は一部が検索範囲の境界に跨って存在している。
【００２７】
従来においては、外接矩形９０２のような図形が存在した場合、図１０に示すように、外接矩形９０２内の図形９０４の各頂点の全てが検索範囲９００内に存在するか、一部が外に存在するかの詳細チェックを実行し、図１０（ａ）に示すように図形９０４の各頂点の全てが検索範囲内９００に存在する場合は検索結果として出力し、図１０（ｂ）に示すように図形９０５の一部の頂点が検索範囲９００の外に存在する場合は検索結果として不採用とする処理を行うようにしていた。
すなわち、外接矩形が検索要求で指定された検索範囲内に完全に内包するか否かという処理を行い、次に検索範囲に跨る（または接触する）が外接矩形についてはその外接矩形内の図形の全ての頂点が検索範囲内に完全に内包されるかを調べる詳細チェック処理という２段構えの検索を常に行うようにしていた。
このため、検索範囲に跨る（または接触する）外接矩形が多い場合、対象となる図形を実際に読み出して判定することが多くなり、検索処理時間が長くなってしまうという問題があった。
【００２８】
本実施形態においては、検索範囲と外接矩形の関係を図１１に示すように分類し、同図（ｄ）、（ｆ）に示すような関係になっている図形については、その外接矩形が検索範囲に接触している場合でも、実際に図形データを読み出さずに外接矩形の存在領域のみで不採用とし、検索時間のさらなる短縮を図るようにしている。
すなわち、同図（ａ）の図形データの外接矩形１１０１は検索範囲１１００に完全包含されているので、検索結果として採用する。同図（ｂ）の図形データの外接矩形１１０２および１１０３は検索範囲１１００に接触しているが、外接矩形１１０２の図形は検索範囲内に属し、一方の外接矩形１１０３の図形は１つの頂点が検索範囲外に突出している。
従って、実際に図形データを読み出して判定する詳細チェック要の図形として扱う。同様に、同図（ｃ）の図形データの外接矩形１１０４および１１０５は検索範囲１１００に接触しているが、外接矩形１１０４の図形は検索範囲内に属し、一方の外接矩形１１０５の図形は２つの頂点が検索範囲外に突出している。従って、実際に図形データを読み出して判定する詳細チェック要の図形として扱う。
また、同図（ｅ）の図形データの外接矩形１１０７および１１０８は検索範囲１１００に接触しているが、外接矩形１１０７の図形は検索範囲内に属し、一方の外接矩形１１０８の図形は１つの頂点が検索範囲外に突出している。
従って、実際に図形データを読み出して判定する詳細チェック要の図形として扱う。
また、同図（ｇ）の図形データの外接矩形１１１０は検索範囲１１００の外に属しているので、検索結果として採用しない。
【００２９】
しかし、同図（ｄ）および（ｆ）に示すような外接矩形１１９６、１１０９の図形は、外接矩形が検索範囲１１００に接触しているが、図形の頂点の一部が検索範囲１１００の外に突出している。すなわち、検索範囲の外にある外接矩形の２つの頂点を結ぶ線分が検索範囲と交差していない。このような図形については、図形データを実際に読み出すことなく、外接矩形の存在領域（詳しくは、頂点の存在領域）のみによって検索結果として不採用にすることを決定する。
このような分類に対応する検索論理を組み込んでおくことにより、図１１（ｂ），（ｃ），（ｄ）のような関係の場合のみ詳細チェックを行えばよいことになり、実際の図形データ読出し回数が少なくなり、その分だけ高速検索が可能になる。
【００３０】
図１２は、分類に対応する検索論理を組み込んだ検索処理の手順を示すフローチャートである。
まず、検索対象となる図形データが含まれる検索範囲の座標値の入力を受付ける（ステップ１２０１）。次に、入力された座標値の検索範囲内に外接矩形が完全包含される図形、外接矩形が検索範囲に接触する図形が格納されているかを図形検索インデックスファイル１０８を参照して探索する（ステップ１２０２）。すなわち、外接矩形が検索範囲内に完全包含される座標値を持つインデックス、および外接矩形が検索範囲に接触する座標値を持つインデックスが存在するか否かを４分木階層構造のインデックス４００から探索し、存在する場合には、そのインデックスから該当する図形ＩＤを取得する。次に、外接矩形が検索範囲内に完全包含される図形については、その図形ＩＤによって対応する図形データを図形データベース１０７から検索して出力する。また、外接矩形が検索範囲に接触する図形については、その外接矩形と検索範囲との関係を調べる（ステップ１２０３）。
この結果、図１１（ｄ），（ｆ），（ｇ）に示すような関係であれば、検索範囲外のものとする(ステップ１２０４)。
しかし、図１１（ｂ），（ｃ），（ｅ）のような関係であれば、詳細チェック要とし、次に、詳細チェックを行うモードが設定されているかどうかを判定し(ステップ１２０５)、設定されている場合には、該当する図形データを図形ＩＤによって図形データベース１０７から読出し、外接矩形の中の図形が検索範囲内に完全包含されているか否かをチェックし、完全包含されている図形データのみを検索結果として出力する（ステップ１２０６）。
しかし、詳細チェックを行うモードが設定されていない場合には、詳細チェックを行うことなく処理を終了する。なお、詳細チェックを行うモードについては、図形データの内容や検索時間を勘案し、必要に応じて設ける構成にすることができる。
【００３１】
＜外接矩形の座標値を格納するインデックス階層の決定方法の実施形態＞
ところで、本発明は、管理対象の図形の外接矩形を他のメッシュ領域に跨ぐことなく包含し得る最深層のメッシュ領域を探索し、当該メッシュ領域に対応するインデックスに対し管理対象の図形の外接矩形の座標値を識別情報を付加して格納することを１つの特徴とするものであるが、インデックスの探索の仕方が問題になる。
すなわち、例えば図２の図形２０３は当該図形を十分に包含する座標範囲を持つレベル１またはレベル０の階層にも格納可能であるが、レベル１またはレベル０の階層に格納した場合、検索範囲が広くなるために検索に要する処理時間が長くなってしまう。
これに対し、レベル２の階層に格納した場合、検索範囲が小さいので処理時間を短縮することができる。
したがって、図形を格納するに際しては、検索時間が最も短くなるように、対象となる図形を包含し得る最小領域のメッシュ領域、換言すれば、対象となる図形を包含し、かつ２つ以上のメッシュ領域に跨がらないような最深の階層（図２の図形２０３の場合、レベル２の階層）を探索し、その階層のインデックスに外接矩形の座標値を格納する必要がある。
【００３２】
対象となる外接矩形の座標値をどの階層のインデックスに格納すれば最適であるかを探索する方法として、以下の２つ方法が考えられる。
（１）４分木の根から、順に１階層ずつ調査層を深めながら最適な階層を検索する。
（２）４分木の葉（最深部）から、順に１階層ずつ調査層を浅くしながら、最適な階層を検索する。
方法（１）を図示すると、図１３のように表すことができ、（ａ）→（ｂ）→（ｃ）の順で検索を行う。
【００３３】
まず、対象となる図形の外接矩形１３０１を生成し、この外接矩形１３０１を４分木の根に相当するレベル０の階層の矩形領域で包含でき、かつ外接矩形１３０１の対角の座標値ｘｍｉｎ，ｙｍｉｎ，ｘｍａｘ，ｙｍａｘが２つ以上の矩形領域に跨っていないかどうかを調べる。
レベル０において「メッシュ跨りなし」であった場合、次の層であるレベル１の階層で同様の処理を行う。
図１３の例ではレベル１の階層においても「メッシュ跨り」がないので、次のレベル２の階層での判定に進み、同様の処理を行う。図１３の例では、「メッシュ跨り」があることが判明するので、このレベル２の階層が「メッシュを跨る最浅層」であるとわかる。よって、この層より１段浅いレベル１の階層が目的の「メッシュを跨らない最深層」となり、このレベル１の階層に格納する。
【００３４】
しかしながら、この（１）方法では、層の総数ｎに比例する回数の探索処理を行わなければ、最適な階層を決定するまでの探索時間が長くなってしまうという問題がある。
方法（２）を図示すると、図１４のように表すことができる。方法（１）と同様に（ａ）→（ｂ）の順で検索を行う。
まず、４分木の最深層から検索を行う。図１４の例では最深層はレベル２である。
外接矩形１４０１はレベル２では「メッシュ跨り」があることが判明するので、１段浅い層であるレベル１の階層での判定に進み、同様の処理を行う。図１４の例では、「メッシュ跨り」がないので、このレベル１の階層が目的の「メッシュを跨らない最深層」となる。
しかしながら、この（２）の方法でも、層の総数ｎに比例する回数の探索処理を行わなければ、最適な階層を決定することができず、探索時間が長くなってしまうという問題がある。
【００３５】
そこで、本発明では、次のような演算処理を行うことによって、層の層数によらない固定回数の演算で、外接矩形を他のメッシュ領域に跨ることなく包含し得る最深層のメッシュ領域を探索し、そのメッシュ領域に対応するインデックスに対し、外接矩形の座標値を格納する。
以下、この処理について詳細に説明する。本発明においては、管理対象となる図形を登録する際、当該図形の外接矩形の座標値（詳しくは、対角の座標値）を格納するインデックスを４分木階層インデックスとして求める。この４分木階層インデックスは、ｘ軸の２分木階層インデックスとｙ軸の２分木階層インデックスで構成されるものであるが、説明を簡単にするために、ｘ軸の２分木階層インデックスを代表して説明する。
【００３６】
図１５は、ｘ軸の２分木階層インデックスの概念を表した説明図である。
図１５に示すように、インデックス領域の幅（すなわち、レベル０の階層における矩形領域の幅）をｘｌｅｎ，最深階層までの深さをｄｅｐｔｈとした場合に、最深階層の任意の座標点ｘが最深階層までどのような２分木を通るかを考える。なお、図１５において、インデックス領域の幅ｘｌｅｎ、インデックスの最深部の１つの矩形領域の幅ｄｘは、次のように表すことができる。
（数１）
ｘｌｅｎ＝ｉｎｄｅｘ．ｘｍａｘ−ｉｎｄｅｘ．ｘｍｉｎ
ｄｘ＝ｘｌｅｎ／２ｄｅｐｔｈ
【００３７】
図１５の２分木階層インデックスを２分木で表すと、図１６に示すようなものとなる。
図１６から分かるように、図１５の任意の座標点ｘは、“０１１”のビット列で表すことができる２分木を通ることが分かる。
このビット列は、次の計算式で求めることができる。
（数２）
ｍｅｓｈｉｄ．ｘ＝ｉｎｔ（ｘ／ｄｘ）
但し、ｉｎｄｅｘ．ｘｍｉｎ≦ｘ≦ｉｎｄｅｘ．ｘｍａｘすなわち、図１５の任意の座標点ｘの２分木インデックスｍｅｓｈｉｄ．ｘは、ｍｅｓｈｉｄ．ｘ＝３／１＝３＝“０１１”というビット列ｂで表すことができる。この場合、ビット列ｂの“０１１”は２進数表現である。
このことは、「数１」の計算（除算）を１回実行することによって、任意の座標点ｘの２分木階層インデックスを求めることができることを意味している。
本発明は、「数２」の計算（除算）を外接矩形の座標値ｘｍｉｎ，ｙｍｉｎ，ｘｍａｘ，ｙｍａｘについて実行し、それぞれの座標値の２分木インデックスに相当するビット列ｂ（ｘｍｉｎ），ｂ（ｙｍｉｎ），ｂ（ｘｍａｘ），ｂ（ｙｍａｘ）を求め、各座標点を共通に包含し得る最深の格納階層までの４分木階層インデックスを求め、その４分木階層インデックスで示される階層のインデックスに外接矩形の座標値を格納するものである。
【００３８】
なお、ｙ軸方向については、「数２」のｄｘがｄｙに置き換わるのみである。すなわち、ｙ軸方向については、
（数３）
ｍｅｓｈｉｄ．ｙ＝ｉｎｔ（ｙ／ｄｙ）
但し、ｉｎｄｅｘ．ｙｍｉｎ≦ｙ≦ｉｎｄｅｘ．ｙｍａｘによって任意の座標点ｙの２分木階層インデックスを求めることができる。この場合、矩形領域を２分割、４分割、８分割という具合に「２のべき乗個」に分割する場合、ｄｘ＝ｄｙとなる。
なお、本発明は「２のべき乗個」の分割だけでなく、２×３分割、３×４分割などの場合にも適用可能なものである。
【００３９】
以下、図１７のフローチャートを参照して任意の図形を格納する際の最適なインデックス階層を求める図形登録プログラム１０６ａの処理について説明する。
図１７において、
（１）ｘｍｉｎについて、「数２」の除算を１回実行し、最深部までの２分木のビット列ｂ（ｘｍｉｎ）を算出する（ステップ１７０１）。
（２）ｙｍｉｎについて、「数３」の除算を１回実行し、最深部までの２分木のビット列ｂ（ｙｍｉｎ）を算出する(ステップ１７０２)。
（３）ｘｍａｘについて、「数２」の除算を１回実行し、最深部までの２分木のビット列ｂ（ｘｍａｘ）を算出する（ステップ１７０３）。
（４）ｙｍａｘについて、「数３」の除算を１回実行し、最深部までの２分木のビット列ｂ（ｙｍａｘ）を算出する(ステップ１７０４)。
（５）ｘｍｉｎの２分木のビット列ｂ（ｘｍｉｎ）とｘｍａｘの２分木のビット列ｂ（ｘｍａｘ）との排他的論理和演算を１回実行し、ｘ軸で一致している最深層Ｌｘを求める（ステップ１７０５）。
（６）ｙｍｉｎの２分木のビット列ｂとｙｍａｘの２分木のビット列ｂ（ｙｍａｘ）との排他的論理和演算を１回実行し、ｙ軸で一致している最深層Ｌｙを求める（ステップ１７０６）。
（７）上記ステップ１７０５と１７０５で求めたＬｘとＬｙの論理和演算を１回実行し、ｘｙともに一致している最深層Ｌｘｙを求める(ステップ１７０７)。
（８）ステップ１７０１で求めたビット列ｂ（ｘｍｉｎ）またはステップ１７０３で求めたビット列ｂ（ｘｍａｘ）と最深層Ｌｘｙまで“１”が続くビット列との論理積演算を１回実行し、最深層までのｘの２分木Ａを求める（ステップ１７０８）。この場合、最深層Ｌｘｙまで“１”が続くビット列は、このようなビット列を生成する処理を組み込んでおくことによって生成される。
（９）前記と同様に、ステップ１７０２で求めたビット列ｂ（ｙｍｉｎ）またはステップ１７０４で求めたビット列ｂ（ｙｍａｘ）と最深層Ｌｘｙまで“１”が続くビット列との論理積演算を１回実行し、最深層までのｙの２分木Ｂを求める（ステップ１７０９）。
(１０)２分木ＡとＢにより、各座標点を共通に包含し得る最深層までの４分木階層インデックスのビット列を求め、その４分木階層インデックスのビット列で示される階層のインデックスに対象図形データの外接矩形の座標値を格納する（ステップ１７１０）。
【００４０】
以上のように、除算４回、排他的論理和演算２回、論理和演算１回、論理積演算２回で、目的とする「４分木に対象図形の外接矩形の座標値を格納する際の最適なインデックス階層の探索」が完了する。これはインデックス階層の総数ｎが何段であろうとも不変であり、ｎが大きければ大きいほど計算量が増える従来の手法と比較して極めて有効なものとなる。
なお、上記の演算は、図形登録装置１０６に内蔵されるレジスタあるいは演算用に確保した記憶エリアを用いて実行することは言うまでもない。
【００４１】
図形の具体例を挙げて上記の処理について説明する。
図１８のような座標目盛の２次元空間に多角形１８０１を登録するものと仮定すると、その外接矩形１８０２の２つの対角の座標値ｘｍｉｎ，ｙｍｉｎ，ｘｍａｘ，ｙｍａｘは、ｘｍｉｎ＝１４．５ｙｍｉｎ＝２５．５ｘｍａｘ＝１４・５ｙｍａｘ＝２９．５であるから、ステップ１７０１の演算を実行することにより、ｘｍｉｎについての２分木ビット列ｂ（ｘｍｉｎ）として“０１１００”が得られる。
同様にして、ステップ１７０２の演算を実行することにより、ｙｍｉｎについての２分木ビット列ｂ（ｙｍｉｎ）として“１１００１”が得られる。また、ステップ１７０３の演算を実行することにより、ｘｍａｘについての２分木ビット列ｂ（ｘｍａｘ）として“０１１１０”が得られる。また、ステップ１７０４の演算を実行することにより、ｙｍａｘについての２分木ビット列ｂ（ｙｍａｘ）として“１１１０１”が得られる。
【００４２】
次に、ステップ１７０５の排他的論理和演算を実行することにより、“０１１００”と“０１１１０”の排他的論理和演算結果として“０００１０”が得られる。このビット列は左からの“０”の個数が「矩形領域が一致している層数」、最初に“１”が現れるビットが「メッシュ跨り」が生じる最浅層を示しているので、ｘ軸ついては、最深層から数えて３番目の階層に格納すれば、「メッシュ跨り」を起こさない階層に格納できることを意味している。
【００４３】
同様にして、ステップ１７０６の排他的論理和演算を実行することにより、“１１１０１”と“１１００１”の排他的論理和演算結果として“００１００”が得られる。このことは、前記と同様に、ｙ軸については、最深層から数えて４番目の階層に格納すれば、「メッシュ跨り」を起こさない階層に格納できることを意味している。
【００４４】
ｘ軸、ｙ軸とも「メッシュ跨り」を起こさない階層することが必要であるから、次に、ステップ１７０７の論理和演算を実行することにより、“０００１０”と“００１００”の論理和演算結果として“００１１０”が得られる。この結果、最深層から数えて４番目のインデックス階層に格納すれば、ｘ軸、ｙ軸とも「メッシュ跨り」を起こさないインデックス階層に格納できることが分かる。
【００４５】
そこで、インデックス階層が５階層であったとすると、“メッシュ跨りが生じていない階層、図１８の例では４番目の階層まで“１”が続くビット列“１１０００”と“０１１００”の論理積演算結果としてｘ軸についての２分木Ａとして“０１０００”が得られる。また、ステップ１７０９の演算を実行することにより、“１１００１”と“１１０００”の論理積演算結果としてｙ軸についての２分木Ｂとして“１１０００”が得られる。
この結果、図１８に示した多角形１８０１は、これらの２分木Ａ＝“０１０００”と、２分木Ｂ＝“１１０００”の両者を組み合わせた４分木の階層に格納される。
以上の演算過程をまとめると、図１９のようになる。
【００４６】
ところで、図１１のように外接図形と検索範囲の関係を分類し、外接図形の存在領域のみで検索範囲外の図形とするか、検索範囲内の図形とするかは、図４に示したような階層構造の４分木階層インデックスを使用する場合に限らず、階層化しないインデックスを使用する場合でも適用可能である。
図２０に階層化しないインデックスの構造例を示している。
このインデックス２０００には、外接矩形の大きさに関係無く、各種の図形３０４〜３０８の外接矩形の対角の座標値２００２が図形ＩＤ２００１を付加して格納される。
【００４７】
このような階層化しないインデックス２０００を用いる場合の検索処理は図１２の処理と全く同様にして行うことができる。ただし、図１２の４分木階層インデックスを単なるインデックスと読み替える必要がある。
【００４８】
なお、上記の説明では、２次元空間の図形を格納し、また検索する例を説明したが、本発明は２次元空間の図形に限らず、３次元空間の立体図形についても同様に扱うことができる。
３次元空間の立体図形を扱う場合、図２１に示すように、ｘｙｚの３次元空間を小さな直方体メッシュ２１０１に分割し、その直方体メッシュ２１０１を２×２×２など複数合成して１段上の直方体メッシュ２１０２を構成し、その合成直方体メッシュをまた複数合成してさらに大きな直方体メッシュ２１０３を合成することを繰り返すことにより、３次元空間を階層的に分割して管理することができる。
【００４９】
また、立体図形の存在領域も２次元と同様に（ｘｍｉｎ，ｙｍｉｎ，ｚｍｉｎ）−（ｘｍａｘ，ｙｍａｘ，ｚｍａｘ）で表すことにより、各々の図形を完全内包している直方体メッシュに属させることができる。このようにすることにより、３次元空間での図形を管理することが可能になる。
【００５０】
また、図６、図１２および図１７で示した処理はＣＤ-ＲＯＭ等の記録媒体に格納し、パーソナルコンピュータ等のクライアントコンピュータにインストールして実行させることにより、汎用のパーソナルコンピュータ等で同様の図形登録または図形検索が可能になる。
【図面の簡単な説明】
【００５１】
【図１】本発明を適用した図形管理システムの一実施形態を示すシステム構成図である。
【図２】各種の大きさの図形データが階層構造のインデックスのうち、いずれのインデックスで管理されるかを模式的に示した図である。
【図３】図形データの格納構造を示す図である。
【図４】階層構造の図形検索インデックスの構造を示す図である。
【図５】図形の外接図形の説明図である。
【図６】４分木階層インデックスを用いた検索処理の手順を示すフローチャートである。
【図７】メッシュ跨り有りの図形とメッシュ跨り無しの図形の例を示す図である。
【図８】４分木階層インデックスを用いた検索処理の説明図である。
【図９】検索範囲を指定することによって検索される図形の例を示す図である。
【図１０】図形の外接矩形が検索範囲に接触した場合に、詳細検索を行う必要がある図形の例を示す図である。
【図１１】図形の外接矩形が検索範囲に接触した場合に、詳細検索を行って検索される図形と検索結果から除外される図形の例を示す図である。
【図１２】外接矩形と間作範囲の関係を図１１のように分類した場合の図形検索処理の手順を示すフローチャートである。
【図１３】インデックス階層を最浅層から順に探索する技術の説明図である。
【図１４】インデックス階層を最深層から順に探索する技術の説明図である。
【図１５】ｘ軸の２分木インデックスの概念を表した説明図である。
【図１６】ｘ軸の２分木構造を表した説明図である。
【図１７】図形登録処理におけるインデックス階層を求める処理のフローチャートである。
【図１８】図形登録処理におけるインデックス階層を求める場合の図形の具体例を示す説明図である。
【図１９】図形登録処理におけるインデックス階層を求める場合の演算過程の具体例を示す説明図である。
【図２０】階層化しないインデックス構造の例を示す図である。
【図２１】本発明を３次元空間上の図形に適用する場合の格納空間の分割の仕方を示す図である。
【符号の説明】
【００５２】
１０１…中央処理装置、１０２…図形管理サーバコンピュータ、１０３…座標入力装置、１０４…表示装置、１０５…図形検索装置、１０６…図形登録装置、１０７…図形データベース、１０８…図形検索インデックスファイル、１０９…図形入力装置。
【図１】
2005135440.tif 000003
【図２】
2005135440.tif 000004
【図３】
2005135440.tif 000005
【図４】
2005135440.tif 000006
【図５】
2005135440.tif 000007
【図６】
2005135440.tif 000008
【図７】
2005135440.tif 000009
【図８】
2005135440.tif 000010
【図９】
2005135440.tif 000011
【図１０】
2005135440.tif 000012
【図１１】
2005135440.tif 000013
【図１２】
2005135440.tif 000014
【図１３】
2005135440.tif 000015
【図１４】
2005135440.tif 000016
【図１５】
2005135440.tif 000017
【図１６】
2005135440.tif 000018
【図１７】
2005135440.tif 000019
【図１８】
2005135440.tif 000020
【図１９】
2005135440.tif 000021
【図２０】
2005135440.tif 000022
【図２１】
2005135440.tif 000023