JP6065708B2 - 情報処理方法、装置及びプログラム - Google Patents

情報処理方法、装置及びプログラム Download PDF

Info

Publication number
JP6065708B2
JP6065708B2 JP2013068440A JP2013068440A JP6065708B2 JP 6065708 B2 JP6065708 B2 JP 6065708B2 JP 2013068440 A JP2013068440 A JP 2013068440A JP 2013068440 A JP2013068440 A JP 2013068440A JP 6065708 B2 JP6065708 B2 JP 6065708B2
Authority
JP
Japan
Prior art keywords
area
identifier
region
mobile terminal
identified
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.)
Expired - Fee Related
Application number
JP2013068440A
Other languages
English (en)
Other versions
JP2014191720A (ja
Inventor
佐野 健
健 佐野
佐々木 和雄
和雄 佐々木
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2013068440A priority Critical patent/JP6065708B2/ja
Publication of JP2014191720A publication Critical patent/JP2014191720A/ja
Application granted granted Critical
Publication of JP6065708B2 publication Critical patent/JP6065708B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Description

本技術は、複数の領域の中から該当する領域を検索するための技術に関する。
GPS(Global Positioning System)搭載の携帯電話機やスマートフォンが普及するなど、端末から位置情報を通知できるようになり、端末を保持する人の位置を利用した様々なサービスが普及してきている。位置情報を利用したサービスの例としては、ある店舗の周辺の領域に人が移動したときに、その人に対して店舗の情報を通知するサービスなどがある。
今後、位置を通知する端末やその位置情報を利用するサービスはますます普及し、これらの増加に伴い、端末が存在する領域を判定するための処理量も増加する。
従来、空間内に存在する大量のデータから条件に合ったものを高速に判定するためには、判定条件に合わせたインデックスを作成して、一部のデータのみを確認することで該当データを取得できるようにする。インデックスを用いたデータ管理方式には、一次元のデータを検索する場合に用いられるB−Treeを利用した方式や、2次元以上の多次元データを検索する場合に用いられるR−Treeを利用した方式がある。
R−Treeでは、相互に重なり合う矩形領域(多次元空間における超矩形を指す。二次元空間の場合は長方形、三次元空間の場合は直方体となる。四次元空間以上の場合も、次元数に合わせて拡張した領域を指す。)に対応するノードで木を作成する。そして、各ノードは、子ノードの最小外接矩形(子ノードの領域をすべて含む最小の矩形領域)を表すものとする。領域判定時には、範囲が重なる子ノードに絞って判定を行うことで判定を高速化する。
例えば、R−Treeを利用したデータ管理について、図1A及び図1Bを参照して説明する。図1Aは、R−Treeで管理するデータを示し、図1Bは、矩形領域の例を示す。図1Aに示すように、ルートノードR0は、子ノードR1乃至R4の矩形領域を全て含む矩形領域であり、ノードR1は、ノードR5乃至R8の矩形領域を全て含む矩形領域である。また、最下段のノードR5乃至R11は葉ノードであり、内部にデータを含む矩形領域である。すなわち、R0はR1のインデックス情報となり、R1は、R5のインデックス情報となっている。
図1Bに示すように、条件に合ったデータを検索するために、インデックス情報を用いて該当範囲を検索していく場合、ルートノードであるR0の4つの子ノードR1乃至R4から検索範囲が重なるノードR1を選択する。さらに、ノードR1の4つの子ノードR5乃至R8から検索範囲が重なるノードR5を選択する。このように、重なる部分を持つノードから再帰的に検索範囲が重なるノードを選択し、最終的に葉ノードR5の中から検索範囲内にあるデータを選択する。
従来のR−Treeでは、領域判定を行う度に毎回ツリーの最上位ノードから判定を始めるため、ノードの深さに比例する比較処理を行うことになる。判定対象の領域がまばらなケースでは比較的すぐに対象領域が無いと判断できて判定処理を終了することができる。しかし、判定対象の領域が密なケースでは、領域自身や中間ノードが重なり合って、判定回数が多くなる。
一般的に、領域判定すべき領域が集まるエリアは、繁華街や交通機関など人や物が集中するエリアであり、リクエストとして与えられる位置情報も同領域になることが多い。そのため、従来技術では、多くの場合に処理時間を効率的に削減することができない。
この問題に対する一つの解決策としては、以下のような技術が存在している。すなわち、所定の位置を含む領域の問合せ要求を取得すると、所定の位置が前回検索できた領域に含まれるか否かを判定し、判定の結果、所定の位置が前回検索できた領域に含まれると判定された場合、記憶部に基づいて、含まれると判定された領域の重複領域の中から所定の位置を含む領域を検索する。一方、判定の結果、所定の位置が前回検索できた領域に含まれないと判定された場合、R−Treeに含まれるノードの中で、含まれないと判定された領域を含むインデックス情報の葉ノードからボトムアップでR−Treeを遡った後所定の位置を含む領域を検索する。そして、所定の位置を含む領域を検索できた場合、検索できた情報の重複領域の中から所定の位置を含む領域を検索する。
このような手法を用いると、端末の移動距離が短い場合は、前回位置を含む葉ノードからボトムアップで判定することでルートノードから判定する従来のR−Treeに比べ判定処理を高速化することができる。しかし、移動先がツリー上離れたノード配下である場合(移動距離が近距離の場合でも、親のノードがツリー上離れることもある)、最悪ボトムアップでルートノードまで遡り、さらにルートノードから判定することになるため、判定処理を高速化できない場合がある。
特開2013−25591号公報
従って、本技術の目的は、一側面によれば、領域の検索を高速化するための技術を提供することである。
本技術に係る領域判定方法は、(A)移動端末の識別子と位置とを含むリクエストを受信し、(B)移動端末の識別子に対応付けて、予め設定されている複数の領域のうち当該移動端末が直前に属していた領域の識別子を格納する第1データ格納部から、リクエストに含まれる移動端末の識別子に対応付けられている領域の識別子を特定し、(C)複数の領域の各々について当該領域から移動する可能性がある第2の領域の識別子が格納されている第2のデータ格納部から、特定された領域の識別子について格納されている第2の領域の識別子を抽出し、(D)抽出された第2の領域の識別子から特定される第2の領域内に、リクエストに含まれる位置が含まれるか判断し、(E)抽出された第2の領域の識別子から特定される第2の領域内にリクエストに含まれる位置が含まれる場合には、抽出された第2の領域の識別子を結果データに追加し、(F)抽出された第2の領域の識別子から特定される第2の領域内にリクエストに含まれる位置が含まれないという第1の条件を含む第2の条件を満たす場合には、複数の領域を探索するためのツリー構造をルートから探索する処理を含む。
一側面によれば、領域の検索を高速化できるようになる。
図1Aは、R−Treeを説明するための図である。 図1Bは、R−Treeを説明するための図である。 図2は、実施の形態に係るシステムの概要を示す図である。 図3は、判定サーバの機能ブロック図である。 図4は、領域インデックス格納部に格納されるデータを説明するための図である。 図5は、ルートノードのデータ例を示す図である。 図6は、中間ノードのデータ例を示す図である。 図7は、葉ノードのデータ例を示す図である。 図8は、領域データ格納部に格納されるデータの一例を示す図である。 図9Aは、領域インデックス格納部及び領域データ格納部に格納されるデータを模式的に示す図である。 図9Bは、領域インデックス格納部及び領域データ格納部に格納されるデータを模式的に示す図である。 図10は、前回領域データ格納部に格納されるデータの一例を示す図である。 図11は、遷移領域データ格納部に格納されるデータの一例を示す図である。 図12は、実施の形態に係る処理フローを示す図である。 図13は、リクエストのデータ例を示す図である。 図14は、重複領域チェック処理の処理フローを示す図である。 図15は、実施の形態に係る処理フローを示す図である。 図16は、遷移領域設定処理の処理フローを示す図である。 図17は、レスポンスデータの一例を示す図である。 図18は、ルートからの判定処理の処理フローを示す図である。 図19は、コンピュータの機能ブロック図である。
本実施の形態に係るシステムの概要を図2に示す。図2に示すように、携帯電話網及びインターネットなどであるネットワーク1を介して、複数の移動端末3(図2では3a及び3b)は、判定サーバ5と接続される。移動端末3a及び3bは、携帯電話機である場合もあれば、スマートフォンである場合もある。さらに、カーナビゲーション装置のような車載端末であっても良い。
移動端末3は、GPS機能を有しており、例えばユーザからの指示に応じて位置データを取得して当該位置データ及び移動端末3の識別子であるセンサIDを含むリクエストを判定サーバ5へ送信する。移動端末3に含まれる他の機能が、定期的に位置データを取得してリクエストを判定サーバ5へ送信する場合もある。判定サーバ5は、位置データ及びセンサIDを含むリクエストを受信すると、以下で述べるような処理を実行して、移動端末3の現在位置を含む領域に関するデータをレスポンスデータとして、移動端末3へ返信する。
図3に判定サーバ5の機能ブロック図を示す。判定サーバ5は、リクエスト受信部51と、ツリー探索部52と、遷移領域管理部53と、前回領域管理部54と、レスポンス送信部55と、関連領域判定部56と、重複領域判定部57と、領域インデックス格納部58と、領域データ格納部59と、前回領域データ格納部59と、遷移領域データ格納部61とを有する。
リクエスト受信部51は、移動端末3からのリクエストを受信する。レスポンス送信部55は、移動端末3へレスポンスを送信する。ツリー探索部52は、領域インデックス格納部58等に格納されているデータにより実現されているR−Treeを探索するための処理を実行する。関連領域判定部56及び重複領域判定部57は、領域データ格納部59に格納されているデータを用いて、領域判定処理を高速化するための処理を実行する。遷移領域管理部53は、領域間の遷移し易さを表すデータである遷移領域データを格納する遷移領域データ格納部61の管理を行う。前回領域管理部54は、各移動端末について前回リクエスト時における所属領域のデータである前回領域データを格納する前回領域データ格納部59の管理を行う。
領域インデックス格納部58に格納されるデータについて図4乃至図7を用いて説明する。領域インデックス格納部58は、空間内に存在する多数の領域から、条件に合致する領域を高速に検索するための索引情報を格納する。例えば、領域インデックス格納部58は、どの領域がどこにあるのかを示すインデックスデータをRーTreeで保持する。
ここで、領域インデックス格納部58に格納されるデータの例を、図4を用いて説明する。図4に示すように、領域インデックスは、ルートノード、中間ノード及び葉ノードにより形成される木構造のデータである。ルートノードは、R−Treeに1つ存在する最上位のノードである。また、葉ノードは、R−Treeの最下位のノードであり、自らは子ノードを含まず、検索対象となる領域のIDを1又は複数含む領域IDデータと対応付けられている。木構造データにおけるルートノード及び葉ノード以外のノードは、中間ノードであり、1又は複数の子ノードを有する。
図4の例では、ルートノードR1の子ノード且つ中間ノードがノードR10及びR11である。ノードR1は、ノードR10及びR11についての矩形領域を全て含む矩形領域に対応する。中間ノードR10の子ノード(葉ノード)は、ノードR100及びR101である。そして、ノードR10は、ノードR100及びR101についての矩形領域を全て含む矩形領域に対応する。中間ノードR11の子ノード(葉ノード)は、ノードR110及びR111である。ノードR11は、ノードR110及びR111についての矩形領域を全て含む矩形領域に対応する。そして、葉ノードであるノードR100には、検索対象となる領域ID「1」「2」及び「3」が関連付けられている。
葉ノードであるノードR101は、検索対象となる領域ID「4」及び「5」が関連付けられている。葉ノードであるノードR110には、検索対象となる領域ID「6」及び「7」が関連付けられている。さらに、葉ノードであるノードR111には、検索対象となる領域ID「8」及び「9」が関連付けられている。
領域インデックス格納部58は、R−Treeの実体としてルートノード、中間ノード、葉ノードの各ノードのデータを格納している。図5は、領域インデックス格納部58に格納されているルートノードのデータの例を示す。図5に示すように、ルートノードR1のデータは、ノード種別、矩形領域データ及び子ノードリストを含む。「ノード種別」は、ノードがルートノード、中間ノード、葉ノードのいずれであるかを示す。矩形領域データは、子ノードの担当領域を全て含む最小外接矩形を表すデータである。最小外接矩形とは、子ノードの領域を全て含む最小の矩形領域である。子ノードリストは、当該ノードの子ノードへのリンクポインタのリストである。
図5の例では、ルートノードR1のノード種別は、ルートノードである。ルートノードR1の矩形領域データは、xyの2次元データであり、「x1=35.5、y1=139.0」が担当領域の最小点であり、「x2=35.9、y2=139.5」が担当領域の最大点であることを示す。すなわち、ノードR1が担当する領域は、両点を頂点として各次元軸に直交した4直線で作られる領域である。また、子ノードリストには、子ノード「R10」及び「R11」へのポインタを含む。
図6は、領域インデックス格納部58に格納される中間ノードのデータの例を示す。図6に示すように、中間ノードのデータは、ノード種別、矩形領域データ及び子ノードリストを含む。領域インデックス格納部58は、ノードR10及びR11について、図6に示すデータを格納する。
図6の例では、ノードR10のノード種別は、中間ノードである。中間ノードR10の矩形領域データは、「x1=35.5、y1=139.2」が担当領域の最小点であり、「x2=35.7、y2=139.3」が担当領域の最大点であることを示す。すなわち、中間ノードR10が担当する領域は、両点を頂点として各次元軸に直交した4直線で作られる領域である。また、ノードR10の子ノードリストは、子ノード「R100」及び「R101」へのポインタを含む。
図7は、領域インデックス格納部58に格納される葉ノードのデータの例を示す図である。図7に示すように、葉ノードのデータは、ノード種別、矩形領域データ及びデータリストを含む。データリストは、領域データへのポインタのリストである。領域インデックス格納部58は、ノードR100、R101、R110及びR111について、図7に示すデータを格納する。
図7の例では、葉ノードR100のノード種別は、葉ノードである。葉ノードR100の矩形領域データは、「x1=35.5、y1=139.2」が担当領域の最小点であり、「x2=35.6、y2=139.3」が担当領域の最大点であることを示す。すなわち、葉ノードR100が担当する領域は、両点を頂点として各次元軸に直交した4直線で作られる領域である。また、ノードR100のデータリストは、領域データへのポインタ「D1」、「D2」及び「D3」を含む。各領域の領域データの実体は、領域データ格納部59に格納されている。
領域データ格納部59は、複数の領域の領域データを格納する。領域データ格納部59に格納されるデータの一例を、図8を用いて説明する。図8に示すように、領域データ格納部59は、領域ID122a毎に、データ名122b、領域情報122c、重複領域122d及び遷移領域122eを対応付けて格納する。
領域ID122aは、領域を一意に識別可能なIDを示す。データ名122bは、領域IDで示される領域のデータ名を示す。領域情報122cは、領域IDで示される領域の具体的な範囲を示す。重複領域122dは、領域IDで示される領域と重複する他の領域の領域IDを示す。また、遷移領域122eは、当該領域から移動端末3が移動する蓋然性が高い領域の領域IDである。遷移領域122eのフィールドには、予め定められている個数の領域IDが登録されるものとするが、移動する蓋然性が低い領域しか検出されていない場合には、登録されない場合がある。
例えば、領域ID122aが「00001」である場合、データ名122bとして「A商店X店舗近辺」、領域情報122cとして「円領域:緯度35.491、経度139.650、半径100m」が登録されている。そして、領域ID122aが「00001」である場合の重複領域122dとして領域ID「00034」が登録され、遷移領域122eとして領域ID「00002」「00005」「00010」が登録されている。
このようなデータを保持していることで、模式的に示せば、図9Aに示すようなデータが用意されていることになる。すなわち、葉ノードに関連付けられている領域IDデータに含まれる領域ID毎に、重複領域及び遷移領域を探索できるようになっている。特に遷移領域のデータによって、図9Bで矢印Mで示すように、領域ID「1」の領域から領域ID「2」の領域への遷移の蓋然性が高いことが領域データに反映されている。
また、前回領域データ格納部59には、図10に示すようなデータが格納される。図10に示すように、移動端末3の識別子であるセンサID毎に、前回この移動端末3が存在すると判定された領域の前回領域IDが登録される。但し、初回は、何も前回領域IDは登録されない。また、例えば所定時間以上変更がなされない場合にはクリアされる場合もある。
さらに、遷移領域データ格納部61には、図11に示すようなデータが格納される。この遷移領域データ格納部61には、領域データ格納部59に格納される遷移領域のデータの元となるデータが格納される。すなわち、領域ID毎に、当該領域IDの領域の次に移動したことがある領域のIDとその遷移回数とが登録されるようになっている。遷移回数を、その遷移を検出する毎にインクリメントして、上位所定数の領域の領域IDを遷移領域の領域IDとして、領域データ格納部59における遷移領域122eの欄に登録する。
次に、図12乃至図18を用いて、判定サーバ5の処理内容について説明する。まず、リクエスト受信部51は、移動端末3から領域判定のリクエストを受信する(図12:ステップS1)。領域判定のリクエストには、図13に示すようにセンサID及び位置のデータ(ここでは緯度経度の座標値)が含まれる。
そうすると、リクエスト受信部51は、ツリー探索部52にリクエストのデータを出力する。ツリー探索部52は、まず関連領域判定部56に対してリクエストのデータを出力し、処理を指示する。具体的には、関連領域判定部56は、リクエストのデータに含まれるセンサIDで前回領域データ格納部59を検索して前回領域IDを読み出す(ステップS3)。
ここで関連領域判定部56は、ステップS3で前回領域IDを読み出すことができたか判断する(ステップS5)。前回領域IDを読み出すことができなかった場合には、関連領域判定部56は、ツリー探索部52に前回領域IDを用いた処理が行えなかったことを表す通知を出力する。ツリー探索部52は、関連領域判定部56から通知を受信すると、ルートからの判定処理を実行する(ステップS19)。ルートからの判定処理については、図18を用いて後に説明する。そして処理は端子Bを介して図15の処理に移行する。
一方、前回領域IDを読み出すことができた場合には、関連領域判定部56は、今回のリクエストに含まれる位置座標が前回領域IDで特定される領域内であるか否かを判断する(ステップS7)。領域データ格納部59に格納されている領域データから前回領域IDで特定される領域内に、位置座標が包含されるか否かを判断する。
そして、今回リクエストに含まれる位置座標が前回領域IDの領域内である場合には、関連領域判定部56は、前回領域IDを判定結果に追加する(ステップS15)。そして、関連領域判定部56は、前回領域IDを重複領域判定部57に出力する。重複領域判定部57は、前回領域IDを処理対象領域IDとして特定し、重複領域チェック処理を実行する(ステップS17)。そして処理は端子Aを介して図15の処理に移行する。
重複領域チェック処理については図14を用いて説明する。重複領域判定部57は、処理対象領域IDで領域データ格納部59を検索して重複領域の領域IDを特定する(ステップS21)。複数特定される場合もあれば、全く領域IDが特定されない場合もある。全く領域IDが特定されない場合には、処理は呼出元の処理に戻る。
そして、重複領域判定部57は、未処理の重複領域IDを1つ選択する(ステップS23)。また、重複領域判定部57は、選択された重複領域IDの領域が、今回のリクエストに含まれる位置座標を含むか判断する(ステップS25)。領域データ格納部59に格納されている領域データから選択重複領域IDで特定される領域内に、位置座標が包含されるか否かを判断する。
選択された重複領域IDの領域が今回のリクエストに含まれる位置座標を含まないと判断された場合には、処理はステップS29に移行する。一方、選択された重複領域IDの領域が今回のリクエストに含まれる位置座標を含むと判断された場合には、重複領域判定部57は、選択された重複領域IDを、判定結果に追加する(ステップS27)。
その後、重複領域判定部57は、未処理の重複領域IDが存在するか判断する(ステップS29)。未処理の重複領域IDが存在する場合には、処理はステップS23に戻る。一方、未処理の重複領域IDが存在しない場合には、呼出元の処理に戻る。
このように重複領域を予め領域データ格納部59に用意しておくことで、処理対象領域に重複する領域についても高速に特定でき、処理に係る位置座標を包含するか否かを高速に判断できるようになる。
一方、今回リクエストに含まれる位置座標が前回領域IDの領域内ではない場合には、関連領域判定部56は、領域データ格納部59から、前回領域IDに対応付けられている遷移領域ID及び当該遷移領域IDに対応付けられている重複領域IDを読み出す(ステップS9)。そして、関連領域判定部56は、今回のリクエストに含まれる位置座標が、遷移領域IDで特定される領域及び重複領域IDで特定される領域の少なくとも1つの領域に含まれるか判断する(ステップS11)。今回リクエストに含まれる位置座標がいずれの領域にも含まれない場合には、処理はステップS19に移行する。前回領域IDで特定される領域及び当該領域に重複する領域に今回リクエストに含まれる位置座標が含まれない場合には、R−Treeのルートから検索する。
一方、今回のリクエストに含まれる位置座標が、遷移領域IDで特定される領域及び重複領域IDで特定される領域の少なくとも1つの領域に含まれる場合には、関連領域判定部56は、今回のリクエストに含まれる位置座標を含む領域のうち面積が最も小さい領域を特定し、当該領域の領域IDを判定結果に追加する(ステップS13)。なお、ステップS15又はS13において関連領域判定部56は、判定結果に追加した領域の領域IDをツリー探索部52に通知する。その後処理は、ステップS17に移行する。ステップS17では、特定された領域の領域IDを処理対象領域IDとして、重複領域チェック処理を実行する。
次に、端子Aを介して図15の処理に移行して、重複領域判定部57は、遷移領域管理部53に処理を指示する。そうすると、遷移領域管理部53は、判定結果に基づき遷移領域設定処理を実行する(ステップS31)。遷移領域設定処理については、図16を用いて説明する。
遷移領域管理部53は、前回領域IDで特定される領域から、判定結果に含まれる移動先の領域への遷移回数を1インクリメントする(ステップS41)。なお、前回領域IDで特定される領域から移動しない場合には、移動していないので遷移回数を変更することはない。また、判定結果に複数の領域IDが含まれる場合には、それぞれについて遷移回数を1インクリメントするようにしても良いし、最初に判定結果に追加された領域IDで特定される領域への遷移回数のみをインクリメントするようにしても良い。
そして、遷移領域管理部53は、前回領域IDについての遷移領域を遷移回数でソートする(ステップS43)。そして、遷移領域管理部53は、上位所定数の遷移領域が変化すれば、領域データにおける遷移領域の領域IDを、当該上位所定数の遷移領域の領域IDで更新する(ステップS45)。そして処理は呼出元の処理に戻る。
例えば、図11の例では、領域ID「00001」に対応付けられている遷移領域は「00002」「00005」「00010」となっているが、これが遷移領域設定処理において「00002」「00005」「00012」というように変化した場合には、領域データ格納部59における遷移領域の領域IDを「00002」「00005」「00012」に更新する。
また、ツリー探索部52は前回領域管理部54に指示を行って、前回領域管理部54は、前回領域データ格納部59においてセンサIDに対応付けられる前回領域IDを、ステップS13又はS15で判定結果に追加した領域ID又はステップS19で最初に判定結果に追加した領域IDで更新する(ステップS33)。
最後に、レスポンス送信部55は、判定結果に基づき領域データ格納部59から抽出されるデータを含むレスポンスを、移動端末3へ返信する(ステップS35)。
例えば、図17に示すようなレスポンスのデータを生成して送信する。図17の例では、領域IDと、領域データ格納部59において当該領域IDに対応付けられているデータ名とが含まれる。但し、他のデータベースのデータを抽出するようにしても良い。例えば、クーポンDBを設けておき、当該領域IDに対応付けられているクーポンデータを含むようにしても良い。
移動端末3は、このようなレスポンスのデータを受信すると、移動端末3の表示装置に表示したり、印刷装置から印刷したり、その他予め定められている処理を実行する。
このような処理を実行すれば、移動する可能性がある遷移領域が特定されているので、前回領域に含まれていない場合であっても当該遷移領域に含まれていれば、R−Treeのルートノードからの探索を回避でき、処理負荷を削減できるようになる。
なお、図18を用いて、ルートからの判定処理について説明する。ツリー探索部52は、領域インデックス格納部58に格納されているデータにおいてルートノードを選択する(図18:ステップS61)。そして、ツリー探索部52は、選択したノードが葉ノードであるか否かを判断する(ステップS63)。子ノードへのポインタを有しない場合には、葉ノードである。選択したノードが葉ノードでない場合には、ツリー探索部52は、選択したノードの子ノードに、今回のリクエストに含まれる位置座標を含むものがあるか否かを、領域インデックス格納部58に格納されている子ノードの矩形領域データから判断する(ステップS65)。選択したノードの子ノードに、今回のリクエストに含まれる位置座標を含むものがない場合には、ツリー探索部52は、未処理の候補ノードが存在しているか判断する(ステップS69)。未処理の候補ノードが存在している場合には、ツリー探索部52は、未処理の候補ノードを1つ選択し(ステップS71)、処理はステップS63に戻る。一方、未処理の候補ノードが存在しない場合には、ツリー探索部52は、領域無しという結果を生成し(ステップS79)、処理は呼出元の処理に戻る。この場合には、前回領域IDも更新されない。
一方、選択したノードの子ノードに、今回のリクエストに含まれる位置座標を含むものがある場合には、ツリー探索部52は、今回のリクエストに含まれる位置座標を含む子ノードを候補ノードに追加する(ステップS67)。そして処理はステップS69に移行する。
一方、ステップS63で、選択したノードが葉ノードであると判断された場合には、ツリー探索部52は、選択した葉ノード配下の領域のうち、今回のリクエストに含まれる位置座標を含む領域があるか判断する(ステップS73)。個々の領域の範囲については、領域データ格納部59に格納されているデータに基づき判断する。
選択した葉ノード配下の領域のうち、今回のリクエストに含まれる位置座標を含む領域が存在しない場合には、処理はステップS69に移行する。一方、選択した葉ノード配下の領域のうち、今回のリクエストに含まれる位置座標を含む領域がある場合には、ツリー探索部52は、最小面積の領域を特定し、判定結果に当該領域の領域IDを追加する(ステップS75)。1つの領域のみが抽出された場合には当該領域の領域IDを判定結果に追加する。そして、ツリー探索部52は、重複領域判定部57に、特定された領域の領域IDを処理対象領域IDとして、重複領域チェック処理を実行させる(ステップS77)。そして処理は呼出元の処理に戻る。
以上のような処理を行えば、前回と同じ領域にいなくても、前回いた領域から移動する可能性が高い遷移領域に移動したか否かを確認した上で、移動していない場合にルートノードからの探索を行うようにしているので、遷移する可能性が高い遷移領域に移動していれば処理負荷を下げることができる。
以上本技術の実施の形態を説明したが、本技術はこれに限定されるものではない。例えば、機能ブロック図は一例であって、プログラムモジュール構成とは一致しない場合がある。また、データ格納部の構成についても、ファイル構成とは一致しない場合もある。さらに、処理フローについても、処理結果が変わらない限り、ステップの順番を入れ替えたり、複数のステップを並列に実行しても良い。
なお、上で述べた判定サーバ5は、コンピュータ装置であって、図19に示すように、メモリ2501とCPU(Central Processing Unit)2503とハードディスク・ドライブ(HDD:Hard Disk Drive)2505と表示装置2509に接続される表示制御部2507とリムーバブル・ディスク2511用のドライブ装置2513と入力装置2515とネットワークに接続するための通信制御部2517とがバス2519で接続されている。オペレーティング・システム(OS:Operating System)及び本実施例における処理を実施するためのアプリケーション・プログラムは、HDD2505に格納されており、CPU2503により実行される際にはHDD2505からメモリ2501に読み出される。CPU2503は、アプリケーション・プログラムの処理内容に応じて表示制御部2507、通信制御部2517、ドライブ装置2513を制御して、所定の動作を行わせる。また、処理途中のデータについては、主としてメモリ2501に格納されるが、HDD2505に格納されるようにしてもよい。本技術の実施例では、上で述べた処理を実施するためのアプリケーション・プログラムはコンピュータ読み取り可能なリムーバブル・ディスク2511に格納されて頒布され、ドライブ装置2513からHDD2505にインストールされる。インターネットなどのネットワーク及び通信制御部2517を経由して、HDD2505にインストールされる場合もある。このようなコンピュータ装置は、上で述べたCPU2503、メモリ2501などのハードウエアとOS及びアプリケーション・プログラムなどのプログラムとが有機的に協働することにより、上で述べたような各種機能を実現する。
以上述べた本実施の形態をまとめると、以下のようになる。
本実施の形態に係る領域判定方法は、(A)移動端末の識別子と位置とを含むリクエストを受信し、(B)移動端末の識別子に対応付けて、予め設定されている複数の領域のうち当該移動端末が直前に属していた領域の識別子を格納する第1データ格納部から、リクエストに含まれる移動端末の識別子に対応付けられている領域の識別子を特定し、(C)複数の領域の各々について当該領域から移動する可能性がある第2の領域の識別子が格納されている第2のデータ格納部から、特定された領域の識別子について格納されている第2の領域の識別子を抽出し、(D)抽出された第2の領域の識別子から特定される第2の領域内に、リクエストに含まれる位置が含まれるか判断し、(E)抽出された第2の領域の識別子から特定される第2の領域内にリクエストに含まれる位置が含まれる場合には、抽出された第2の領域の識別子を結果データに追加し、(F)抽出された第2の領域の識別子から特定される第2の領域内にリクエストに含まれる位置が含まれないという第1の条件を含む第2の条件を満たす場合には、複数の領域を探索するためのツリー構造をルートから探索する処理を含む。
このように第1の領域から移動する可能性がある(より具体的には可能性が高い)第2の領域に含まれているか否かを先に判断することで、ツリー構造をルートから探索する処理を省略できる場合が多くなり、全体の処理負荷を削減できるようになる。
また、本領域判定方法は、(G)複数の領域の各々について当該領域と少なくとも一部重複する第3の領域の識別子が格納される第3のデータ格納部から、特定された領域の識別子について格納されている第3の領域の識別子を抽出し、(H)抽出された第3の領域の識別子から特定される第3の領域内に、リクエストに含まれる位置が含まれるか判断する処理を含むようにしても良い。この場合、上で述べた第2の条件が、抽出された第3の領域の識別子から特定される第3の領域内に、リクエストに含まれる位置が含まれないという条件を含む場合もある。
このようにすれば、重複領域のデータを用いればより高速に複数の領域に含まれるか否かを判断できるようになる。
さらに、本領域判定方法は、(I)複数の領域の各々について当該領域と少なくとも一部重複する第3の領域の識別子が格納される第3のデータ格納部から、抽出された第2の領域の識別子について格納されている第3の領域の識別子を抽出し、(J)抽出された第3の領域の識別子から特定される第3の領域内に、リクエストに含まれる位置が含まれるか判断し、(K)抽出された第3の領域の識別子から特定される第3の領域内に、リクエストに含まれる位置が含まれる場合には、抽出された第3の領域の識別子を結果データに追加する処理をさらに含むようにしても良い。このような場合にも、重複領域のデータは有用である。
さらに、本領域判定方法は、(L)第2の領域の識別子を抽出する処理の前に、特定された領域の識別子から特定される領域内に、リクエストに含まれる位置が含まれるか判断し、(M)特定された領域の識別子から特定される領域内に、リクエストに含まれる位置が含まれる場合には、特定された領域の識別子を結果データに追加する処理をさらに含むようにしても良い。すなわち、移動していないか否かを先に判断することで処理負荷を削減できる場合もある。
なお、上で述べたような処理をコンピュータに実行させるためのプログラムを作成することができ、当該プログラムは、例えばフレキシブル・ディスク、CD−ROMなどの光ディスク、光磁気ディスク、半導体メモリ(例えばROM)、ハードディスク等のコンピュータ読み取り可能な記憶媒体又は記憶装置に格納される。なお、処理途中のデータについては、RAM等の記憶装置に一時保管される。
以上の実施例を含む実施形態に関し、さらに以下の付記を開示する。
(付記1)
移動端末の識別子と位置とを含むリクエストを受信し、
前記移動端末の識別子に対応付けて、予め設定されている複数の領域のうち当該移動端末が直前に属していた領域の識別子を格納する第1データ格納部から、前記リクエストに含まれる前記移動端末の識別子に対応付けられている領域の識別子を特定し、
前記複数の領域の各々について当該領域から移動する可能性がある第2の領域の識別子が格納されている第2のデータ格納部から、特定された前記領域の識別子について格納されている第2の領域の識別子を抽出し、
抽出された前記第2の領域の識別子から特定される第2の領域内に、前記リクエストに含まれる位置が含まれるか判断し、
抽出された前記第2の領域の識別子から特定される第2の領域内に前記リクエストに含まれる位置が含まれる場合には、抽出された前記第2の領域の識別子を結果データに追加し、
抽出された前記第2の領域の識別子から特定される第2の領域内に前記リクエストに含まれる位置が含まれないという第1の条件を含む第2の条件を満たす場合には、前記複数の領域を探索するためのツリー構造をルートから探索する
処理を、コンピュータに実行させるためのプログラム。
(付記2)
前記複数の領域の各々について当該領域と少なくとも一部重複する第3の領域の識別子が格納される第3のデータ格納部から、特定された前記領域の識別子について格納されている第3の領域の識別子を抽出し、
抽出された前記第3の領域の識別子から特定される第3の領域内に、前記リクエストに含まれる位置が含まれるか判断する
処理を、前記コンピュータに実行させ、
前記第2の条件が、
抽出された前記第3の領域の識別子から特定される第3の領域内に、前記リクエストに含まれる位置が含まれないという条件を含む
付記1記載のプログラム。
(付記3)
前記複数の領域の各々について当該領域と少なくとも一部重複する第3の領域の識別子が格納される第3のデータ格納部から、抽出された前記第2の領域の識別子について格納されている第3の領域の識別子を抽出し、
抽出された前記第3の領域の識別子から特定される第3の領域内に、前記リクエストに含まれる位置が含まれるか判断し、
抽出された前記第3の領域の識別子から特定される第3の領域内に、前記リクエストに含まれる位置が含まれる場合には、抽出された前記第3の領域の識別子を前記結果データに追加する
処理をさらに前記コンピュータに実行させるための付記1記載のプログラム。
(付記4)
前記第2の領域の識別子を抽出する処理の前に、
特定された前記領域の識別子から特定される領域内に、前記リクエストに含まれる位置が含まれるか判断し、
特定された前記領域の識別子から特定される領域内に、前記リクエストに含まれる位置が含まれる場合には、特定された前記領域の識別子を結果データに追加する
処理をさらに前記コンピュータに実行させるための付記1乃至3のいずれか1つ記載のプログラム。
(付記5)
移動端末の識別子と位置とを含むリクエストを受信し、
前記移動端末の識別子に対応付けて、予め設定されている複数の領域のうち当該移動端末が直前に属していた領域の識別子を格納する第1データ格納部から、前記リクエストに含まれる前記移動端末の識別子に対応付けられている領域の識別子を特定し、
前記複数の領域の各々について当該領域から移動する可能性がある第2の領域の識別子が格納されている第2のデータ格納部から、特定された前記領域の識別子について格納されている第2の領域の識別子を抽出し、
抽出された前記第2の領域の識別子から特定される第2の領域内に、前記リクエストに含まれる位置が含まれるか判断し、
抽出された前記第2の領域の識別子から特定される第2の領域内に前記リクエストに含まれる位置が含まれる場合には、抽出された前記第2の領域の識別子を結果データに追加し、
抽出された前記第2の領域の識別子から特定される第2の領域内に前記リクエストに含まれる位置が含まれないという第1の条件を含む第2の条件を満たす場合には、前記複数の領域を探索するためのツリー構造をルートから探索する
処理を含み、コンピュータにより実行される領域判定方法。
(付記6)
移動端末の識別子と位置とを含むリクエストを受信する受信部と、
前記移動端末の識別子に対応付けて、予め設定されている複数の領域のうち当該移動端末が直前に属していた領域の識別子を格納する第1データ格納部から、前記リクエストに含まれる前記移動端末の識別子に対応付けられている領域の識別子を特定し、前記複数の領域の各々について当該領域から移動する可能性がある第2の領域の識別子が格納されている第2のデータ格納部から、特定された前記領域の識別子について格納されている第2の領域の識別子を抽出し、抽出された前記第2の領域の識別子から特定される第2の領域内に、前記リクエストに含まれる位置が含まれるか判断し、抽出された前記第2の領域の識別子から特定される第2の領域内に前記リクエストに含まれる位置が含まれる場合には、抽出された前記第2の領域の識別子を結果データに追加する処理部と、
抽出された前記第2の領域の識別子から特定される第2の領域内に前記リクエストに含まれる位置が含まれないという第1の条件を含む第2の条件を満たす場合には、前記複数の領域を探索するためのツリー構造をルートから探索する探索部と、
を有する情報処理装置。
51 リクエスト受信部
52 ツリー探索部
53 遷移領域管理部
54 前回領域管理部
55 レスポンス送信部
56 関連領域判定部
57 重複領域判定部
58 領域インデックス格納部
59 領域データ格納部
60 前回領域データ格納部
61 遷移領域データ格納部

Claims (6)

  1. 第1の移動端末の識別子と前記第1の移動端末の位置とを含むリクエストを受信し、
    動端末の識別子に対応付けて、予め設定されている複数の領域のうち当該移動端末が直前に属していた第1の領域の識別子を格納する第1データ格納部から、第1の移動端末の識別子に対応付けられている第1の領域の識別子を特定し、
    前記複数の領域の各々について当該領域から移動する可能性がある第2の領域の識別子が格納されている第2のデータ格納部から、特定された前記第1の領域の識別子について格納されている第2の領域の識別子を抽出し、
    抽出された前記第2の領域の識別子から特定される第2の領域内に、前記第1の移動端末の位置が含まれるか判断し、
    抽出された前記第2の領域の識別子から特定される第2の領域内に前記第1の移動端末の位置が含まれる場合には、抽出された前記第2の領域の識別子を出力し、
    抽出された前記第2の領域の識別子から特定される第2の領域内に前記第1の移動端末の位置が含まれないという第1の条件を含む第2の条件を満たす場合には、前記複数の領域の各々について当該領域を含む範囲の情報を格納する第3のデータ格納部に基づき、前記第1の移動端末の位置を含む範囲に含まれる第3の領域を特定し、特定した当該第3の領域の識別子を出力する
    処理を、コンピュータに実行させるためのプログラム。
  2. 前記複数の領域の各々について当該領域と少なくとも一部重複する第の領域の識別子が格納される第のデータ格納部から、特定された前記第1の領域の識別子について格納されている第の領域の識別子を抽出し、
    抽出された前記第の領域の識別子から特定される第の領域内に、前記第1の移動端末の位置が含まれるか判断する
    処理をさらに前記コンピュータに実行させ、
    前記第2の条件が、
    抽出された前記第の領域の識別子から特定される第の領域内に、前記第1の移動端末の位置が含まれないという条件を含む
    請求項1記載のプログラム。
  3. 前記複数の領域の各々について当該領域と少なくとも一部重複する第の領域の識別子が格納される第のデータ格納部から、抽出された前記第2の領域の識別子について格納されている第の領域の識別子を抽出し、
    抽出された前記第の領域の識別子から特定される第の領域内に、前記第1の移動端末の位置が含まれるか判断し、
    抽出された前記第の領域の識別子から特定される第の領域内に、前記第1の移動端末の位置が含まれる場合には、抽出された前記第の領域の識別子を出力する
    処理をさらに前記コンピュータに実行させるための請求項1記載のプログラム。
  4. 前記第2の領域の識別子を抽出する処理の前に、
    特定された前記第1の領域の識別子から特定される第1の領域内に、前記第1の移動端末の位置が含まれるか判断し、
    特定された前記第1の領域の識別子から特定される第1の領域内に、前記第1の移動端末の位置が含まれる場合には、特定された前記第1の領域の識別子を出力する
    処理をさらに前記コンピュータに実行させるための請求項1乃至3のいずれか1つ記載のプログラム。
  5. 第1の移動端末の識別子と前記第1の移動端末の位置とを含むリクエストを受信し、
    動端末の識別子に対応付けて、予め設定されている複数の領域のうち当該移動端末が直前に属していた第1の領域の識別子を格納する第1データ格納部から、第1の移動端末の識別子に対応付けられている第1の領域の識別子を特定し、
    前記複数の領域の各々について当該領域から移動する可能性がある第2の領域の識別子が格納されている第2のデータ格納部から、特定された前記第1の領域の識別子について格納されている第2の領域の識別子を抽出し、
    抽出された前記第2の領域の識別子から特定される第2の領域内に、前記第1の移動端末の位置が含まれるか判断し、
    抽出された前記第2の領域の識別子から特定される第2の領域内に前記第1の移動端末の位置が含まれる場合には、抽出された前記第2の領域の識別子を出力し、
    抽出された前記第2の領域の識別子から特定される第2の領域内に前記第1の移動端末の位置が含まれないという第1の条件を含む第2の条件を満たす場合には、前記複数の領域の各々について当該領域を含む範囲の情報を格納する第3のデータ格納部に基づき、前記第1の移動端末の位置を含む範囲に含まれる第3の領域を特定し、特定した当該第3の領域の識別子を出力する
    処理を含み、コンピュータにより実行される領域判定方法。
  6. 第1の移動端末の識別子と前記第1の移動端末の位置とを含むリクエストを受信する受信部と、
    動端末の識別子に対応付けて、予め設定されている複数の領域のうち当該移動端末が直前に属していた第1の領域の識別子を格納する第1データ格納部から、第1の移動端末の識別子に対応付けられている第1の領域の識別子を特定し、前記複数の領域の各々について当該領域から移動する可能性がある第2の領域の識別子が格納されている第2のデータ格納部から、特定された前記第1の領域の識別子について格納されている第2の領域の識別子を抽出し、抽出された前記第2の領域の識別子から特定される第2の領域内に、前記第1の移動端末の位置が含まれるか判断し、抽出された前記第2の領域の識別子から特定される第2の領域内に前記第1の移動端末の位置が含まれる場合には、抽出された前記第2の領域の識別子を出力する第1の出力部と、
    抽出された前記第2の領域の識別子から特定される第2の領域内に前記第1の移動端末の位置が含まれないという第1の条件を含む第2の条件を満たす場合には、前記複数の領域の各々について当該領域を含む範囲の情報を格納する第3のデータ格納部に基づき、前記第1の移動端末の位置を含む範囲に含まれる第3の領域を特定し、特定した当該第3の領域の識別子を出力する第2の出力部と、
    を有する情報処理装置。
JP2013068440A 2013-03-28 2013-03-28 情報処理方法、装置及びプログラム Expired - Fee Related JP6065708B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2013068440A JP6065708B2 (ja) 2013-03-28 2013-03-28 情報処理方法、装置及びプログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2013068440A JP6065708B2 (ja) 2013-03-28 2013-03-28 情報処理方法、装置及びプログラム

Publications (2)

Publication Number Publication Date
JP2014191720A JP2014191720A (ja) 2014-10-06
JP6065708B2 true JP6065708B2 (ja) 2017-01-25

Family

ID=51837872

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2013068440A Expired - Fee Related JP6065708B2 (ja) 2013-03-28 2013-03-28 情報処理方法、装置及びプログラム

Country Status (1)

Country Link
JP (1) JP6065708B2 (ja)

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009118470A (ja) * 2007-10-15 2009-05-28 Ntt Docomo Inc 情報配信装置および情報配信方法
JP5333815B2 (ja) * 2008-02-19 2013-11-06 株式会社日立製作所 k最近傍検索方法、k最近傍検索プログラム及びk最近傍検索装置
JP5237837B2 (ja) * 2009-01-07 2013-07-17 株式会社日立製作所 空間データ管理装置、空間データ管理方法、および、空間データ管理プログラム
JP5776403B2 (ja) * 2011-07-21 2015-09-09 富士通株式会社 領域検索方法、領域検索プログラムおよび情報処理装置

Also Published As

Publication number Publication date
JP2014191720A (ja) 2014-10-06

Similar Documents

Publication Publication Date Title
EP2958033A1 (en) Tile-based distribution of searchable geospatial data to client devices
CN103268730B (zh) 在电子地图界面上显示关联标注点的方法和装置
CN106202367A (zh) 一种对象信息的处理方法及装置
KR20100068468A (ko) 그리드 기반 피처 구조를 이용한 비주얼 서치 수행의 방법, 장치 및 컴퓨터 프로그램 제품
WO2006059629A1 (ja) エリア情報の管理装置・方法・プログラム
CN103714080A (zh) 基于空间索引结构树提供空间对象搜索结果的方法和设备
CN105653537A (zh) 一种数据库应用系统的分页查询方法和装置
CN109800360A (zh) 小区查询方法、装置、电子设备及存储介质
CN114422885B (zh) 基于拓扑路由的路由搜索方法、装置、设备及介质
JP5678790B2 (ja) インデックス管理方法、インデックス管理プログラムおよびインデックス管理装置
CN110928901B (zh) 基于MapServer服务协议的图层联合查询方法、设备及存储设备
CN101207880A (zh) 一种基于服务器客户机模式的手机指路导航系统
CN108304585B (zh) 一种基于空间关键字搜索的结果数据选取方法及相关装置
CN108376157A (zh) 目标用户查询方法、系统和装置
CN112836093A (zh) 数据查询方法、装置、电子设备和存储介质
US10182307B2 (en) System for providing location-based social networking services to users of mobile devices
JP6065708B2 (ja) 情報処理方法、装置及びプログラム
CN107657474B (zh) 一种商圈边界的确定方法及服务端
CN104735237A (zh) 一种路径预测方法及交互式语音应答ivr路径预测系统
JP5912328B2 (ja) 地点名称出力装置、ナビゲーション装置、地点名称出力方法、およびプログラム
JP6333306B2 (ja) 検索データ管理装置、検索データ管理方法、および検索データ管理プログラム
KR101634108B1 (ko) 동적 캐쉬를 이용한 지리 정보 제공 방법
CN111274272B (zh) 一种对象的查找方法、装置及计算机系统
CN116010677B (zh) 空间索引方法、装置及其电子设备
JP5492267B2 (ja) 情報処理装置、方法及びコンピュータプログラム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20151204

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20160826

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20160906

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20161104

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: 20161129

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20161212

R150 Certificate of patent or registration of utility model

Ref document number: 6065708

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees