JP2013152531A - 領域検索方法,領域検索プログラム,および情報処理装置 - Google Patents
領域検索方法,領域検索プログラム,および情報処理装置 Download PDFInfo
- Publication number
- JP2013152531A JP2013152531A JP2012012147A JP2012012147A JP2013152531A JP 2013152531 A JP2013152531 A JP 2013152531A JP 2012012147 A JP2012012147 A JP 2012012147A JP 2012012147 A JP2012012147 A JP 2012012147A JP 2013152531 A JP2013152531 A JP 2013152531A
- Authority
- JP
- Japan
- Prior art keywords
- node
- area
- search
- information
- region
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
【解決手段】コンピュータ2が、ノードを複数の領域のうちの少なくとも一つを含むノード領域に対応付けてツリー構造で前記複数の領域を管理するインデックス情報41を用いた領域の検索により前回検索された領域と、所定の位置との間の距離を取得し、記憶部4に記憶された情報であって複数のノードそれぞれに設定される閾値に関する情報44に基づいて、前記取得した距離よりも大きい閾値のうち、最小の閾値に対応するノードを検索し、前記インデックス情報41を用いて、検索されたノードから前記所定の位置を含む領域を検索し、検索された領域の情報を出力する。
【選択図】図1
Description
空間内に存在する大量のデータから条件に合ったデータを高速に検索するために、情報処理装置では、インデックスを用いたデータ管理方式が利用される。インデックスを用いたデータ管理方式には、例えば、多次元データを検索する場合に用いられるR−Tree(Rツリー)を利用した方式がある。
図27(a)及び(b)に示すように、R1は、中間ノードである子ノードR2及びR3の矩形領域を全て含む矩形領域であり、R2は、R4及びR5の矩形領域を全て含む矩形領域であり、R3は、R6及びR7の矩形領域をすべて含む矩形領域である。また、最下段のR4〜R7は葉ノードであり、内部に領域データを含む矩形領域である。すなわち、R1はR2のインデックス情報となり、R2はR4のインデックス情報となっている。
また、他の関連する技術として、同一位置に複数の異なる情報提供エリアを定義するために、Rツリーにより候補となるエリアを高速に検索し、検索されたエリアから改良された4分木データを利用してエリアを特定し、特定されたエリアに関連するサービスや情報を提供する技術がある。
また、上述した関連する各技術においても、検索操作を実行する都度、ルートノードから検索を開始するので、検索時間を要してしまうことには変わりがない。
なお、前記目的に限らず、後述する発明を実施するための形態に示す各構成により導かれる作用効果であって、従来の技術によっては得られない作用効果を奏することも本発明の他の目的の1つとして位置付けることができる。
〔1〕一実施形態
〔1−1〕領域検索システムの構成例
図1は、一実施形態としての領域検索システム1の構成例を示す図であり、図2は、領域検索システム1のハードウェア構成例を示す図である。図1に例示するように、領域検索システム1は、少なくとも1つ(図1では1つ)の端末装置6と、各端末装置6と通信可能な領域検索サーバ2と、をそなえる。
また、領域検索要求には、端末装置6の位置情報とともに、例えば端末装置6が持つGPS受信機等のセンサーのID(IDentification)(以下、センサーIDという)等の識別IDが含まれる。なお、識別IDは、センサーIDに限定されるものではなく、領域検索を要求する端末装置6の装置IDであっても良いし、端末装置6を利用するユーザやグループ等の固有のIDや、携帯電話の携帯電話番号等の情報であっても良い。
領域検索サーバ(情報処理装置)2は、図1に例示するように、通信インタフェース3、記憶部4、及び、制御部5をそなえる。また、領域検索サーバ2は、図2に例示するように、ハードウェア構成として、記憶装置4a、メモリ4b、CPU(Central Processing Unit)5a、入力装置7、出力装置8、及び、読取装置9をそなえる。なお、領域検索サーバ2としては、PCやサーバ等のコンピュータが挙げられる。
メモリ4bは、種々のデータやプログラムを一時的に格納する記憶装置であって、CPU5aがプログラムを実行する際に、データやプログラムを一時的に格納・展開して用いる。なお、メモリ4bとしては、例えばRAM(Random Access Memory)等の揮発性メモリが挙げられる。本実施形態においては、記憶装置4a及びメモリ4bの少なくとも一方は、領域検索サーバ2において用いられる種々の情報を記憶する記憶部4を構成する。
〔1−2〕領域検索サーバの説明
次に、簡単に、本実施形態に係る領域検索サーバ2について説明する。
従来のRツリーを用いた領域の検索では、領域検索サーバにより、領域検索を行なうたびに、毎回ツリーの最上位ノードから検索が実行されるため、ノードの深さに比例する比較処理が発生する。例えば、領域検索サーバでは、領域検索の際に、検索対象の位置情報を含む非葉ノードの子ノード数の総和に等しい回数の子ノードの範囲の重なり判定を行なうための計算量が発生する。さらに、領域検索サーバでは、検索対象の位置情報が重なる葉ノードが持つ領域データの情報の総和に等しい回数の、領域データが検索対象の位置情報を含むか否かの判定を行なうための計算量が発生する。
一方、領域検索サーバは、あるエリアに領域データが多い(領域データが「密」である)場合については、領域データや中間ノードが重なり合っているため、多くの領域データ及びノードに係る検索が発生する。例えば、検索しようとする領域が集まるエリアとは、繁華街や交通機関等、人や物が集中するエリアであり、領域検索要求として領域検索サーバに与えられる位置情報も、このようなエリアに位置することが多い。従って、従来のRツリーを用いた領域の検索では、検索時間を効率的に削減することが困難であった。
(1)端末装置6(センサーID)ごとに前回検索できた領域を、後述する前回位置情報43として記憶部4に記憶しておき、次回検索を行なう際には、前回検索できた領域の近傍のノードをボトムアップ的に探索する。
ここで、上記(1)及び(2)を実行する場合、前回検索できた領域からの端末装置6の移動距離が比較的短距離である場合には、領域検索サーバ2は、重複領域の探索や前回検索できた領域の近傍のノードの探索によって、検索時間の短縮を図ることができる。
(3)ツリーの葉ノードごとに、葉ノード及びその上位のノードとそれぞれのノードの範囲とを、後述するノード範囲情報44として記憶部4に記憶する。位置情報が与えられると、前回検索できた領域からの移動距離を算出し、前回検索できた領域を含む葉ノードからその上位のノードに向けて順に、移動距離がどのノードの配下に位置するかを推定し、推定したノードから探索を行なう。
〔1−3〕記憶部の説明
次に、図1に例示する記憶部4が記憶する情報について説明する。
記憶部4は、制御部5が実行するプログラム等を記憶するとともに、領域インデックス41と、領域データ情報42と、前回位置情報43と、ノード範囲情報44とを記憶する。
また、ノードR100及びR101は、それぞれ中間ノードR10の子ノード且つ葉ノードであり、ノードR110及びR111は、それぞれ中間ノードR11の子ノード且つ葉ノードである。なお、ノードR10はノードR100及びR101の矩形領域を全て含む矩形領域であり、ノードR11はノードR110及びR111の矩形領域を全て含む矩形領域である。
図4に例示するように、領域インデックス41には、ルートノードの情報として、「ノード種別」、「矩形領域」及び「子ノードリスト」が含まれる。「ノード種別」は、ノードがルート、中間、葉のいずれであるかを示す情報である。「矩形領域」は、子ノードの担当領域(ノード領域)を全て含む最小外接矩形の情報である。「子ノードリスト」は、自身のノード(ここではルートノード)の子ノードへのリンクポインタのリストである。
ここで、領域データ情報42のデータ構造の一例を、図7を参照して説明する。図7は、本実施形態に係る領域データ情報42のデータ構造の一例を示す図である。
ここで、前回位置情報43のデータ構造の一例を、図8を参照して説明する。図8は、本実施形態に係る前回位置情報43のデータ構造の一例を示す図である。
図8に例示するように、前回位置情報43は、センサーID43aごとに、前回検索領域43bを対応付けた情報である。センサーID43aは、領域検索要求の要求元のセンサーの識別IDを示す。なお、前回位置情報43には、センサーID43aの代わりに、センサーID以外の他の識別IDが含まれても良い。前回検索領域43bは、前回領域検索要求があったときに検索できた領域情報を示す。例えば前回検索領域43bには、検索できた場合に当該領域の領域データ(領域ID)が設定され、検索できなかった場合に「未検出」が設定される。
ノード範囲情報44は、領域インデックス41のツリー構造における葉ノードごとに記憶部4に記憶された情報であって、ツリー構造における葉ノードからルートノードまでの複数のノードそれぞれのノード領域の範囲に関する情報である。つまり、ノード範囲情報44には、葉ノード及び葉ノードを自身のノード領域に含むノードそれぞれのノード領域の範囲に関する情報が設定される。
図10(a)及び図11(a)に例示するように、ノード範囲情報44には、ツリー構造における葉ノードからルートノードまでの複数のノードのノード情報44aとノード範囲44bとが対応付けられる。ノード情報44aは、例えばノード(図9(b)に示す例ではノードR1〜R15)へのポインタであり、図10(a)及び図11(a)においては、そのノードを一意に識別可能なIDとして示す。ノード範囲44bは、複数のノードそれぞれのノード領域の範囲に関する情報である。
さらに、ノード範囲44bに設定される範囲は、ノードの基準位置が中心位置である場合、図10(b)及び図11(b)の破線で囲われた範囲における各ノードの範囲であっても良い。すなわち、ノード範囲情報44bには、各ノードの基準位置を原点とした場合における次元軸成分ごとの絶対値が設定されても良い。ノード範囲44bに次元軸成分ごとの絶対値が設定されることにより、後述するノード検索部53bによる計算量を減少させることができ、領域の検索時間を短縮(処理を高速化)することができる。以下、ノード範囲44bには、次元軸成分ごとの絶対値が設定されるものとして説明する。
次に、図1に例示する領域検索サーバ2における、制御部5の機能について説明する。
制御部5は、リクエスト受付部51と、前回領域比較部52と、検索開始ノード決定部53と、ツリー検索部54と、重複領域検索部55と、レスポンス転送部56と、前回領域設定部57と、ノード範囲設定部58とをそなえる。
ここで、リクエスト受付部51が通信インタフェース3を介して受け付ける領域検索要求の内容、及び、レスポンス転送部56が通信インタフェース3を介して出力する領域検索応答の内容について、図12及び図13を参照して説明する。図12は、本実施形態に係る領域検索要求の内容の一例を示す図であり、図13は、領域検索応答の内容の一例を示す図である。
一方、前回領域比較部52は、取り出したセンサーID43aの前回検索領域43bが前回位置情報43に設定されている場合、領域検索要求の中から取り出した位置情報が前回検索領域43bに含まれるか否かを判定する。例えば、前回領域比較部52は、前回検索領域43bに領域ID42aが設定される場合、領域データ情報42を参照して、取り出した位置情報が前回検索領域43bに設定された領域ID42aの領域情報42cに含まれるか否かを判定する。
ノード検索部53bは、ノード範囲情報44に基づいて、距離取得部53aが取得した距離を範囲内に含むノードを検索し、検索できたノードをツリー検索部54に通知して、当該検索できたノードから位置情報を含む領域を検索させる。
具体的には、距離取得部53aは、前回検索領域43bの基準位置と今回位置P1との間の距離を、領域の次元軸に沿った方向ごとに取得する。
図14の例では、距離取得部53aは、前回位置P0から今回位置P1までの移動距離のx軸成分として、前回位置P0を含む領域データXの基準位置(中心位置)と今回位置P1のx軸上の位置との間の距離P1xを算出(取得)する。同様に、距離取得部53aは、前回位置P0から今回位置P1までの移動距離のy軸成分として、領域データXの基準位置(中心位置)と今回位置P1のy軸上の位置との間の距離P1yを算出(取得)する。一例として、距離取得部53aは、今回位置P1のx軸上の座標から前回位置P0のx軸上の座標を減算し、距離P1xを算出するとともに、今回位置P1のy軸上の座標から前回位置P0のy軸上の座標を減算し、距離P1yを算出する。
例えば、図15に示すように、ノード検索部53bは、前回位置P0を含む葉ノードR8に係るノード範囲情報44に基づき、前回位置P0を含む葉ノードR8の基準位置P0′を原点として、距離取得部53aが取得した各方向の距離(P1x及びP1y)よりも大きい範囲を持つノードを検索する。
そして、ノード検索部53bは、決定したノードR2を、検索開始ノードとしてツリー検索部53に通知する。通知した検索開始ノードは、ツリー検索部53によって、後述するボトムアップ検索により位置情報P1を含む領域を検索するのに用いられる。
換言すれば、ノード範囲情報44は、記憶部4に記憶される情報であって複数のノードそれぞれに設定される閾値に関する情報であり、この閾値が、対応するノードのノード範囲44bに相当する。そして、ノード検索部53bは、この閾値に関する情報に基づいて、距離取得部53aが取得した距離よりも大きい閾値のうち、最小の閾値に対応するノードを検索するのである。
図1の説明に戻り、ツリー検索部(領域検索部)54は、領域インデックス41を用いて、所定の位置情報を含む領域を検索する。以下、ツリー検索部によるトップダウン検索及びボトムアップ検索について説明する。
ツリー検索部54は、領域検索要求に含まれる位置情報を含む領域を検索するため、領域インデックス41を用いて、ルートノードから子ノードへトップダウン検索を行なう。なお、トップダウン検索は、前回領域比較部52により、前回位置情報43に領域検索要求から取り出したセンサーIDの前回検索領域が記憶されていないと判断された場合、又は、ノード検索部53bにより、ノード範囲情報44に前回位置からの移動距離が範囲内に含まれるノードがないと判断された場合に実行される。
なお、ツリー検索部54は、位置情報を含む領域データが複数ある場合には、重複領域の数が最も小さい領域データを選択することが望ましい。これは、後述する重複領域検索部55が、さらに位置情報を含む領域データを、選択した領域データの重複領域から検索することとなるので、検索対象となる重複領域の数を減らすためである。
また、ツリー検索部54は、領域検索要求に含まれる位置情報を含む領域を検索するため、領域インデックス41を用いて、ノード検索部53bにより通知された検索開始ノードから子ノード又はルートノードへボトムアップ検索を行なう。
例えば、ツリー検索部54は、検索開始ノードが持つ子ノードのうち、領域検索要求に含まれる位置情報を含む子ノード又は領域データがあるか否かを、領域インデックス41を用いて判定する。
なお、ツリー検索部54は、ボトムアップ検索においても、位置情報を含む領域データが複数ある場合には、重複領域の数が最も小さい領域データを選択することが望ましい。
さらに、重複領域検索部55は、該当する重複領域の領域ID42aを1つずつ選択し、選択した領域ID42aの領域情報42cが位置情報を含むか否かを判定し、位置情報を含む重複領域42dの領域データの領域ID42aを結果リストに追加する。
ここで、結果リストに検索できた領域ID42aが複数ある場合には、前回領域設定部57は、複数ある領域ID42aのうち、重複領域の数が最小の領域ID42aを選択し、選択した領域ID42aを前回位置情報43に設定すれば良い。これにより、次回の領域検索要求の位置情報が前回設定された領域ID42aの領域に含まれていれば、続いて行なわれる当該領域データと重複する重複領域に係る検索回数を減らすことができる。
例えば、ノード範囲設定部58は、インデックスが構築される際に、ルートノードから中間ノードを経由して葉ノードに向けてそれぞれのノード範囲44bを計算し、計算したノード範囲44bを伝搬することでノード範囲情報44を生成する。
〔1−5〕領域検索サーバの動作例
次に、上述の如く構成された本実施形態に係る領域検索サーバ2(領域検索システム1)における動作例を図17〜図24を参照しながら説明する。
はじめに、本実施形態に係る領域検索サーバ2(領域検索システム1)のリクエスト受付処理の動作例を、図17を参照して説明する。図17は、本実施形態に係るリクエスト受付処理の手順の一例を示すフローチャートである。
まず、リクエスト受付部51により、端末装置6から領域検索要求を受け付けたか否かが判定される(ステップS1)。領域検索要求を受け付けていないと判定された場合(ステップS1のNoルート)、リクエスト受付部51により、領域検索要求を受け付けるまで、判定処理が繰り返される。一方、領域検索要求を受け付けたと判定された場合(ステップS1のYesルート)、制御部5により、後述する領域検索処理が実行される(ステップS2)。
〔1−5−2〕領域検索処理
次に、本実施形態に係る領域検索サーバ2における領域検索処理の動作例を図18〜図21を参照しながら説明する。図18〜図21は、本実施形態に係る領域検索処理の手順の一例を示すフローチャートである。
また、ステップS11において、問合せ側のセンサーID43aの前回検索領域43bが前回位置情報43に設定されていない場合(ステップS11のNoルート)、ルートノードからのトップダウン検索を実行すべく、図19のステップS21に移行する。
選択ノードが葉ノードでないと判定された場合(ステップS22のNoルート)、ツリー検索部54により、選択ノードの子ノードに検出対象位置を含むものがあるか否かが、領域インデックス41を用いて判定される(ステップS23)。
また、ステップS22において、選択ノードが葉ノードであると判定された場合(ステップS22のYesルート)、ツリー検索部54により、選択した葉ノードが持つ領域データのうち、検出対象位置を含むものがあるか否かが判定される(ステップS29)。選択した葉ノードが持つ領域データのうち、検出対象位置を含むものがないと判定された場合(ステップS29のNoルート)、次の選択候補ノードを検索すべく、ステップS25に移行する。
また、図18のステップS12において、検出対象位置が前回検索領域43b内にないと判断された場合(ステップS12のNoルート)、ノード範囲情報44を用いた検索開始ノードの決定処理を実行すべく、図20のステップS41に移行する。
次いで、検索開始ノード決定部53(ノード検索部53b)により、前回検索領域43bを含むインデックスツリーの葉ノードに係るノード範囲情報44から、当該葉ノードのノード範囲44bが取り出される(ステップS42)。
また、ステップS43において、取り出したノード範囲44bが全次元で算出した移動距離よりも大きいと判定された場合(ステップS43のYesルート)、ノード検索部53bにより、取り出したノード範囲44bのノードが検索開始ノードに決定される。そして、ツリー検索部54による検索開始ノードからのボトムアップ検索を実行すべく、図21のステップS52に移行する。
また、ステップS52において、選択ノードが検出対象位置を含むと判定された場合(ステップS52のYesルート)、ツリー検索部54により、選択した選択ノードが葉ノードであるか否かが、領域インデックス41を用いて判定される(ステップS56)。選択ノードが葉ノードでないと判定された場合(ステップS56のNoルート)、ツリー検索部54により、選択ノードの子ノードに検出対象位置を含むものがあるか否かが、領域インデックス41を用いて判定される(ステップS57)。
次に、本実施形態に係る領域検索サーバ2における領域データ追加処理の動作例を図22及び図23を参照しながら説明する。図22及び図23は、本実施形態に係る領域データ追加処理の手順の一例を示すフローチャートである。
まず、制御部5により、領域インデックス41に基づいて、ルートノードが選択される(ステップS71)。そして、制御部5により、選択した選択ノードが葉ノードであるか否かが判定される(ステップS72)。
一方、追加領域を包含するものがないと判定された場合(ステップS73のNoルート)、制御部5により、追加領域を含めると拡大量が最小になる子ノードが選択ノードとして選択され(ステップS75)、ステップS72に移行する。
続いて、制御部5により、選択した葉ノードに追加領域の領域データが追加され(ステップS81)、ステップS82に移行する。一例として、制御部5は、領域インデックス41の該当する葉ノードのデータリストに、追加領域の領域データへのポインタ、例えば領域ID42aを追加するとともに、領域データ情報42に追加領域の領域データを追加する。なお、このとき、制御部5は、領域データ情報42を用いて、追加領域の領域データと重複する領域データを検索し、互いに重複する領域データの重複領域42dに互いの領域ID42aを設定して、領域データ情報42を更新することができる。
また、ステップS83の処理により、追加する親ノードの持つ子ノード数が上限を超える場合がある。
そこで、ステップS83の処理によって、追加する親ノードの持つ子ノード数が上限を超えるか否かが、制御部5により判定される(ステップS84)。追加する親ノードの持つ子ノード数が上限を超えない場合(ステップS84のNoルート)、領域データ追加処理が終了する。
なお、ステップS83、S86又はS87においてノードが分割される際には、制御部5により、領域インデックス41が更新される。
次に、本実施形態に係る領域検索サーバ2におけるノード範囲設定処理の動作例を図24を参照しながら説明する。図24は、本実施形態に係るノード範囲設定処理の手順の一例を示すフローチャートである。
まず、ノード範囲設定部58により、領域インデックス41を用いて、ノード領域が生成・更新されたノードのうちの最上位のノードが選択される(ステップS91)。例えば、インデックスが構築される際には、全てのノードのノード領域が生成されるため、ノード範囲設定部58は、ルートノードを選択する。また、図22及び図23を参照して説明したように、領域データの追加(又は削除)等が行なわれる際には、領域データの追加等により、葉ノードのノード領域が更新されたり、ノードの分割又は結合が発生し上位のノードのノード領域が更新される可能性があるため、ノード領域が更新されたノードのうちの最上位のノードを選択する。
なお、領域データの追加又は削除が行なわれる際等、既にノード範囲情報44が設定されている場合には、ノード範囲設定部58は、ノード領域が更新されたノードのうちの最上位のノードに係る更新前のノード範囲44bが設定されたノード範囲情報44を予め削除しても良い。つまり、ノード範囲設定部58は、当該最上位のノードに含まれる全ての葉ノードに係るノード範囲情報44を予め削除しても良い。或いは、ノードの分割又は結合が発生していない場合には、ノード範囲設定部58は、ノード範囲情報44を削除する代わりに、算出したノード範囲44bを更新前のノード範囲に上書きしても良い。
一方、全ての選択候補ノードのノード範囲44bの算出が終了したと判定された場合(ステップS97のYesルート)、ノード範囲設定部58により、子ノードを持つ選択候補ノードがあるか否かが判定される(ステップS98)。ノード範囲設定部58により、選択候補ノードがいずれも子ノードを持たないと判定された場合(ステップS98のNoルート)、ノード範囲設定処理が終了する。一方、少なくとも1つの選択候補ノードが子ノードを持つと判定された場合(ステップS98のYesルート)、ステップS94に移行する。つまり、ノード範囲設定部58により、ステップS94において、少なくとも1つの選択候補ノードが持つ子ノードが、新たな選択候補ノードとして決定される。
上述のように、一実施形態に係る領域検索サーバ2によれば、木構造の空間インデックス(領域インデックス41)を用いて、与えられた位置情報がどの領域に含まれるかを探索する際に、距離取得部53aにより、前回検索領域43bと、位置情報との間の距離が取得される。そして、ノード検索部53bにより、記憶部4に記憶された情報であって複数のノードそれぞれに設定される閾値に関するノード範囲情報44に基づいて、距離取得部53aが取得した距離よりも大きい閾値のうち、最小の閾値に対応するノードが検索される。
図25は、図20及び図21に示すノード範囲情報44及び検索開始ノード決定部53を用いた領域検索処理に対する対比例としての領域検索処理の手順の一例を示すフローチャートである。ここで、図25のステップS51〜S62は、図21のステップS51〜S62に相当するものである。
一方、領域検索サーバ2は、移動距離が比較的長距離(中距離以上)になる場合は、検索対象の位置情報を含む領域データが発見されず、ボトムアップでルートノードまで検索し、さらにルートノードから検索することになる可能性が高い。特に、領域データが一定エリアに集中する(領域データが「密」である)場合には、検索対象の位置情報を含む領域データがボトムアップでルートノードに到達するまで発見されない可能性が高い。これは、上述の如く個々のノードに含まれる領域データやノードの上限が定められているため、個々のノードの大きさが小さくなり、領域データが「疎」の場合と比べて、移動距離が小さくても別のノードに移動している可能性が高いためである。従って、図25に示す例では、領域検索サーバ2は、移動距離が比較的長距離になる場合は、結果的にツリーのルートノードから検索が行なわれることになり、前回位置情報43を記憶する利点が得られず、検索処理を高速化することが困難である。また、領域検索サーバ2は、移動距離が比較的長距離の場合に、ボトムアップ検索を行なわずに、ルートノードから検索を開始するように構成することも考えられるが、比較的長距離であると判定するための条件は、端末装置6の位置やノードの範囲によって異なるため、切り分けが難しい。
そこで、本実施形態に係る領域検索サーバ2によれば、ノード範囲情報44及び検索開始ノード決定部53をそなえ、ボトムアップ探索を行なう移動距離の閾値を複数設け、それぞれの閾値を探索ノードの大きさに合わせる。そして、領域検索サーバ2は、検索開始ノード決定部53により、前回検索できた領域と所定の位置との間の距離(移動距離)を算出し、移動距離よりも大きい閾値のうち、最小の閾値に対応するノードを検索して、ツリー検索部54により検索したノードから領域の検索を行なうのである。
以上、本発明の好ましい実施形態について詳述したが、本発明は、かかる特定の実施形態に限定されるものではなく、本発明の趣旨を逸脱しない範囲内において、種々の変形、変更して実施することができる。
例えば、図1及び図2に示した各装置の各構成要素は、必ずしも物理的に図示の如く構成されなくても良い。例えば、前回領域比較部52、検索開始ノード決定部53、ツリー検索部54、及び、重複領域検索部55を任意の組み合わせで統合しても良い。一方、ツリー検索部54を、葉ノードにおける検索処理と葉ノード以外のノードにおける検索処理とに分散しても良い。また、領域インデックス41、領域データ情報42、前回位置情報43又はノード範囲情報44等の記憶部4を領域検索サーバ2の外部装置としてネットワーク経由で接続するようにしても良い。
なお、制御部5は、上述の如く、リクエスト受付部51、前回領域比較部52、検索開始ノード決定部53(距離取得部53a及びノード検索部53b)、ツリー検索部54、重複領域検索部55、レスポンス転送部56、前回領域設定部57及びノード範囲設定部58としての機能をそなえる。この制御部5としての機能を実現するためのプログラム(領域検索プログラム)は、例えばフレキシブルディスク,CD(CD−ROM,CD−R,CD−RW等),DVD(DVD−ROM,DVD−RAM,DVD−R,DVD+R,DVD−RW,DVD+RW,HD DVD等),ブルーレイディスク,磁気ディスク,光ディスク,光磁気ディスク等の、コンピュータ読取可能な記録媒体に記録された形態で提供されても良い。そして、コンピュータは例えば読取装置9によりその記録媒体からプログラムを読み取って内部記憶装置または外部記憶装置に転送し格納して用いる。また、そのプログラムを、例えば磁気ディスク,光ディスク,光磁気ディスク等の記憶装置(記録媒体)に記録しておき、その記憶装置から通信回線を介してコンピュータに提供するようにしても良い。
以上の実施形態に関し、更に以下の付記を開示する。
(付記1)
コンピュータが、
ノードを複数の領域のうちの少なくとも一つを含むノード領域に対応付けてツリー構造で前記複数の領域を管理するインデックス情報を用いた領域の検索により前回検索された領域と、所定の位置との間の距離を取得し、
記憶部に記憶された情報であって複数のノードそれぞれに設定される閾値に関する情報に基づいて、前記取得した距離よりも大きい閾値のうち、最小の閾値に対応するノードを検索し、
前記インデックス情報を用いて、検索されたノードから前記所定の位置を含む領域を検索し、
検索された領域の情報を出力する
ことを特徴とする、領域検索方法。
前記複数のノードそれぞれに設定される複数の閾値に関する情報は、前記ツリー構造における葉ノードごとに前記記憶部に記憶された情報であって、前記ツリー構造における該葉ノードからルートノードまでの複数のノードそれぞれのノード領域の範囲に関する情報であり、
前記ノードを検索する処理において、前記取得した距離を範囲内に含むノードを検索することを特徴とする、付記1記載の領域検索方法。
前記距離を取得する処理において、前記前回検索された領域の基準位置と前記所定の位置との間の前記距離を取得し、
前記複数のノードそれぞれのノード領域の範囲に関する情報は、前記複数のノードに対応する前記ノード領域の基準位置を一致させた状態で規定されていることを特徴とする、付記2記載の領域検索方法。
前記距離を取得する処理において、前記前回検索された領域と前記所定の位置との間の距離を、前記領域の次元軸に沿った方向ごとに取得し、
前記ノードを検索する処理において、前記記憶部に記憶された前記情報に基づいて、全ての次元軸に沿った方向で前記取得した各方向の距離よりも大きい範囲を持つノードを検索することを特徴とする、付記2または付記3記載の領域検索方法。
前記ノードを検索する処理において、前記記憶部に記憶された、前記前回検索された領域を含む葉ノードに係る前記情報に基づいて、前記取得した距離を範囲内に含むノードを検索することを特徴とする、付記2〜4のいずれか1項記載の領域検索方法。
(付記6)
前記ノードを検索する処理において、前記記憶部に記憶された前記情報に基づいて、前記複数のノードのうちの葉ノードから上位のノードに向かって順に、前記取得した距離を範囲内に含むか否かを判断し、
判断の結果、前記取得した距離を範囲内に含む場合、当該ノードを、前記検索されたノードとして決定することを特徴とする、付記2〜5のいずれか1項記載の領域検索方法。
前記所定の位置を含む領域を検索する処理において、検索されたノードに対応するノード領域に前記所定の位置が含まれない場合、前記インデックス情報を用いて、前記検索されたノードよりもルートノードに近いノードから前記所定の位置を含む領域を検索することを特徴とする、付記1〜6のいずれか1項記載の領域検索方法。
前記所定の位置を含む領域の問合せ要求を取得すると、該所定の位置が前回検索された領域に含まれるか否かを判定し、
判定の結果、前記所定の位置が前記前回検索された領域に含まれない場合、前記距離を取得する処理を実行することを特徴とする、付記1〜7のいずれか1項記載の領域検索方法。
判定の結果、前記所定の位置が前記前回検索された領域に含まれる場合、前記前回検索された領域と重複する領域の中から前記所定の位置を含む領域を検索し、
前記前回検索された領域の情報とともに前記重複する領域から検索された領域の情報を出力することを特徴とする、付記8記載の領域検索方法。
コンピュータに、
ノードを複数の領域のうちの少なくとも一つを含むノード領域に対応付けてツリー構造で前記複数の領域を管理するインデックス情報を用いた領域の検索により前回検索された領域と、所定の位置との間の距離を取得し、
記憶部に記憶された情報であって複数のノードそれぞれに設定される閾値に関する情報に基づいて、前記取得した距離よりも大きい閾値のうち、最小の閾値に対応するノードを検索し、
前記インデックス情報を用いて、検索されたノードから前記所定の位置を含む領域を検索し、
検索された領域の情報を出力する、
処理を実行させることを特徴とする、領域検索プログラム。
前記複数のノードそれぞれに設定される複数の閾値に関する情報は、前記ツリー構造における葉ノードごとに前記記憶部に記憶された情報であって、前記ツリー構造における該葉ノードからルートノードまでの複数のノードそれぞれのノード領域の範囲に関する情報であり、
前記ノードを検索する処理において、前記取得した距離を範囲内に含むノードを検索する処理を前記コンピュータに実行させることを特徴とする、付記10記載の領域検索プログラム。
前記距離を取得する処理において、前記前回検索された領域の基準位置と前記所定の位置との間の前記距離を取得する処理を前記コンピュータに実行させ、
前記複数のノードそれぞれのノード領域の範囲に関する情報は、前記複数のノードに対応する前記ノード領域の基準位置を一致させた状態で規定されることを特徴とする、付記11記載の領域検索プログラム。
前記距離を取得する処理において、前記前回検索された領域と前記所定の位置との間の距離を、前記領域の次元軸に沿った方向ごとに取得し、
前記ノードを検索する処理において、前記記憶部に記憶された前記情報に基づいて、全ての次元軸に沿った方向で前記取得した各方向の距離よりも大きい範囲を持つノードを検索する、処理を前記コンピュータに実行させることを特徴とする、付記11または付記12記載の領域検索プログラム。
前記ノードを検索する処理において、前記記憶部に記憶された、前記前回検索された領域を含む葉ノードに係る前記情報に基づいて、前記取得した距離を範囲内に含むノードを検索する処理を前記コンピュータに実行させることを特徴とする、付記11〜13のいずれか1項記載の領域検索プログラム。
前記ノードを検索する処理において、前記記憶部に記憶された前記情報に基づいて、前記複数のノードのうちの葉ノードから上位のノードに向かって順に、前記取得した距離を範囲内に含むか否かを判断し、
判断の結果、前記取得した距離を範囲内に含む場合、当該ノードを、前記検索されたノードとして決定する、処理を前記コンピュータに実行させることを特徴とする、付記11〜14のいずれか1項記載の領域検索プログラム。
前記所定の位置を含む領域を検索する処理において、検索されたノードに対応するノード領域に前記所定の位置が含まれない場合、前記インデックス情報を用いて、前記検索されたノードよりもルートノードに近いノードから前記所定の位置を含む領域を検索する処理を前記コンピュータに実行させることを特徴とする、付記10〜15のいずれか1項記載の領域検索プログラム。
前記所定の位置を含む領域の問合せ要求を取得すると、該所定の位置が前回検索された領域に含まれるか否かを判定し、
判定の結果、前記所定の位置が前記前回検索された領域に含まれない場合、前記距離を取得する処理を実行する、処理を前記コンピュータに実行させることを特徴とする、付記10〜16のいずれか1項記載の領域検索プログラム。
ノードを複数の領域のうちの少なくとも一つを含むノード領域に対応付けてツリー構造で前記複数の領域を管理するインデックス情報を用いた領域の検索により前回検索された領域と、所定の位置との間の距離を取得する距離取得部と、
複数のノードそれぞれに設定される閾値に関する情報を記憶する記憶部と、
前記記憶部に記憶された前記情報に基づいて、前記距離取得部が取得した距離よりも大きい閾値のうち、最小の閾値に対応するノードを検索するノード検索部と、
前記インデックス情報を用いて、前記ノード検索部により検索されたノードから前記所定の位置を含む領域を検索する領域検索部と、
前記領域検索部により検索された領域の情報を出力する出力部と、をそなえることを特徴とする、情報処理装置。
前記記憶部が記憶する前記複数のノードそれぞれに設定される複数の閾値に関する情報は、前記ツリー構造における葉ノードごとに記憶される情報であって、前記ツリー構造における該葉ノードからルートノードまでの複数のノードそれぞれのノード領域の範囲に関する情報であり、
前記ノード検索部は、前記記憶部に記憶された前記情報に基づいて、前記距離取得部が取得した距離を範囲内に含むノードを検索することを特徴とする、付記18記載の情報処理装置。
前記距離取得部は、前記前回検索された領域の基準位置と前記所定の位置との間の前記距離を取得し、
前記記憶部に記憶された、前記複数のノードそれぞれのノード領域の範囲に関する情報は、前記複数のノードに対応する前記ノード領域の基準位置を一致させた状態で規定されることを特徴とする、付記19記載の情報処理装置。
2 領域検索サーバ(情報処理装置)
3 通信インタフェース
4 記憶部
4a 記憶装置
4b メモリ
41 領域インデックス(インデックス情報)
42 領域データ情報
43 前回位置情報
44 ノード範囲情報
5 制御部
5a CPU
51 リクエスト受付部
52 前回領域比較部
53 検索開始ノード決定部
53a 距離取得部
53b ノード検索部
54 ツリー検索部(領域検索部)
55 重複領域検索部
56 レスポンス転送部(出力部)
57 前回領域設定部
58 ノード範囲設定部
6 端末装置(領域問合せ装置)
7 入力装置
8 出力装置
9 読取装置
Claims (7)
- コンピュータが、
ノードを複数の領域のうちの少なくとも一つを含むノード領域に対応付けてツリー構造で前記複数の領域を管理するインデックス情報を用いた領域の検索により前回検索された領域と、所定の位置との間の距離を取得し、
記憶部に記憶された情報であって複数のノードそれぞれに設定される閾値に関する情報に基づいて、前記取得した距離よりも大きい閾値のうち、最小の閾値に対応するノードを検索し、
前記インデックス情報を用いて、検索されたノードから前記所定の位置を含む領域を検索し、
検索された領域の情報を出力する
ことを特徴とする、領域検索方法。 - 前記複数のノードそれぞれに設定される複数の閾値に関する情報は、前記ツリー構造における葉ノードごとに前記記憶部に記憶された情報であって、前記ツリー構造における該葉ノードからルートノードまでの複数のノードそれぞれのノード領域の範囲に関する情報であり、
前記ノードを検索する処理において、前記取得した距離を範囲内に含むノードを検索することを特徴とする、請求項1記載の領域検索方法。 - 前記距離を取得する処理において、前記前回検索された領域の基準位置と前記所定の位置との間の前記距離を取得し、
前記複数のノードそれぞれのノード領域の範囲に関する情報は、前記複数のノードに対応する前記ノード領域の基準位置を一致させた状態で規定されていることを特徴とする、請求項2記載の領域検索方法。 - 前記距離を取得する処理において、前記前回検索された領域と前記所定の位置との間の距離を、前記領域の次元軸に沿った方向ごとに取得し、
前記ノードを検索する処理において、前記記憶部に記憶された前記情報に基づいて、全ての次元軸に沿った方向で前記取得した各方向の距離よりも大きい範囲を持つノードを検索することを特徴とする、請求項2または請求項3記載の領域検索方法。 - 前記ノードを検索する処理において、前記記憶部に記憶された前記情報に基づいて、前記複数のノードのうちの葉ノードから上位のノードに向かって順に、前記取得した距離を範囲内に含むか否かを判断し、
判断の結果、前記取得した距離を範囲内に含む場合、当該ノードを、前記検索されたノードとして決定することを特徴とする、請求項2〜4のいずれか1項記載の領域検索方法。 - コンピュータに、
ノードを複数の領域のうちの少なくとも一つを含むノード領域に対応付けてツリー構造で前記複数の領域を管理するインデックス情報を用いた領域の検索により前回検索された領域と、所定の位置との間の距離を取得し、
記憶部に記憶された情報であって複数のノードそれぞれに設定される閾値に関する情報に基づいて、前記取得した距離よりも大きい閾値のうち、最小の閾値に対応するノードを検索し、
前記インデックス情報を用いて、検索されたノードから前記所定の位置を含む領域を検索し、
検索された領域の情報を出力する、
処理を実行させることを特徴とする、領域検索プログラム。 - ノードを複数の領域のうちの少なくとも一つを含むノード領域に対応付けてツリー構造で前記複数の領域を管理するインデックス情報を用いた領域の検索により前回検索された領域と、所定の位置との間の距離を取得する距離取得部と、
複数のノードそれぞれに設定される閾値に関する情報を記憶する記憶部と、
前記記憶部に記憶された前記情報に基づいて、前記距離取得部が取得した距離よりも大きい閾値のうち、最小の閾値に対応するノードを検索するノード検索部と、
前記インデックス情報を用いて、前記ノード検索部により検索されたノードから前記所定の位置を含む領域を検索する領域検索部と、
前記領域検索部により検索された領域の情報を出力する出力部と、をそなえることを特徴とする、情報処理装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2012012147A JP5765253B2 (ja) | 2012-01-24 | 2012-01-24 | 領域検索方法,領域検索プログラム,および情報処理装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2012012147A JP5765253B2 (ja) | 2012-01-24 | 2012-01-24 | 領域検索方法,領域検索プログラム,および情報処理装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2013152531A true JP2013152531A (ja) | 2013-08-08 |
JP5765253B2 JP5765253B2 (ja) | 2015-08-19 |
Family
ID=49048840
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2012012147A Expired - Fee Related JP5765253B2 (ja) | 2012-01-24 | 2012-01-24 | 領域検索方法,領域検索プログラム,および情報処理装置 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP5765253B2 (ja) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2015130103A (ja) * | 2014-01-08 | 2015-07-16 | 日本電気株式会社 | 情報処理装置、検索方法、及び、プログラム |
US11995059B2 (en) | 2018-11-27 | 2024-05-28 | Alibaba Group Holding Limited | Database index and database query processing method, apparatus, and device |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2000076253A (ja) * | 1998-08-28 | 2000-03-14 | Nippon Telegr & Teleph Corp <Ntt> | 位置関連情報検索方式 |
JP2001109760A (ja) * | 1999-10-06 | 2001-04-20 | Toshiba Corp | 地理情報表示装置とそれを実行するプログラムを記憶した記憶媒体 |
JP2002049622A (ja) * | 2000-08-02 | 2002-02-15 | Nec Corp | 位置関連情報取得装置及びそのシステム並びにその方法並びにそれに用いるプログラムを記録した記録媒体 |
JP2004198157A (ja) * | 2002-12-17 | 2004-07-15 | Pioneer Electronic Corp | ナビゲーション装置、周辺施設検索方法、コンピュータプログラム及び情報記憶媒体 |
US6879980B1 (en) * | 2001-06-29 | 2005-04-12 | Oracle International Corporation | Nearest neighbor query processing in a linear quadtree spatial index |
JP2009199151A (ja) * | 2008-02-19 | 2009-09-03 | Hitachi Ltd | k最近傍検索方法、k最近傍検索プログラム及びk最近傍検索装置 |
JP2011179868A (ja) * | 2010-02-26 | 2011-09-15 | Sanyo Electric Co Ltd | ナビゲーション装置 |
-
2012
- 2012-01-24 JP JP2012012147A patent/JP5765253B2/ja not_active Expired - Fee Related
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2000076253A (ja) * | 1998-08-28 | 2000-03-14 | Nippon Telegr & Teleph Corp <Ntt> | 位置関連情報検索方式 |
JP2001109760A (ja) * | 1999-10-06 | 2001-04-20 | Toshiba Corp | 地理情報表示装置とそれを実行するプログラムを記憶した記憶媒体 |
JP2002049622A (ja) * | 2000-08-02 | 2002-02-15 | Nec Corp | 位置関連情報取得装置及びそのシステム並びにその方法並びにそれに用いるプログラムを記録した記録媒体 |
US6879980B1 (en) * | 2001-06-29 | 2005-04-12 | Oracle International Corporation | Nearest neighbor query processing in a linear quadtree spatial index |
JP2004198157A (ja) * | 2002-12-17 | 2004-07-15 | Pioneer Electronic Corp | ナビゲーション装置、周辺施設検索方法、コンピュータプログラム及び情報記憶媒体 |
JP2009199151A (ja) * | 2008-02-19 | 2009-09-03 | Hitachi Ltd | k最近傍検索方法、k最近傍検索プログラム及びk最近傍検索装置 |
JP2011179868A (ja) * | 2010-02-26 | 2011-09-15 | Sanyo Electric Co Ltd | ナビゲーション装置 |
Non-Patent Citations (1)
Title |
---|
JPN6015018739; 坂田 一拓、外2名: '通知型の位置関連情報提供サービスの提案と,その実現方式の検討' 情報処理学会研究報告 第2000巻,第112号, 20001201, p.73-80, 社団法人情報処理学会 * |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2015130103A (ja) * | 2014-01-08 | 2015-07-16 | 日本電気株式会社 | 情報処理装置、検索方法、及び、プログラム |
US11995059B2 (en) | 2018-11-27 | 2024-05-28 | Alibaba Group Holding Limited | Database index and database query processing method, apparatus, and device |
JP7539884B2 (ja) | 2018-11-27 | 2024-08-26 | アリババ・グループ・ホールディング・リミテッド | データベースインデックスおよびデータベースクエリ処理方法、装置、およびデバイス |
Also Published As
Publication number | Publication date |
---|---|
JP5765253B2 (ja) | 2015-08-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11461289B2 (en) | Apparatus, systems, and methods for providing location information | |
US9860704B2 (en) | Venue identification from wireless scan data | |
JP5925338B2 (ja) | 無線ネットワークアクセスポイントの発見 | |
JP2010020490A (ja) | 未訪問地の情報提供装置及び未訪問地の情報提供方法 | |
US9453741B2 (en) | Navigation system with indexed term searching and method of operation thereof | |
Duckham et al. | Efficient, decentralized computation of the topology of spatial regions | |
WO2009069882A1 (en) | Sensor network managing apparatus and method thereof | |
JP5678790B2 (ja) | インデックス管理方法、インデックス管理プログラムおよびインデックス管理装置 | |
CN117235285B (zh) | 融合知识图谱数据的方法及装置 | |
Rahman et al. | Hdbscan: Density based clustering over location based services | |
EP1859602B1 (en) | Distributed storing of network position information for nodes | |
JP5765253B2 (ja) | 領域検索方法,領域検索プログラム,および情報処理装置 | |
JP6086021B2 (ja) | 検索システムおよび検索方法 | |
JP2014048916A (ja) | 周辺情報検索装置、周辺情報検索方法、及び周辺情報検索プログラム | |
KR101687755B1 (ko) | 공간정보의 동적 서비스 제공 방법 | |
JP5776403B2 (ja) | 領域検索方法、領域検索プログラムおよび情報処理装置 | |
KR20190079353A (ko) | 다중 키워드 도메인 기반 공간-키워드 검색 장치 및 방법, 이를 기록한 기록매체 | |
JP6167531B2 (ja) | 領域検索方法、領域インデックス構築方法および領域検索装置 | |
CN113254724B (zh) | 网络空间发现方法、装置、电子设备及存储介质 | |
US10210272B1 (en) | Window query monitoring for mobile devices and central database servers with a tree-like index | |
CN116010677A (zh) | 空间索引方法、装置及其电子设备 | |
KR20220135025A (ko) | 공간정보모델링을 위한 객체 군집화 방법 및 그 장치 | |
Sarkar | Geometric Methods of Information Storage and Retrieval in Sensor Networks |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20140904 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20150427 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20150519 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20150601 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 5765253 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
LAPS | Cancellation because of no payment of annual fees |