JP2014191720A - Information processing method, device and program - Google Patents
Information processing method, device and program Download PDFInfo
- Publication number
- JP2014191720A JP2014191720A JP2013068440A JP2013068440A JP2014191720A JP 2014191720 A JP2014191720 A JP 2014191720A JP 2013068440 A JP2013068440 A JP 2013068440A JP 2013068440 A JP2013068440 A JP 2013068440A JP 2014191720 A JP2014191720 A JP 2014191720A
- Authority
- JP
- Japan
- Prior art keywords
- area
- identifier
- region
- request
- extracted
- 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
Description
本技術は、複数の領域の中から該当する領域を検索するための技術に関する。 The present technology relates to a technology for searching for a corresponding region from a plurality of regions.
GPS(Global Positioning System)搭載の携帯電話機やスマートフォンが普及するなど、端末から位置情報を通知できるようになり、端末を保持する人の位置を利用した様々なサービスが普及してきている。位置情報を利用したサービスの例としては、ある店舗の周辺の領域に人が移動したときに、その人に対して店舗の情報を通知するサービスなどがある。 Positional information can be notified from terminals such as mobile phones and smartphones equipped with GPS (Global Positioning System), and various services using the positions of people holding the terminals are becoming widespread. As an example of a service using location information, there is a service for notifying store information to a person when the person moves to an area around a store.
今後、位置を通知する端末やその位置情報を利用するサービスはますます普及し、これらの増加に伴い、端末が存在する領域を判定するための処理量も増加する。 In the future, terminals that notify the location and services that use the location information will become increasingly popular, and with these increases, the amount of processing for determining the area in which the terminal exists will also increase.
従来、空間内に存在する大量のデータから条件に合ったものを高速に判定するためには、判定条件に合わせたインデックスを作成して、一部のデータのみを確認することで該当データを取得できるようにする。インデックスを用いたデータ管理方式には、一次元のデータを検索する場合に用いられるB−Treeを利用した方式や、2次元以上の多次元データを検索する場合に用いられるR−Treeを利用した方式がある。 Conventionally, in order to quickly determine a large amount of data in the space that meets the conditions, an index that matches the conditions is created and the corresponding data is obtained by checking only a portion of the data. It can be so. As a data management method using an index, a method using B-Tree used when searching one-dimensional data or an R-Tree used when searching two-dimensional or more multidimensional data is used. There is a method.
R−Treeでは、相互に重なり合う矩形領域(多次元空間における超矩形を指す。二次元空間の場合は長方形、三次元空間の場合は直方体となる。四次元空間以上の場合も、次元数に合わせて拡張した領域を指す。)に対応するノードで木を作成する。そして、各ノードは、子ノードの最小外接矩形(子ノードの領域をすべて含む最小の矩形領域)を表すものとする。領域判定時には、範囲が重なる子ノードに絞って判定を行うことで判定を高速化する。 In R-Tree, rectangular areas that overlap each other (pointing to a super-rectangular shape in a multidimensional space. A rectangular shape in the case of a two-dimensional space, and a rectangular parallelepiped in a case of a three-dimensional space. The tree is created with the node corresponding to the expanded area. Each node represents the minimum circumscribed rectangle of the child node (minimum rectangular area including all the child node areas). At the time of area determination, the determination is made faster by narrowing down to child nodes whose ranges overlap.
例えば、R−Treeを利用したデータ管理について、図1A及び図1Bを参照して説明する。図1Aは、R−Treeで管理するデータを示し、図1Bは、矩形領域の例を示す。図1Aに示すように、ルートノードR0は、子ノードR1乃至R4の矩形領域を全て含む矩形領域であり、ノードR1は、ノードR5乃至R8の矩形領域を全て含む矩形領域である。また、最下段のノードR5乃至R11は葉ノードであり、内部にデータを含む矩形領域である。すなわち、R0はR1のインデックス情報となり、R1は、R5のインデックス情報となっている。 For example, data management using R-Tree will be described with reference to FIGS. 1A and 1B. FIG. 1A shows data managed by the R-Tree, and FIG. 1B shows an example of a rectangular area. As shown in FIG. 1A, the root node R0 is a rectangular area including all the rectangular areas of the child nodes R1 to R4, and the node R1 is a rectangular area including all of the rectangular areas of the nodes R5 to R8. Further, the lowest nodes R5 to R11 are leaf nodes, which are rectangular areas containing data therein. That is, R0 is index information of R1, and R1 is index information of R5.
図1Bに示すように、条件に合ったデータを検索するために、インデックス情報を用いて該当範囲を検索していく場合、ルートノードであるR0の4つの子ノードR1乃至R4から検索範囲が重なるノードR1を選択する。さらに、ノードR1の4つの子ノードR5乃至R8から検索範囲が重なるノードR5を選択する。このように、重なる部分を持つノードから再帰的に検索範囲が重なるノードを選択し、最終的に葉ノードR5の中から検索範囲内にあるデータを選択する。 As shown in FIG. 1B, when searching for a corresponding range using index information in order to search for data that meets a condition, the search ranges overlap from the four child nodes R1 to R4 of R0 that is the root node. Select node R1. Further, the node R5 having overlapping search ranges is selected from the four child nodes R5 to R8 of the node R1. In this way, a node whose search ranges overlap recursively is selected from the nodes having overlapping portions, and finally, data within the search range is selected from the leaf node R5.
従来のR−Treeでは、領域判定を行う度に毎回ツリーの最上位ノードから判定を始めるため、ノードの深さに比例する比較処理を行うことになる。判定対象の領域がまばらなケースでは比較的すぐに対象領域が無いと判断できて判定処理を終了することができる。しかし、判定対象の領域が密なケースでは、領域自身や中間ノードが重なり合って、判定回数が多くなる。 In the conventional R-Tree, since the determination is started from the highest node of the tree every time the region is determined, a comparison process proportional to the depth of the node is performed. In a case where the determination target areas are sparse, it can be determined that there is no target area relatively quickly, and the determination process can be terminated. However, in the case where the determination target area is dense, the areas themselves and intermediate nodes overlap, and the number of determinations increases.
一般的に、領域判定すべき領域が集まるエリアは、繁華街や交通機関など人や物が集中するエリアであり、リクエストとして与えられる位置情報も同領域になることが多い。そのため、従来技術では、多くの場合に処理時間を効率的に削減することができない。 Generally, an area where areas to be determined gather is an area where people and things are concentrated, such as downtowns and transportation facilities, and position information given as a request is often the same area. For this reason, the conventional technology cannot efficiently reduce the processing time in many cases.
この問題に対する一つの解決策としては、以下のような技術が存在している。すなわち、所定の位置を含む領域の問合せ要求を取得すると、所定の位置が前回検索できた領域に含まれるか否かを判定し、判定の結果、所定の位置が前回検索できた領域に含まれると判定された場合、記憶部に基づいて、含まれると判定された領域の重複領域の中から所定の位置を含む領域を検索する。一方、判定の結果、所定の位置が前回検索できた領域に含まれないと判定された場合、R−Treeに含まれるノードの中で、含まれないと判定された領域を含むインデックス情報の葉ノードからボトムアップでR−Treeを遡った後所定の位置を含む領域を検索する。そして、所定の位置を含む領域を検索できた場合、検索できた情報の重複領域の中から所定の位置を含む領域を検索する。 The following technologies exist as one solution to this problem. That is, when an inquiry request for an area including a predetermined position is acquired, it is determined whether or not the predetermined position is included in the area that was previously searched. As a result of the determination, the predetermined position is included in the area that was previously searched. If it is determined, the area including the predetermined position is searched from the overlapping areas determined to be included based on the storage unit. On the other hand, as a result of the determination, if it is determined that the predetermined position is not included in the previously searched area, the leaf of the index information including the area determined not included in the nodes included in the R-Tree A region including a predetermined position is searched after tracing the R-Tree bottom-up from the node. When the area including the predetermined position can be searched, the area including the predetermined position is searched from the overlapping areas of the information that can be searched.
このような手法を用いると、端末の移動距離が短い場合は、前回位置を含む葉ノードからボトムアップで判定することでルートノードから判定する従来のR−Treeに比べ判定処理を高速化することができる。しかし、移動先がツリー上離れたノード配下である場合(移動距離が近距離の場合でも、親のノードがツリー上離れることもある)、最悪ボトムアップでルートノードまで遡り、さらにルートノードから判定することになるため、判定処理を高速化できない場合がある。 When such a method is used, when the moving distance of the terminal is short, the determination process is speeded up compared to the conventional R-Tree that is determined from the root node by determining from the leaf node including the previous position in the bottom-up manner. Can do. However, if the destination is under a node far away from the tree (even if the distance is short, the parent node may be far away from the tree), it goes back to the root node with the worst bottom-up and further determines from the root node. Therefore, the determination process may not be accelerated.
従って、本技術の目的は、一側面によれば、領域の検索を高速化するための技術を提供することである。 Accordingly, an object of the present technology is, according to one aspect, to provide a technology for speeding up a region search.
本技術に係る領域判定方法は、(A)移動端末の識別子と位置とを含むリクエストを受信し、(B)移動端末の識別子に対応付けて、予め設定されている複数の領域のうち当該移動端末が直前に属していた領域の識別子を格納する第1データ格納部から、リクエストに含まれる移動端末の識別子に対応付けられている領域の識別子を特定し、(C)複数の領域の各々について当該領域から移動する可能性がある第2の領域の識別子が格納されている第2のデータ格納部から、特定された領域の識別子について格納されている第2の領域の識別子を抽出し、(D)抽出された第2の領域の識別子から特定される第2の領域内に、リクエストに含まれる位置が含まれるか判断し、(E)抽出された第2の領域の識別子から特定される第2の領域内にリクエストに含まれる位置が含まれる場合には、抽出された第2の領域の識別子を結果データに追加し、(F)抽出された第2の領域の識別子から特定される第2の領域内にリクエストに含まれる位置が含まれないという第1の条件を含む第2の条件を満たす場合には、複数の領域を探索するためのツリー構造をルートから探索する処理を含む。 The region determination method according to the present technology receives (A) a request including an identifier and a position of a mobile terminal, and (B) associates the mobile terminal with the identifier of the mobile terminal, and moves the mobile From the first data storage unit that stores the identifier of the region to which the terminal belonged immediately before, the identifier of the region associated with the identifier of the mobile terminal included in the request is specified, and (C) each of the plurality of regions An identifier of the second area stored for the identified area identifier is extracted from the second data storage unit storing the identifier of the second area that may move from the area, ( D) It is determined whether the position included in the request is included in the second area specified from the extracted second area identifier, and (E) specified from the extracted second area identifier. In the second region When the position included in the request is included, the identifier of the extracted second area is added to the result data, and (F) the second area specified by the extracted identifier of the second area When the second condition including the first condition that the position included in the request is not included is satisfied, a process for searching a tree structure for searching a plurality of areas from the root is included.
一側面によれば、領域の検索を高速化できるようになる。 According to one aspect, the search for a region can be speeded up.
本実施の形態に係るシステムの概要を図2に示す。図2に示すように、携帯電話網及びインターネットなどであるネットワーク1を介して、複数の移動端末3(図2では3a及び3b)は、判定サーバ5と接続される。移動端末3a及び3bは、携帯電話機である場合もあれば、スマートフォンである場合もある。さらに、カーナビゲーション装置のような車載端末であっても良い。
An overview of the system according to the present embodiment is shown in FIG. As shown in FIG. 2, a plurality of mobile terminals 3 (3a and 3b in FIG. 2) are connected to a
移動端末3は、GPS機能を有しており、例えばユーザからの指示に応じて位置データを取得して当該位置データ及び移動端末3の識別子であるセンサIDを含むリクエストを判定サーバ5へ送信する。移動端末3に含まれる他の機能が、定期的に位置データを取得してリクエストを判定サーバ5へ送信する場合もある。判定サーバ5は、位置データ及びセンサIDを含むリクエストを受信すると、以下で述べるような処理を実行して、移動端末3の現在位置を含む領域に関するデータをレスポンスデータとして、移動端末3へ返信する。
The
図3に判定サーバ5の機能ブロック図を示す。判定サーバ5は、リクエスト受信部51と、ツリー探索部52と、遷移領域管理部53と、前回領域管理部54と、レスポンス送信部55と、関連領域判定部56と、重複領域判定部57と、領域インデックス格納部58と、領域データ格納部59と、前回領域データ格納部59と、遷移領域データ格納部61とを有する。
FIG. 3 shows a functional block diagram of the
リクエスト受信部51は、移動端末3からのリクエストを受信する。レスポンス送信部55は、移動端末3へレスポンスを送信する。ツリー探索部52は、領域インデックス格納部58等に格納されているデータにより実現されているR−Treeを探索するための処理を実行する。関連領域判定部56及び重複領域判定部57は、領域データ格納部59に格納されているデータを用いて、領域判定処理を高速化するための処理を実行する。遷移領域管理部53は、領域間の遷移し易さを表すデータである遷移領域データを格納する遷移領域データ格納部61の管理を行う。前回領域管理部54は、各移動端末について前回リクエスト時における所属領域のデータである前回領域データを格納する前回領域データ格納部59の管理を行う。
The
領域インデックス格納部58に格納されるデータについて図4乃至図7を用いて説明する。領域インデックス格納部58は、空間内に存在する多数の領域から、条件に合致する領域を高速に検索するための索引情報を格納する。例えば、領域インデックス格納部58は、どの領域がどこにあるのかを示すインデックスデータをRーTreeで保持する。
Data stored in the area
ここで、領域インデックス格納部58に格納されるデータの例を、図4を用いて説明する。図4に示すように、領域インデックスは、ルートノード、中間ノード及び葉ノードにより形成される木構造のデータである。ルートノードは、R−Treeに1つ存在する最上位のノードである。また、葉ノードは、R−Treeの最下位のノードであり、自らは子ノードを含まず、検索対象となる領域のIDを1又は複数含む領域IDデータと対応付けられている。木構造データにおけるルートノード及び葉ノード以外のノードは、中間ノードであり、1又は複数の子ノードを有する。
Here, an example of data stored in the area
図4の例では、ルートノードR1の子ノード且つ中間ノードがノードR10及びR11である。ノードR1は、ノードR10及びR11についての矩形領域を全て含む矩形領域に対応する。中間ノードR10の子ノード(葉ノード)は、ノードR100及びR101である。そして、ノードR10は、ノードR100及びR101についての矩形領域を全て含む矩形領域に対応する。中間ノードR11の子ノード(葉ノード)は、ノードR110及びR111である。ノードR11は、ノードR110及びR111についての矩形領域を全て含む矩形領域に対応する。そして、葉ノードであるノードR100には、検索対象となる領域ID「1」「2」及び「3」が関連付けられている。 In the example of FIG. 4, the child nodes and intermediate nodes of the root node R1 are the nodes R10 and R11. Node R1 corresponds to a rectangular area that includes all of the rectangular areas for nodes R10 and R11. Child nodes (leaf nodes) of the intermediate node R10 are nodes R100 and R101. The node R10 corresponds to a rectangular area including all the rectangular areas for the nodes R100 and R101. Child nodes (leaf nodes) of the intermediate node R11 are nodes R110 and R111. The node R11 corresponds to a rectangular area that includes all the rectangular areas for the nodes R110 and R111. Then, the area IDs “1”, “2”, and “3” to be searched are associated with the node R100 that is the leaf node.
葉ノードであるノードR101は、検索対象となる領域ID「4」及び「5」が関連付けられている。葉ノードであるノードR110には、検索対象となる領域ID「6」及び「7」が関連付けられている。さらに、葉ノードであるノードR111には、検索対象となる領域ID「8」及び「9」が関連付けられている。 A node R101 that is a leaf node is associated with region IDs “4” and “5” to be searched. Area IDs “6” and “7” to be searched are associated with the node R110 that is a leaf node. Furthermore, region IDs “8” and “9” to be searched are associated with the node R111 that is a leaf node.
領域インデックス格納部58は、R−Treeの実体としてルートノード、中間ノード、葉ノードの各ノードのデータを格納している。図5は、領域インデックス格納部58に格納されているルートノードのデータの例を示す。図5に示すように、ルートノードR1のデータは、ノード種別、矩形領域データ及び子ノードリストを含む。「ノード種別」は、ノードがルートノード、中間ノード、葉ノードのいずれであるかを示す。矩形領域データは、子ノードの担当領域を全て含む最小外接矩形を表すデータである。最小外接矩形とは、子ノードの領域を全て含む最小の矩形領域である。子ノードリストは、当該ノードの子ノードへのリンクポインタのリストである。
The area
図5の例では、ルートノードR1のノード種別は、ルートノードである。ルートノードR1の矩形領域データは、xyの2次元データであり、「x1=35.5、y1=139.0」が担当領域の最小点であり、「x2=35.9、y2=139.5」が担当領域の最大点であることを示す。すなわち、ノードR1が担当する領域は、両点を頂点として各次元軸に直交した4直線で作られる領域である。また、子ノードリストには、子ノード「R10」及び「R11」へのポインタを含む。 In the example of FIG. 5, the node type of the root node R1 is a root node. The rectangular area data of the root node R1 is xy two-dimensional data, “x1 = 35.5, y1 = 139.0” is the minimum point of the assigned area, and “x2 = 35.9, y2 = 139. “5” indicates the maximum point in the assigned area. That is, the area in charge of the node R1 is an area formed by four straight lines that are perpendicular to each dimension axis with both points as vertices. The child node list includes pointers to the child nodes “R10” and “R11”.
図6は、領域インデックス格納部58に格納される中間ノードのデータの例を示す。図6に示すように、中間ノードのデータは、ノード種別、矩形領域データ及び子ノードリストを含む。領域インデックス格納部58は、ノードR10及びR11について、図6に示すデータを格納する。
FIG. 6 shows an example of intermediate node data stored in the area
図6の例では、ノードR10のノード種別は、中間ノードである。中間ノードR10の矩形領域データは、「x1=35.5、y1=139.2」が担当領域の最小点であり、「x2=35.7、y2=139.3」が担当領域の最大点であることを示す。すなわち、中間ノードR10が担当する領域は、両点を頂点として各次元軸に直交した4直線で作られる領域である。また、ノードR10の子ノードリストは、子ノード「R100」及び「R101」へのポインタを含む。 In the example of FIG. 6, the node type of the node R10 is an intermediate node. In the rectangular area data of the intermediate node R10, “x1 = 35.5, y1 = 139.2” is the minimum point of the assigned area, and “x2 = 35.7, y2 = 139.3” is the maximum point of the assigned area. Indicates that In other words, the region handled by the intermediate node R10 is a region formed by four straight lines that are perpendicular to each dimension axis with both points serving as vertices. The child node list of the node R10 includes pointers to the child nodes “R100” and “R101”.
図7は、領域インデックス格納部58に格納される葉ノードのデータの例を示す図である。図7に示すように、葉ノードのデータは、ノード種別、矩形領域データ及びデータリストを含む。データリストは、領域データへのポインタのリストである。領域インデックス格納部58は、ノードR100、R101、R110及びR111について、図7に示すデータを格納する。
FIG. 7 is a diagram illustrating an example of leaf node data stored in the region
図7の例では、葉ノードR100のノード種別は、葉ノードである。葉ノードR100の矩形領域データは、「x1=35.5、y1=139.2」が担当領域の最小点であり、「x2=35.6、y2=139.3」が担当領域の最大点であることを示す。すなわち、葉ノードR100が担当する領域は、両点を頂点として各次元軸に直交した4直線で作られる領域である。また、ノードR100のデータリストは、領域データへのポインタ「D1」、「D2」及び「D3」を含む。各領域の領域データの実体は、領域データ格納部59に格納されている。
In the example of FIG. 7, the node type of the leaf node R100 is a leaf node. In the rectangular area data of the leaf node R100, “x1 = 35.5, y1 = 139.2” is the minimum point of the assigned area, and “x2 = 35.6, y2 = 139.3” is the maximum point of the assigned area. Indicates that That is, the area in which the leaf node R100 is in charge is an area formed by four straight lines orthogonal to each dimension axis with both points serving as vertices. The data list of the node R100 includes pointers “D1”, “D2”, and “D3” to the area data. The substance of the area data of each area is stored in the area
領域データ格納部59は、複数の領域の領域データを格納する。領域データ格納部59に格納されるデータの一例を、図8を用いて説明する。図8に示すように、領域データ格納部59は、領域ID122a毎に、データ名122b、領域情報122c、重複領域122d及び遷移領域122eを対応付けて格納する。
The area
領域ID122aは、領域を一意に識別可能なIDを示す。データ名122bは、領域IDで示される領域のデータ名を示す。領域情報122cは、領域IDで示される領域の具体的な範囲を示す。重複領域122dは、領域IDで示される領域と重複する他の領域の領域IDを示す。また、遷移領域122eは、当該領域から移動端末3が移動する蓋然性が高い領域の領域IDである。遷移領域122eのフィールドには、予め定められている個数の領域IDが登録されるものとするが、移動する蓋然性が低い領域しか検出されていない場合には、登録されない場合がある。
The
例えば、領域ID122aが「00001」である場合、データ名122bとして「A商店X店舗近辺」、領域情報122cとして「円領域:緯度35.491、経度139.650、半径100m」が登録されている。そして、領域ID122aが「00001」である場合の重複領域122dとして領域ID「00034」が登録され、遷移領域122eとして領域ID「00002」「00005」「00010」が登録されている。
For example, when the
このようなデータを保持していることで、模式的に示せば、図9Aに示すようなデータが用意されていることになる。すなわち、葉ノードに関連付けられている領域IDデータに含まれる領域ID毎に、重複領域及び遷移領域を探索できるようになっている。特に遷移領域のデータによって、図9Bで矢印Mで示すように、領域ID「1」の領域から領域ID「2」の領域への遷移の蓋然性が高いことが領域データに反映されている。 By holding such data, if schematically shown, data as shown in FIG. 9A is prepared. That is, an overlapping area and a transition area can be searched for each area ID included in the area ID data associated with the leaf node. In particular, as shown by the arrow M in FIG. 9B, the data of the transition area reflects that the probability of transition from the area of the area ID “1” to the area of the area ID “2” is high in the area data.
また、前回領域データ格納部59には、図10に示すようなデータが格納される。図10に示すように、移動端末3の識別子であるセンサID毎に、前回この移動端末3が存在すると判定された領域の前回領域IDが登録される。但し、初回は、何も前回領域IDは登録されない。また、例えば所定時間以上変更がなされない場合にはクリアされる場合もある。
Further, data as shown in FIG. 10 is stored in the previous area
さらに、遷移領域データ格納部61には、図11に示すようなデータが格納される。この遷移領域データ格納部61には、領域データ格納部59に格納される遷移領域のデータの元となるデータが格納される。すなわち、領域ID毎に、当該領域IDの領域の次に移動したことがある領域のIDとその遷移回数とが登録されるようになっている。遷移回数を、その遷移を検出する毎にインクリメントして、上位所定数の領域の領域IDを遷移領域の領域IDとして、領域データ格納部59における遷移領域122eの欄に登録する。
Further, the transition area
次に、図12乃至図18を用いて、判定サーバ5の処理内容について説明する。まず、リクエスト受信部51は、移動端末3から領域判定のリクエストを受信する(図12:ステップS1)。領域判定のリクエストには、図13に示すようにセンサID及び位置のデータ(ここでは緯度経度の座標値)が含まれる。
Next, processing contents of the
そうすると、リクエスト受信部51は、ツリー探索部52にリクエストのデータを出力する。ツリー探索部52は、まず関連領域判定部56に対してリクエストのデータを出力し、処理を指示する。具体的には、関連領域判定部56は、リクエストのデータに含まれるセンサIDで前回領域データ格納部59を検索して前回領域IDを読み出す(ステップS3)。
Then, the
ここで関連領域判定部56は、ステップS3で前回領域IDを読み出すことができたか判断する(ステップS5)。前回領域IDを読み出すことができなかった場合には、関連領域判定部56は、ツリー探索部52に前回領域IDを用いた処理が行えなかったことを表す通知を出力する。ツリー探索部52は、関連領域判定部56から通知を受信すると、ルートからの判定処理を実行する(ステップS19)。ルートからの判定処理については、図18を用いて後に説明する。そして処理は端子Bを介して図15の処理に移行する。
Here, the related
一方、前回領域IDを読み出すことができた場合には、関連領域判定部56は、今回のリクエストに含まれる位置座標が前回領域IDで特定される領域内であるか否かを判断する(ステップS7)。領域データ格納部59に格納されている領域データから前回領域IDで特定される領域内に、位置座標が包含されるか否かを判断する。
On the other hand, if the previous area ID can be read, the related
そして、今回リクエストに含まれる位置座標が前回領域IDの領域内である場合には、関連領域判定部56は、前回領域IDを判定結果に追加する(ステップS15)。そして、関連領域判定部56は、前回領域IDを重複領域判定部57に出力する。重複領域判定部57は、前回領域IDを処理対象領域IDとして特定し、重複領域チェック処理を実行する(ステップS17)。そして処理は端子Aを介して図15の処理に移行する。
When the position coordinates included in the current request are within the area of the previous area ID, the related
重複領域チェック処理については図14を用いて説明する。重複領域判定部57は、処理対象領域IDで領域データ格納部59を検索して重複領域の領域IDを特定する(ステップS21)。複数特定される場合もあれば、全く領域IDが特定されない場合もある。全く領域IDが特定されない場合には、処理は呼出元の処理に戻る。
The overlapping area check process will be described with reference to FIG. The overlapping
そして、重複領域判定部57は、未処理の重複領域IDを1つ選択する(ステップS23)。また、重複領域判定部57は、選択された重複領域IDの領域が、今回のリクエストに含まれる位置座標を含むか判断する(ステップS25)。領域データ格納部59に格納されている領域データから選択重複領域IDで特定される領域内に、位置座標が包含されるか否かを判断する。
Then, the overlapping
選択された重複領域IDの領域が今回のリクエストに含まれる位置座標を含まないと判断された場合には、処理はステップS29に移行する。一方、選択された重複領域IDの領域が今回のリクエストに含まれる位置座標を含むと判断された場合には、重複領域判定部57は、選択された重複領域IDを、判定結果に追加する(ステップS27)。
If it is determined that the area of the selected overlapping area ID does not include the position coordinates included in the current request, the process proceeds to step S29. On the other hand, if it is determined that the area of the selected overlapping area ID includes the position coordinates included in the current request, the overlapping
その後、重複領域判定部57は、未処理の重複領域IDが存在するか判断する(ステップS29)。未処理の重複領域IDが存在する場合には、処理はステップS23に戻る。一方、未処理の重複領域IDが存在しない場合には、呼出元の処理に戻る。
Thereafter, the overlapping
このように重複領域を予め領域データ格納部59に用意しておくことで、処理対象領域に重複する領域についても高速に特定でき、処理に係る位置座標を包含するか否かを高速に判断できるようになる。
In this way, by preparing the overlapping area in the area
一方、今回リクエストに含まれる位置座標が前回領域IDの領域内ではない場合には、関連領域判定部56は、領域データ格納部59から、前回領域IDに対応付けられている遷移領域ID及び当該遷移領域IDに対応付けられている重複領域IDを読み出す(ステップS9)。そして、関連領域判定部56は、今回のリクエストに含まれる位置座標が、遷移領域IDで特定される領域及び重複領域IDで特定される領域の少なくとも1つの領域に含まれるか判断する(ステップS11)。今回リクエストに含まれる位置座標がいずれの領域にも含まれない場合には、処理はステップS19に移行する。前回領域IDで特定される領域及び当該領域に重複する領域に今回リクエストに含まれる位置座標が含まれない場合には、R−Treeのルートから検索する。
On the other hand, if the position coordinates included in the current request are not within the area of the previous area ID, the related
一方、今回のリクエストに含まれる位置座標が、遷移領域IDで特定される領域及び重複領域IDで特定される領域の少なくとも1つの領域に含まれる場合には、関連領域判定部56は、今回のリクエストに含まれる位置座標を含む領域のうち面積が最も小さい領域を特定し、当該領域の領域IDを判定結果に追加する(ステップS13)。なお、ステップS15又はS13において関連領域判定部56は、判定結果に追加した領域の領域IDをツリー探索部52に通知する。その後処理は、ステップS17に移行する。ステップS17では、特定された領域の領域IDを処理対象領域IDとして、重複領域チェック処理を実行する。
On the other hand, when the position coordinate included in the current request is included in at least one of the area specified by the transition area ID and the area specified by the overlap area ID, the related area determination unit 56 A region having the smallest area among the regions including the position coordinates included in the request is specified, and the region ID of the region is added to the determination result (step S13). In step S15 or S13, the related
次に、端子Aを介して図15の処理に移行して、重複領域判定部57は、遷移領域管理部53に処理を指示する。そうすると、遷移領域管理部53は、判定結果に基づき遷移領域設定処理を実行する(ステップS31)。遷移領域設定処理については、図16を用いて説明する。
Next, the process proceeds to the process of FIG. 15 via the terminal A, and the overlapping
遷移領域管理部53は、前回領域IDで特定される領域から、判定結果に含まれる移動先の領域への遷移回数を1インクリメントする(ステップS41)。なお、前回領域IDで特定される領域から移動しない場合には、移動していないので遷移回数を変更することはない。また、判定結果に複数の領域IDが含まれる場合には、それぞれについて遷移回数を1インクリメントするようにしても良いし、最初に判定結果に追加された領域IDで特定される領域への遷移回数のみをインクリメントするようにしても良い。
The transition
そして、遷移領域管理部53は、前回領域IDについての遷移領域を遷移回数でソートする(ステップS43)。そして、遷移領域管理部53は、上位所定数の遷移領域が変化すれば、領域データにおける遷移領域の領域IDを、当該上位所定数の遷移領域の領域IDで更新する(ステップS45)。そして処理は呼出元の処理に戻る。
Then, the transition
例えば、図11の例では、領域ID「00001」に対応付けられている遷移領域は「00002」「00005」「00010」となっているが、これが遷移領域設定処理において「00002」「00005」「00012」というように変化した場合には、領域データ格納部59における遷移領域の領域IDを「00002」「00005」「00012」に更新する。
For example, in the example of FIG. 11, the transition areas associated with the area ID “00001” are “00002”, “00005”, and “00010”, which are “00002”, “00005”, “ In the case of a change such as “00012”, the area ID of the transition area in the area
また、ツリー探索部52は前回領域管理部54に指示を行って、前回領域管理部54は、前回領域データ格納部59においてセンサIDに対応付けられる前回領域IDを、ステップS13又はS15で判定結果に追加した領域ID又はステップS19で最初に判定結果に追加した領域IDで更新する(ステップS33)。
Further, the
最後に、レスポンス送信部55は、判定結果に基づき領域データ格納部59から抽出されるデータを含むレスポンスを、移動端末3へ返信する(ステップS35)。
Finally, the
例えば、図17に示すようなレスポンスのデータを生成して送信する。図17の例では、領域IDと、領域データ格納部59において当該領域IDに対応付けられているデータ名とが含まれる。但し、他のデータベースのデータを抽出するようにしても良い。例えば、クーポンDBを設けておき、当該領域IDに対応付けられているクーポンデータを含むようにしても良い。
For example, response data as shown in FIG. 17 is generated and transmitted. In the example of FIG. 17, the area ID and the data name associated with the area ID in the area
移動端末3は、このようなレスポンスのデータを受信すると、移動端末3の表示装置に表示したり、印刷装置から印刷したり、その他予め定められている処理を実行する。
When the
このような処理を実行すれば、移動する可能性がある遷移領域が特定されているので、前回領域に含まれていない場合であっても当該遷移領域に含まれていれば、R−Treeのルートノードからの探索を回避でき、処理負荷を削減できるようになる。 If such a process is executed, a transition region that may move is specified. Even if it is not included in the previous region, if it is included in the transition region, the R-Tree Searching from the root node can be avoided, and the processing load can be reduced.
なお、図18を用いて、ルートからの判定処理について説明する。ツリー探索部52は、領域インデックス格納部58に格納されているデータにおいてルートノードを選択する(図18:ステップS61)。そして、ツリー探索部52は、選択したノードが葉ノードであるか否かを判断する(ステップS63)。子ノードへのポインタを有しない場合には、葉ノードである。選択したノードが葉ノードでない場合には、ツリー探索部52は、選択したノードの子ノードに、今回のリクエストに含まれる位置座標を含むものがあるか否かを、領域インデックス格納部58に格納されている子ノードの矩形領域データから判断する(ステップS65)。選択したノードの子ノードに、今回のリクエストに含まれる位置座標を含むものがない場合には、ツリー探索部52は、未処理の候補ノードが存在しているか判断する(ステップS69)。未処理の候補ノードが存在している場合には、ツリー探索部52は、未処理の候補ノードを1つ選択し(ステップS71)、処理はステップS63に戻る。一方、未処理の候補ノードが存在しない場合には、ツリー探索部52は、領域無しという結果を生成し(ステップS79)、処理は呼出元の処理に戻る。この場合には、前回領域IDも更新されない。
The determination process from the route will be described with reference to FIG. The
一方、選択したノードの子ノードに、今回のリクエストに含まれる位置座標を含むものがある場合には、ツリー探索部52は、今回のリクエストに含まれる位置座標を含む子ノードを候補ノードに追加する(ステップS67)。そして処理はステップS69に移行する。
On the other hand, when there is a child node of the selected node that includes the position coordinate included in the current request, the
一方、ステップS63で、選択したノードが葉ノードであると判断された場合には、ツリー探索部52は、選択した葉ノード配下の領域のうち、今回のリクエストに含まれる位置座標を含む領域があるか判断する(ステップS73)。個々の領域の範囲については、領域データ格納部59に格納されているデータに基づき判断する。
On the other hand, when it is determined in step S63 that the selected node is a leaf node, the
選択した葉ノード配下の領域のうち、今回のリクエストに含まれる位置座標を含む領域が存在しない場合には、処理はステップS69に移行する。一方、選択した葉ノード配下の領域のうち、今回のリクエストに含まれる位置座標を含む領域がある場合には、ツリー探索部52は、最小面積の領域を特定し、判定結果に当該領域の領域IDを追加する(ステップS75)。1つの領域のみが抽出された場合には当該領域の領域IDを判定結果に追加する。そして、ツリー探索部52は、重複領域判定部57に、特定された領域の領域IDを処理対象領域IDとして、重複領域チェック処理を実行させる(ステップS77)。そして処理は呼出元の処理に戻る。
If there is no area including the position coordinates included in the current request among the areas under the selected leaf node, the process proceeds to step S69. On the other hand, if there is a region including the position coordinates included in the current request among the regions under the selected leaf node, the
以上のような処理を行えば、前回と同じ領域にいなくても、前回いた領域から移動する可能性が高い遷移領域に移動したか否かを確認した上で、移動していない場合にルートノードからの探索を行うようにしているので、遷移する可能性が高い遷移領域に移動していれば処理負荷を下げることができる。 If the above processing is performed, even if you are not in the same area as the previous time, check if you have moved to a transition area that has a high possibility of moving from the previous area, and if you have not moved, the route Since the search is performed from the node, the processing load can be reduced if the transition area has a high possibility of transition.
以上本技術の実施の形態を説明したが、本技術はこれに限定されるものではない。例えば、機能ブロック図は一例であって、プログラムモジュール構成とは一致しない場合がある。また、データ格納部の構成についても、ファイル構成とは一致しない場合もある。さらに、処理フローについても、処理結果が変わらない限り、ステップの順番を入れ替えたり、複数のステップを並列に実行しても良い。 Although the embodiment of the present technology has been described above, the present technology is not limited to this. For example, the functional block diagram is an example, and may not match the program module configuration. Also, the configuration of the data storage unit may not match the file configuration. Further, regarding the processing flow, as long as the processing result does not change, the order of the steps may be changed or a plurality of steps may be executed in parallel.
なお、上で述べた判定サーバ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及びアプリケーション・プログラムなどのプログラムとが有機的に協働することにより、上で述べたような各種機能を実現する。
The
以上述べた本実施の形態をまとめると、以下のようになる。 The above-described embodiment can be summarized as follows.
本実施の形態に係る領域判定方法は、(A)移動端末の識別子と位置とを含むリクエストを受信し、(B)移動端末の識別子に対応付けて、予め設定されている複数の領域のうち当該移動端末が直前に属していた領域の識別子を格納する第1データ格納部から、リクエストに含まれる移動端末の識別子に対応付けられている領域の識別子を特定し、(C)複数の領域の各々について当該領域から移動する可能性がある第2の領域の識別子が格納されている第2のデータ格納部から、特定された領域の識別子について格納されている第2の領域の識別子を抽出し、(D)抽出された第2の領域の識別子から特定される第2の領域内に、リクエストに含まれる位置が含まれるか判断し、(E)抽出された第2の領域の識別子から特定される第2の領域内にリクエストに含まれる位置が含まれる場合には、抽出された第2の領域の識別子を結果データに追加し、(F)抽出された第2の領域の識別子から特定される第2の領域内にリクエストに含まれる位置が含まれないという第1の条件を含む第2の条件を満たす場合には、複数の領域を探索するためのツリー構造をルートから探索する処理を含む。 The area determination method according to the present embodiment receives (A) a request including an identifier and a position of a mobile terminal, and (B) among a plurality of areas set in advance in association with the identifier of the mobile terminal. From the first data storage unit that stores the identifier of the region to which the mobile terminal belonged immediately before, the identifier of the region associated with the identifier of the mobile terminal included in the request is specified, and (C) a plurality of regions The identifier of the second region stored for the identifier of the specified region is extracted from the second data storage unit storing the identifier of the second region that may move from the region for each. (D) It is determined whether the position included in the request is included in the second area specified from the extracted second area identifier, and (E) specified from the extracted second area identifier Second to be When the position included in the request is included in the area, the identifier of the extracted second area is added to the result data, and (F) the second area specified from the extracted identifier of the second area In the case where the second condition including the first condition that the position included in the request is not included in the request is included, a process for searching a tree structure for searching a plurality of areas from the root is included.
このように第1の領域から移動する可能性がある(より具体的には可能性が高い)第2の領域に含まれているか否かを先に判断することで、ツリー構造をルートから探索する処理を省略できる場合が多くなり、全体の処理負荷を削減できるようになる。 In this way, the tree structure is searched from the root by determining first whether or not it is included in the second area that is likely to move from the first area (more specifically, the possibility is high). In many cases, the processing to be performed can be omitted, and the overall processing load can be reduced.
また、本領域判定方法は、(G)複数の領域の各々について当該領域と少なくとも一部重複する第3の領域の識別子が格納される第3のデータ格納部から、特定された領域の識別子について格納されている第3の領域の識別子を抽出し、(H)抽出された第3の領域の識別子から特定される第3の領域内に、リクエストに含まれる位置が含まれるか判断する処理を含むようにしても良い。この場合、上で述べた第2の条件が、抽出された第3の領域の識別子から特定される第3の領域内に、リクエストに含まれる位置が含まれないという条件を含む場合もある。 In addition, the region determination method includes: (G) for each of the plurality of regions, from the third data storage unit storing the identifier of the third region at least partially overlapping with the region, Extracting the stored third area identifier, and (H) determining whether the position included in the request is included in the third area specified from the extracted third area identifier. It may be included. In this case, the second condition described above may include a condition that the position included in the request is not included in the third area specified from the extracted identifier of the third area.
このようにすれば、重複領域のデータを用いればより高速に複数の領域に含まれるか否かを判断できるようになる。 In this way, it is possible to determine whether or not it is included in a plurality of areas at a higher speed by using the data of the overlapping area.
さらに、本領域判定方法は、(I)複数の領域の各々について当該領域と少なくとも一部重複する第3の領域の識別子が格納される第3のデータ格納部から、抽出された第2の領域の識別子について格納されている第3の領域の識別子を抽出し、(J)抽出された第3の領域の識別子から特定される第3の領域内に、リクエストに含まれる位置が含まれるか判断し、(K)抽出された第3の領域の識別子から特定される第3の領域内に、リクエストに含まれる位置が含まれる場合には、抽出された第3の領域の識別子を結果データに追加する処理をさらに含むようにしても良い。このような場合にも、重複領域のデータは有用である。 Furthermore, this area determination method includes: (I) a second area extracted from a third data storage unit in which an identifier of a third area that at least partially overlaps the area is stored for each of the plurality of areas. (J) Judge whether the position included in the request is included in the third area specified from the extracted identifier of the third area (K) If the position included in the request is included in the third area specified from the extracted third area identifier, the extracted third area identifier is used as the result data. A process to be added may be further included. Even in such a case, the data of the overlapping area is useful.
さらに、本領域判定方法は、(L)第2の領域の識別子を抽出する処理の前に、特定された領域の識別子から特定される領域内に、リクエストに含まれる位置が含まれるか判断し、(M)特定された領域の識別子から特定される領域内に、リクエストに含まれる位置が含まれる場合には、特定された領域の識別子を結果データに追加する処理をさらに含むようにしても良い。すなわち、移動していないか否かを先に判断することで処理負荷を削減できる場合もある。 Furthermore, this region determination method determines whether the position included in the request is included in the region specified from the identifier of the specified region before the process of (L) extracting the identifier of the second region. (M) When the position included in the request is included in the area specified from the identifier of the specified area, a process of adding the identifier of the specified area to the result data may be further included. In other words, it may be possible to reduce the processing load by first determining whether or not it is moving.
なお、上で述べたような処理をコンピュータに実行させるためのプログラムを作成することができ、当該プログラムは、例えばフレキシブル・ディスク、CD−ROMなどの光ディスク、光磁気ディスク、半導体メモリ(例えばROM)、ハードディスク等のコンピュータ読み取り可能な記憶媒体又は記憶装置に格納される。なお、処理途中のデータについては、RAM等の記憶装置に一時保管される。 Note that a program for causing a computer to execute the processing described above can be created, and the program includes, for example, a flexible disk, an optical disk such as a CD-ROM, a magneto-optical disk, and a semiconductor memory (for example, ROM). Or a computer-readable storage medium such as a hard disk or a storage device. Note that data being processed is temporarily stored in a storage device such as a RAM.
以上の実施例を含む実施形態に関し、さらに以下の付記を開示する。 The following supplementary notes are further disclosed with respect to the embodiments including the above examples.
(付記1)
移動端末の識別子と位置とを含むリクエストを受信し、
前記移動端末の識別子に対応付けて、予め設定されている複数の領域のうち当該移動端末が直前に属していた領域の識別子を格納する第1データ格納部から、前記リクエストに含まれる前記移動端末の識別子に対応付けられている領域の識別子を特定し、
前記複数の領域の各々について当該領域から移動する可能性がある第2の領域の識別子が格納されている第2のデータ格納部から、特定された前記領域の識別子について格納されている第2の領域の識別子を抽出し、
抽出された前記第2の領域の識別子から特定される第2の領域内に、前記リクエストに含まれる位置が含まれるか判断し、
抽出された前記第2の領域の識別子から特定される第2の領域内に前記リクエストに含まれる位置が含まれる場合には、抽出された前記第2の領域の識別子を結果データに追加し、
抽出された前記第2の領域の識別子から特定される第2の領域内に前記リクエストに含まれる位置が含まれないという第1の条件を含む第2の条件を満たす場合には、前記複数の領域を探索するためのツリー構造をルートから探索する
処理を、コンピュータに実行させるためのプログラム。
(Appendix 1)
Receives a request containing the identifier and location of the mobile terminal,
Corresponding to the identifier of the mobile terminal, the mobile terminal included in the request from the first data storage unit that stores the identifier of the region to which the mobile terminal belonged immediately before among the plurality of preset regions Identify the identifier of the region associated with the identifier of
For each of the plurality of regions, the second data storage unit storing the identifier of the second region that may move from the region stores the second identifier stored for the identified region. Extract region identifiers,
Determining whether the position included in the request is included in the second area specified from the extracted identifier of the second area;
If the location included in the request is included in the second area specified from the extracted identifier of the second area, the extracted identifier of the second area is added to the result data,
In the case where the second condition including the first condition that the position included in the request is not included in the second area specified from the extracted identifier of the second area, A program that causes a computer to execute the process of searching from the root for a tree structure for searching an area.
(付記2)
前記複数の領域の各々について当該領域と少なくとも一部重複する第3の領域の識別子が格納される第3のデータ格納部から、特定された前記領域の識別子について格納されている第3の領域の識別子を抽出し、
抽出された前記第3の領域の識別子から特定される第3の領域内に、前記リクエストに含まれる位置が含まれるか判断する
処理を、前記コンピュータに実行させ、
前記第2の条件が、
抽出された前記第3の領域の識別子から特定される第3の領域内に、前記リクエストに含まれる位置が含まれないという条件を含む
付記1記載のプログラム。
(Appendix 2)
For each of the plurality of areas, from the third data storage unit storing the identifier of the third area at least partially overlapping with the area, the third area stored for the identified identifier of the area Extract the identifier,
Causing the computer to execute a process of determining whether the position included in the request is included in the third area identified from the extracted identifier of the third area;
The second condition is
The program according to
(付記3)
前記複数の領域の各々について当該領域と少なくとも一部重複する第3の領域の識別子が格納される第3のデータ格納部から、抽出された前記第2の領域の識別子について格納されている第3の領域の識別子を抽出し、
抽出された前記第3の領域の識別子から特定される第3の領域内に、前記リクエストに含まれる位置が含まれるか判断し、
抽出された前記第3の領域の識別子から特定される第3の領域内に、前記リクエストに含まれる位置が含まれる場合には、抽出された前記第3の領域の識別子を前記結果データに追加する
処理をさらに前記コンピュータに実行させるための付記1記載のプログラム。
(Appendix 3)
For each of the plurality of regions, the third identifier stored for the identifier of the second region extracted from the third data storage unit storing the identifier of the third region at least partially overlapping with the region. Extract the region identifier,
Determining whether the location included in the request is included in the third region identified from the extracted identifier of the third region;
When the position included in the request is included in the third area specified from the extracted identifier of the third area, the extracted identifier of the third area is added to the result data The program according to
(付記4)
前記第2の領域の識別子を抽出する処理の前に、
特定された前記領域の識別子から特定される領域内に、前記リクエストに含まれる位置が含まれるか判断し、
特定された前記領域の識別子から特定される領域内に、前記リクエストに含まれる位置が含まれる場合には、特定された前記領域の識別子を結果データに追加する
処理をさらに前記コンピュータに実行させるための付記1乃至3のいずれか1つ記載のプログラム。
(Appendix 4)
Before the process of extracting the identifier of the second area,
Determining whether the location included in the request is included in the region identified from the identified identifier of the region;
In order to cause the computer to further execute a process of adding the specified identifier of the region to the result data when the location included in the request is included in the region specified from the specified identifier of the region The program according to any one of
(付記5)
移動端末の識別子と位置とを含むリクエストを受信し、
前記移動端末の識別子に対応付けて、予め設定されている複数の領域のうち当該移動端末が直前に属していた領域の識別子を格納する第1データ格納部から、前記リクエストに含まれる前記移動端末の識別子に対応付けられている領域の識別子を特定し、
前記複数の領域の各々について当該領域から移動する可能性がある第2の領域の識別子が格納されている第2のデータ格納部から、特定された前記領域の識別子について格納されている第2の領域の識別子を抽出し、
抽出された前記第2の領域の識別子から特定される第2の領域内に、前記リクエストに含まれる位置が含まれるか判断し、
抽出された前記第2の領域の識別子から特定される第2の領域内に前記リクエストに含まれる位置が含まれる場合には、抽出された前記第2の領域の識別子を結果データに追加し、
抽出された前記第2の領域の識別子から特定される第2の領域内に前記リクエストに含まれる位置が含まれないという第1の条件を含む第2の条件を満たす場合には、前記複数の領域を探索するためのツリー構造をルートから探索する
処理を含み、コンピュータにより実行される領域判定方法。
(Appendix 5)
Receives a request containing the identifier and location of the mobile terminal,
Corresponding to the identifier of the mobile terminal, the mobile terminal included in the request from the first data storage unit that stores the identifier of the region to which the mobile terminal belonged immediately before among the plurality of preset regions Identify the identifier of the region associated with the identifier of
For each of the plurality of regions, the second data storage unit storing the identifier of the second region that may move from the region stores the second identifier stored for the identified region. Extract region identifiers,
Determining whether the position included in the request is included in the second area specified from the extracted identifier of the second area;
If the location included in the request is included in the second area specified from the extracted identifier of the second area, the extracted identifier of the second area is added to the result data,
In the case where the second condition including the first condition that the position included in the request is not included in the second area specified from the extracted identifier of the second area, An area determination method executed by a computer, including a process of searching a tree structure for searching an area from a root.
(付記6)
移動端末の識別子と位置とを含むリクエストを受信する受信部と、
前記移動端末の識別子に対応付けて、予め設定されている複数の領域のうち当該移動端末が直前に属していた領域の識別子を格納する第1データ格納部から、前記リクエストに含まれる前記移動端末の識別子に対応付けられている領域の識別子を特定し、前記複数の領域の各々について当該領域から移動する可能性がある第2の領域の識別子が格納されている第2のデータ格納部から、特定された前記領域の識別子について格納されている第2の領域の識別子を抽出し、抽出された前記第2の領域の識別子から特定される第2の領域内に、前記リクエストに含まれる位置が含まれるか判断し、抽出された前記第2の領域の識別子から特定される第2の領域内に前記リクエストに含まれる位置が含まれる場合には、抽出された前記第2の領域の識別子を結果データに追加する処理部と、
抽出された前記第2の領域の識別子から特定される第2の領域内に前記リクエストに含まれる位置が含まれないという第1の条件を含む第2の条件を満たす場合には、前記複数の領域を探索するためのツリー構造をルートから探索する探索部と、
を有する情報処理装置。
(Appendix 6)
A receiving unit for receiving a request including an identifier and a location of a mobile terminal;
Corresponding to the identifier of the mobile terminal, the mobile terminal included in the request from the first data storage unit that stores the identifier of the region to which the mobile terminal belonged immediately before among the plurality of preset regions From the second data storage unit in which the identifier of the second region that is likely to move from the region is stored for each of the plurality of regions, The second area identifier stored for the identified area identifier is extracted, and the position included in the request is within the second area identified from the extracted second area identifier. If the position included in the request is included in the second area identified from the extracted identifier of the second area, the extracted second area Result processing unit for adding the data Besshi,
In the case where the second condition including the first condition that the position included in the request is not included in the second area specified from the extracted identifier of the second area, A search unit for searching a tree structure for searching an area from the root;
An information processing apparatus.
51 リクエスト受信部
52 ツリー探索部
53 遷移領域管理部
54 前回領域管理部
55 レスポンス送信部
56 関連領域判定部
57 重複領域判定部
58 領域インデックス格納部
59 領域データ格納部
60 前回領域データ格納部
61 遷移領域データ格納部
51
Claims (6)
前記移動端末の識別子に対応付けて、予め設定されている複数の領域のうち当該移動端末が直前に属していた領域の識別子を格納する第1データ格納部から、前記リクエストに含まれる前記移動端末の識別子に対応付けられている領域の識別子を特定し、
前記複数の領域の各々について当該領域から移動する可能性がある第2の領域の識別子が格納されている第2のデータ格納部から、特定された前記領域の識別子について格納されている第2の領域の識別子を抽出し、
抽出された前記第2の領域の識別子から特定される第2の領域内に、前記リクエストに含まれる位置が含まれるか判断し、
抽出された前記第2の領域の識別子から特定される第2の領域内に前記リクエストに含まれる位置が含まれる場合には、抽出された前記第2の領域の識別子を結果データに追加し、
抽出された前記第2の領域の識別子から特定される第2の領域内に前記リクエストに含まれる位置が含まれないという第1の条件を含む第2の条件を満たす場合には、前記複数の領域を探索するためのツリー構造をルートから探索する
処理を、コンピュータに実行させるためのプログラム。 Receives a request containing the identifier and location of the mobile terminal,
Corresponding to the identifier of the mobile terminal, the mobile terminal included in the request from the first data storage unit that stores the identifier of the region to which the mobile terminal belonged immediately before among the plurality of preset regions Identify the identifier of the region associated with the identifier of
For each of the plurality of regions, the second data storage unit storing the identifier of the second region that may move from the region stores the second identifier stored for the identified region. Extract region identifiers,
Determining whether the position included in the request is included in the second area specified from the extracted identifier of the second area;
If the location included in the request is included in the second area specified from the extracted identifier of the second area, the extracted identifier of the second area is added to the result data,
In the case where the second condition including the first condition that the position included in the request is not included in the second area specified from the extracted identifier of the second area, A program that causes a computer to execute the process of searching from the root for a tree structure for searching an area.
抽出された前記第3の領域の識別子から特定される第3の領域内に、前記リクエストに含まれる位置が含まれるか判断する
処理を、前記コンピュータに実行させ、
前記第2の条件が、
抽出された前記第3の領域の識別子から特定される第3の領域内に、前記リクエストに含まれる位置が含まれないという条件を含む
請求項1記載のプログラム。 For each of the plurality of areas, from the third data storage unit storing the identifier of the third area at least partially overlapping with the area, the third area stored for the identified identifier of the area Extract the identifier,
Causing the computer to execute a process of determining whether the position included in the request is included in the third area identified from the extracted identifier of the third area;
The second condition is
The program according to claim 1, further comprising a condition that a position included in the request is not included in a third area identified from the extracted identifier of the third area.
抽出された前記第3の領域の識別子から特定される第3の領域内に、前記リクエストに含まれる位置が含まれるか判断し、
抽出された前記第3の領域の識別子から特定される第3の領域内に、前記リクエストに含まれる位置が含まれる場合には、抽出された前記第3の領域の識別子を前記結果データに追加する
処理をさらに前記コンピュータに実行させるための請求項1記載のプログラム。 For each of the plurality of regions, the third identifier stored for the identifier of the second region extracted from the third data storage unit storing the identifier of the third region at least partially overlapping with the region. Extract the region identifier,
Determining whether the location included in the request is included in the third region identified from the extracted identifier of the third region;
When the position included in the request is included in the third area specified from the extracted identifier of the third area, the extracted identifier of the third area is added to the result data The program according to claim 1, further causing the computer to execute a process.
特定された前記領域の識別子から特定される領域内に、前記リクエストに含まれる位置が含まれるか判断し、
特定された前記領域の識別子から特定される領域内に、前記リクエストに含まれる位置が含まれる場合には、特定された前記領域の識別子を結果データに追加する
処理をさらに前記コンピュータに実行させるための請求項1乃至3のいずれか1つ記載のプログラム。 Before the process of extracting the identifier of the second area,
Determining whether the location included in the request is included in the region identified from the identified identifier of the region;
In order to cause the computer to further execute a process of adding the specified identifier of the region to the result data when the location included in the request is included in the region specified from the specified identifier of the region The program according to any one of claims 1 to 3.
前記移動端末の識別子に対応付けて、予め設定されている複数の領域のうち当該移動端末が直前に属していた領域の識別子を格納する第1データ格納部から、前記リクエストに含まれる前記移動端末の識別子に対応付けられている領域の識別子を特定し、
前記複数の領域の各々について当該領域から移動する可能性がある第2の領域の識別子が格納されている第2のデータ格納部から、特定された前記領域の識別子について格納されている第2の領域の識別子を抽出し、
抽出された前記第2の領域の識別子から特定される第2の領域内に、前記リクエストに含まれる位置が含まれるか判断し、
抽出された前記第2の領域の識別子から特定される第2の領域内に前記リクエストに含まれる位置が含まれる場合には、抽出された前記第2の領域の識別子を結果データに追加し、
抽出された前記第2の領域の識別子から特定される第2の領域内に前記リクエストに含まれる位置が含まれないという第1の条件を含む第2の条件を満たす場合には、前記複数の領域を探索するためのツリー構造をルートから探索する
処理を含み、コンピュータにより実行される領域判定方法。 Receives a request containing the identifier and location of the mobile terminal,
Corresponding to the identifier of the mobile terminal, the mobile terminal included in the request from the first data storage unit that stores the identifier of the region to which the mobile terminal belonged immediately before among the plurality of preset regions Identify the identifier of the region associated with the identifier of
For each of the plurality of regions, the second data storage unit storing the identifier of the second region that may move from the region stores the second identifier stored for the identified region. Extract region identifiers,
Determining whether the position included in the request is included in the second area specified from the extracted identifier of the second area;
If the location included in the request is included in the second area specified from the extracted identifier of the second area, the extracted identifier of the second area is added to the result data,
In the case where the second condition including the first condition that the position included in the request is not included in the second area specified from the extracted identifier of the second area, An area determination method executed by a computer, including a process of searching a tree structure for searching an area from a root.
前記移動端末の識別子に対応付けて、予め設定されている複数の領域のうち当該移動端末が直前に属していた領域の識別子を格納する第1データ格納部から、前記リクエストに含まれる前記移動端末の識別子に対応付けられている領域の識別子を特定し、前記複数の領域の各々について当該領域から移動する可能性がある第2の領域の識別子が格納されている第2のデータ格納部から、特定された前記領域の識別子について格納されている第2の領域の識別子を抽出し、抽出された前記第2の領域の識別子から特定される第2の領域内に、前記リクエストに含まれる位置が含まれるか判断し、抽出された前記第2の領域の識別子から特定される第2の領域内に前記リクエストに含まれる位置が含まれる場合には、抽出された前記第2の領域の識別子を結果データに追加する処理部と、
抽出された前記第2の領域の識別子から特定される第2の領域内に前記リクエストに含まれる位置が含まれないという第1の条件を含む第2の条件を満たす場合には、前記複数の領域を探索するためのツリー構造をルートから探索する探索部と、
を有する情報処理装置。 A receiving unit for receiving a request including an identifier and a location of a mobile terminal;
Corresponding to the identifier of the mobile terminal, the mobile terminal included in the request from the first data storage unit that stores the identifier of the region to which the mobile terminal belonged immediately before among the plurality of preset regions From the second data storage unit in which the identifier of the second region that is likely to move from the region is stored for each of the plurality of regions, The second area identifier stored for the identified area identifier is extracted, and the position included in the request is within the second area identified from the extracted second area identifier. If the position included in the request is included in the second area identified from the extracted identifier of the second area, the extracted second area Result processing unit for adding the data Besshi,
In the case where the second condition including the first condition that the position included in the request is not included in the second area specified from the extracted identifier of the second area, A search unit for searching a tree structure for searching an area from the root;
An information processing apparatus.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2013068440A JP6065708B2 (en) | 2013-03-28 | 2013-03-28 | Information processing method, apparatus and program |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2013068440A JP6065708B2 (en) | 2013-03-28 | 2013-03-28 | Information processing method, apparatus and program |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2014191720A true JP2014191720A (en) | 2014-10-06 |
JP6065708B2 JP6065708B2 (en) | 2017-01-25 |
Family
ID=51837872
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2013068440A Expired - Fee Related JP6065708B2 (en) | 2013-03-28 | 2013-03-28 | Information processing method, apparatus and program |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP6065708B2 (en) |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2009118470A (en) * | 2007-10-15 | 2009-05-28 | Ntt Docomo Inc | Information distributing apparatus and information distribution method |
JP2009199151A (en) * | 2008-02-19 | 2009-09-03 | Hitachi Ltd | k-NEAREST NEIGHBOR SEARCH METHOD AND k-NEAREST NEIGHBOR SEARCH PROGRAM AND k-NEAREST NEIGHBOR SEARCH DEVICE |
JP2010160591A (en) * | 2009-01-07 | 2010-07-22 | Hitachi Ltd | Device, method and program for managing spatial data |
JP2013025591A (en) * | 2011-07-21 | 2013-02-04 | Fujitsu Ltd | Area searching method, area searching program, and information processing device |
-
2013
- 2013-03-28 JP JP2013068440A patent/JP6065708B2/en not_active Expired - Fee Related
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2009118470A (en) * | 2007-10-15 | 2009-05-28 | Ntt Docomo Inc | Information distributing apparatus and information distribution method |
JP2009199151A (en) * | 2008-02-19 | 2009-09-03 | Hitachi Ltd | k-NEAREST NEIGHBOR SEARCH METHOD AND k-NEAREST NEIGHBOR SEARCH PROGRAM AND k-NEAREST NEIGHBOR SEARCH DEVICE |
JP2010160591A (en) * | 2009-01-07 | 2010-07-22 | Hitachi Ltd | Device, method and program for managing spatial data |
JP2013025591A (en) * | 2011-07-21 | 2013-02-04 | Fujitsu Ltd | Area searching method, area searching program, and information processing device |
Also Published As
Publication number | Publication date |
---|---|
JP6065708B2 (en) | 2017-01-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP2958033A1 (en) | Tile-based distribution of searchable geospatial data to client devices | |
US9189280B2 (en) | Tracking large numbers of moving objects in an event processing system | |
CN103268730B (en) | Electronic map interface shows the method and apparatus of association mark point | |
CN106202367A (en) | A kind of processing method and processing device of object information | |
KR20100068468A (en) | Method, apparatus and computer program product for performing a visual search using grid-based feature organization | |
WO2006059629A1 (en) | Device, method and program for managing area information | |
JP2008090195A (en) | Map data distribution system | |
CN103714080A (en) | Spatial index structure tree based method and device for providing results of searching spatial objects | |
CN105653537A (en) | Paging query method and device for database application system | |
JP5678790B2 (en) | Index management method, index management program, and index management apparatus | |
US20230194302A1 (en) | Method of updating map data, electronic device and storage medium | |
CN109800360A (en) | Cell queries method, apparatus, electronic equipment and storage medium | |
CN101207880A (en) | Mobile phone indicating guidance system based on server client machine mode | |
CN105786941A (en) | Information mining method and device | |
CN112836093A (en) | Data query method and device, electronic equipment and storage medium | |
US10182307B2 (en) | System for providing location-based social networking services to users of mobile devices | |
JP6065708B2 (en) | Information processing method, apparatus and program | |
CN107657474B (en) | Method for determining business circle boundary and server | |
JP2012212057A (en) | Map provision server, map provision method, and program | |
CN104735237A (en) | Path prediction method and interactive voice response (IVR) path prediction system | |
JP5912328B2 (en) | Point name output device, navigation device, point name output method, and program | |
CN111274272B (en) | Object searching method and device and computer system | |
KR101634108B1 (en) | A geographic information providing method using dynamic cache | |
CN116010677B (en) | Spatial index method and device and electronic equipment thereof | |
JP5492267B2 (en) | Information processing apparatus, method, and computer program |
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 |