JP5237837B2 - Spatial data management device, spatial data management method, and spatial data management program - Google Patents

Spatial data management device, spatial data management method, and spatial data management program Download PDF

Info

Publication number
JP5237837B2
JP5237837B2 JP2009001234A JP2009001234A JP5237837B2 JP 5237837 B2 JP5237837 B2 JP 5237837B2 JP 2009001234 A JP2009001234 A JP 2009001234A JP 2009001234 A JP2009001234 A JP 2009001234A JP 5237837 B2 JP5237837 B2 JP 5237837B2
Authority
JP
Japan
Prior art keywords
spatial
region
search
spatial data
node
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.)
Active
Application number
JP2009001234A
Other languages
Japanese (ja)
Other versions
JP2010160591A (en
JP2010160591A5 (en
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.)
Hitachi Ltd
Hitachi Solutions Ltd
Original Assignee
Hitachi Ltd
Hitachi Solutions 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 Hitachi Ltd, Hitachi Solutions Ltd filed Critical Hitachi Ltd
Priority to JP2009001234A priority Critical patent/JP5237837B2/en
Publication of JP2010160591A publication Critical patent/JP2010160591A/en
Publication of JP2010160591A5 publication Critical patent/JP2010160591A5/ja
Application granted granted Critical
Publication of JP5237837B2 publication Critical patent/JP5237837B2/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Description

本発明は、空間データ管理装置、空間データ管理方法、および、空間データ管理プログラムに関する。   The present invention relates to a spatial data management device, a spatial data management method, and a spatial data management program.

近年、二次元、または三次元の空間に存在する建築物などのオブジェクトを管理可能なデータベース管理システム(空間DB管理システム)が開発されている。このようなオブジェクトの検索は、ナビゲーション機能に特化した地図検索システム、都市計画や防災などの行政システム、ガスや水道などの施設管理を応用とする地理情報システムに必要とされる。そのため、空間DB管理システムは、地理情報システムのデータ管理ミドルウェアとして利用されている。   In recent years, database management systems (spatial DB management systems) capable of managing objects such as buildings existing in a two-dimensional or three-dimensional space have been developed. Such an object search is required for a map search system specialized in a navigation function, an administrative system such as city planning and disaster prevention, and a geographical information system applying facility management such as gas and water. Therefore, the spatial DB management system is used as data management middleware for a geographic information system.

オブジェクトは、その位置や形状を表現する図形要素と、その内容を表現する文字や数値等の属性要素から構成される。空間DB管理システムでは、大容量の二次記憶装置に格納された多量のオブジェクトの中から、図形要素を含む検索条件に合致したオブジェクトを高速に検索することが求められる。   An object is composed of a graphic element expressing its position and shape, and attribute elements such as characters and numerical values expressing its contents. In the space DB management system, it is required to search at high speed an object that matches a search condition including a graphic element from a large number of objects stored in a large-capacity secondary storage device.

空間DB管理システムでは、オブジェクトの検索として、範囲検索やk最近傍検索を備えている。範囲検索では、任意の形状の図形を指定し、その図形に包含される、または交差するオブジェクトを検索する。地理情報システムでは、範囲検索は、地図を画面に描画する際に用いられる。この場合、画面の範囲に含まれるオブジェクトを検索することになる。ユーザが描画範囲を移動させる際、または描画範囲の拡大や縮小を行う際に、範囲検索の処理が頻発する。   The space DB management system includes a range search and a k nearest neighbor search as object searches. In the range search, a figure having an arbitrary shape is specified, and an object included in or intersecting with the figure is searched. In the geographic information system, range search is used when a map is drawn on a screen. In this case, an object included in the screen range is searched. When the user moves the drawing range or enlarges or reduces the drawing range, the range search process frequently occurs.

一方、k最近傍検索では、任意の地点を指定し、その地点から距離の近い上位k件のオブジェクトを検索する。k最近傍検索は、例えば、地図検索システムにおいて、観光先の目的地から距離の近い上位10件の飲食店を検索する場合に用いられる。また、地図情報システムにおいて、図形データの編集を行う際に、マウスポインタで最近接のオブジェクトを指定する場合に、最近傍検索が利用される。   On the other hand, in the k nearest neighbor search, an arbitrary point is designated, and the top k objects closest to the point are searched. The k nearest neighbor search is used, for example, in the map search system when searching for the top 10 restaurants near the destination of the tourist destination. In the map information system, nearest neighbor search is used when the closest object is designated with the mouse pointer when editing graphic data.

また、空間DB管理システムは、地図を利用する組込機器のソフトウェア(組込ソフトウェア)の開発でも、利用されつつある。その代表例は、カーナビゲーション装置やPND(Personal Navigation Device)などの車載情報端末や携帯情報端末のナビゲーションソフトウェアである。ナビゲーションソフトウェアの主な機能は、画面への地図表示、店舗や施設などの地図検索、現在地から目的地までの経路検索などである。これらの機能の内部処理は、オブジェクトの検索を基本処理とする。開発者が空間DB管理システムを用いると、機能ごとにオブジェクトの検索の処理を実装する必要がないため、ソフトウェアの開発工数を削減できる。   The space DB management system is also being used in the development of software for embedded devices (embedded software) that uses maps. Typical examples are navigation software for in-vehicle information terminals and portable information terminals such as car navigation devices and PNDs (Personal Navigation Devices). The main functions of the navigation software are a map display on the screen, a map search for shops and facilities, and a route search from the current location to the destination. The internal processing of these functions is based on object search. When a developer uses a spatial DB management system, it is not necessary to implement object search processing for each function, and therefore, software development man-hours can be reduced.

空間DB管理システムは、オブジェクトの検索を高速に処理するため、空間索引を作成する。空間DB管理システムは、空間索引を用いることで、検索対象となるオブジェクトを空間的に絞り込むことができる。その結果、検索処理時間の大部分を占める二次記憶装置と主記憶装置の間のディスクアクセス処理の回数を削減できる。このディスクアクセス処理は、二次記憶装置から主記憶装置にオブジェクトを読み込むときに発生する。   The spatial DB management system creates a spatial index in order to process an object search at high speed. The spatial DB management system can spatially narrow down objects to be searched by using a spatial index. As a result, the number of disk access processes between the secondary storage device and the main storage device that occupy most of the search processing time can be reduced. This disk access processing occurs when an object is read from the secondary storage device to the main storage device.

非特許文献1には、代表的な空間索引として、PMR4分木をデータ構造とする手法が開示されている。PMR4分木では、再帰的に空間領域を4分割した領域をZオーダの順位で符号化し、その領域の符号値をキー値とした1次元のツリー構造索引で管理する。   Non-Patent Document 1 discloses a technique in which a PMR quadtree has a data structure as a representative spatial index. In the PMR quadtree, an area obtained by recursively dividing a spatial area into four is encoded in the order of Z order, and managed by a one-dimensional tree structure index using the code value of the area as a key value.

「Speeding up construction of PMR quadtree-based spatial indexes」VLDB Journal、 Vol.11、 Issue.2、 pp.109-137 (2002)`` Speeding up construction of PMR quadtree-based spatial indexes '' VLDB Journal, Vol.11, Issue.2, pp.109-137 (2002)

組込ソフトウェアなどのハードウェア資源の使用制約が厳しいプラットフォーム上での開発では、次の2つの制約を考慮する必要がある。   In the development on a platform where use restrictions of hardware resources such as embedded software are severe, it is necessary to consider the following two restrictions.

1つ目の制約は、組込ソフトウェアのサイズの制約である。組込ソフトウェアのプログラム、データ、索引を事前に決められた二次記憶装置や主記憶装置の容量に合わせる必要がある。組込システムの開発では、ハードウェアの部品を短小軽薄にしたいというニーズが高いため、開発者は、組込システムのハードウェアの部品に小容量の二次記憶装置や主記憶装置を用いる。その結果、組込ソフトウェアのサイズの制約を考慮し、空間DBのサイズを削減する必要がある。空間DBは、管理プログラム、オブジェクト、空間索引から構成される。これらの中で、大きな割合を占める空間索引の格納に必要な容量の削減が求められる。   The first restriction is a restriction on the size of the embedded software. It is necessary to match the embedded software program, data, and index with a predetermined capacity of the secondary storage device or the main storage device. In the development of an embedded system, there is a high need to make hardware components short, small, and thin, and therefore developers use a small-capacity secondary storage device or main storage device for the hardware components of the embedded system. As a result, it is necessary to reduce the size of the space DB in consideration of restrictions on the size of the embedded software. The space DB is composed of a management program, objects, and a space index. Among these, it is required to reduce the capacity necessary for storing a spatial index that occupies a large proportion.

2つ目の制約は、組込ソフトウェアの処理時間の制約である。組込システムでは、ある処理を実行してから、決められた時間内にその処理を終了させることが求められる。
範囲検索は、オブジェクトの検索の中で、最もよく利用される。そこで、容量削減後の空間索引を用いた場合でも、容量削減前の空間索引と同等に、高速に範囲検索を実現できる必要がある。
The second restriction is a restriction on the processing time of the embedded software. In an embedded system, it is required to execute a certain process and finish the process within a predetermined time.
Range search is most often used in object search. Therefore, even when a spatial index after capacity reduction is used, it is necessary to be able to realize a range search as fast as the spatial index before capacity reduction.

前記した非特許文献1で使用されるPMR4分木で空間データを管理する手法では、PMR4分木のデータ構造に冗長な部分が存在するため、2つの制約(小容量かつ高速)を充分に満たしているとはいえない。
例えば、PMR4分木のデータ構造は、B木などの一次元のツリー構造索引となり、リーフノードに空間領域の情報とオブジェクトの情報を組とした要素を格納する。この空間領域は、オブジェクトを内包または交差する領域となる。ここで、1つの空間領域に複数のオブジェクトが内包また交差する場合、同じ空間領域の情報をもつ要素が重複して、格納されることになる。
In the method of managing spatial data using the PMR quadtree used in Non-Patent Document 1 described above, since there is a redundant part in the data structure of the PMR quadtree, the two constraints (small capacity and high speed) are sufficiently satisfied. I cannot say that.
For example, the data structure of the PMR quadtree becomes a one-dimensional tree structure index such as a B-tree, and the elements of the spatial region information and the object information are stored in leaf nodes. This spatial region is a region that includes or intersects with an object. Here, when a plurality of objects are included or intersect in one space area, elements having the same space area information are stored redundantly.

そこで、本発明は、前記した問題を解決し、空間領域上に配置されたオブジェクトの検索処理について、小容量かつ高速で実施することを、主な目的とする。   In view of the above, the main object of the present invention is to solve the above-described problems and to carry out search processing of objects arranged in a space area at a small capacity and at a high speed.

前記課題を解決するために、本発明は、多次元空間上にオブジェクトが配置される空間データを管理する空間データ管理装置であって、
前記空間データ管理装置は、空間データを格納する記憶部と、指定された検索範囲内に存在するオブジェクトを前記空間データから検索するオブジェクト検索部と、を有し、
前記記憶部には、各ノードからの子ノードの数を制限するバランス木として前記空間データを格納する領域索引ツリーが記憶され、
前記記憶された領域索引ツリーの各ノードには、前記空間データを1回以上等分割した空間領域の情報が所定数以下だけ格納され、その空間領域の情報は、空間領域の多次元空間上の位置を一意に示すスカラ値に写像した結果であるキー値が含まれ、
前記領域索引ツリーの子ノードを持つ非リーフノードには、その各子ノードのとりうるキー値の範囲に応じて、各子ノードへのリンクが対応づけられており、前記領域索引ツリーの子ノードを持たないリーフノードには、空間領域の情報から、その空間領域に外接矩形が交わるオブジェクトへのリンクが対応づけられており、
前記オブジェクト検索部が、
入力装置を介して前記検索範囲が指定されると、
前記領域索引ツリーのルートノードから順に、前記検索範囲の代表点をスカラ値に写像した検索符号値と、前記領域索引ツリーの各ノードの空間領域のキー値とを照合することにより、非リーフノード、リーフノード、オブジェクトへのリンクと辿ることで、前記検索範囲の代表点が含まれる空間領域と、その空間領域からリンクするオブジェクトとを抽出する手順について、一巡ごとに前記検索範囲から辿った空間領域を除外した領域の代表点を新たな検索符号値として更新することで繰り返し、
前記検索範囲から辿った空間領域を除外した領域が無くなると、前記領域索引ツリーの各ノードを辿る処理により抽出される各オブジェクトについて、オブジェクトの外接矩形と前記検索範囲とを照合し、少なくとも一部が交わるオブジェクトを、前記検索範囲に交わるオブジェクトとして出力することを特徴とする。
その他の手段は、後記する。
In order to solve the above problems, the present invention is a spatial data management device for managing spatial data in which an object is arranged in a multidimensional space,
The spatial data management device includes a storage unit that stores spatial data, and an object search unit that searches the spatial data for objects that exist within a designated search range,
The storage unit stores a region index tree that stores the spatial data as a balance tree that limits the number of child nodes from each node;
Each node of the stored region index tree stores a predetermined number or less of spatial region information obtained by dividing the spatial data at least once, and the spatial region information is stored on the multidimensional space of the spatial region. Contains a key value that is the result of mapping to a scalar value that uniquely identifies the position,
A link to each child node is associated with a non-leaf node having a child node of the region index tree according to a range of key values that each child node can take, and the child node of the region index tree A leaf node that does not have a link from the spatial region information to an object where a circumscribed rectangle intersects the spatial region,
The object search unit
When the search range is specified through the input device,
In order from the root node of the region index tree, a search code value obtained by mapping a representative point of the search range to a scalar value and a key value of a spatial region of each node of the region index tree are collated, whereby a non-leaf node A space traced from the search range for each round with respect to a procedure for extracting a spatial region including a representative point of the search range and an object linked from the spatial region by tracing the link to the leaf node and the object Repeat by updating the representative points of the area excluding the area as a new search code value,
When there is no region excluding the spatial region traced from the search range, for each object extracted by the process of tracing each node of the region index tree, the circumscribed rectangle of the object is collated with the search range, and at least a part Is output as an object that intersects the search range.
Other means will be described later.

本発明によれば、空間領域上に配置されたオブジェクトの検索処理について、小容量かつ高速で実施することができる。   According to the present invention, search processing for objects arranged on a space area can be carried out with a small capacity and at a high speed.

本発明の一実施形態に関する空間データ管理装置を示す構成図である。It is a block diagram which shows the spatial data management apparatus regarding one Embodiment of this invention. 本発明の一実施形態に関する領域索引ツリーを示す説明図である。図2(a)は、空間領域の展開図を示し、図2(b)は、その展開図を作成するためのツリー構造を示す。It is explanatory drawing which shows the area | region index tree regarding one Embodiment of this invention. FIG. 2A shows a development view of the space area, and FIG. 2B shows a tree structure for creating the development view. 本発明の一実施形態に関する局所的な地域における領域索引ツリーを示す説明図である。図3(a)は、空間領域の展開図を示し、図3(b)は、その展開図を作成するためのツリー構造を示す。It is explanatory drawing which shows the area | region index tree in the local area regarding one Embodiment of this invention. FIG. 3A shows a development view of the space area, and FIG. 3B shows a tree structure for creating the development view. 本発明の一実施形態に関するオブジェクト検索部が実行する領域索引ツリーの検索処理の概要を示す説明図である。図4(a)は、空間領域の展開図を示し、図4(b)は、その展開図を作成するためのツリー構造を示す。It is explanatory drawing which shows the outline | summary of the search process of the area | region index tree which the object search part regarding one Embodiment of this invention performs. FIG. 4A shows a development view of the space area, and FIG. 4B shows a tree structure for creating the development view. 本発明の一実施形態に関するオブジェクト登録部が実行する領域索引ツリーの登録処理の概要を示す説明図である。図5(a)は、空間領域の展開図を示し、図5(b)は、その展開図を作成するためのツリー構造を示す。It is explanatory drawing which shows the outline | summary of the registration process of the area | region index tree which the object registration part regarding one Embodiment of this invention performs. FIG. 5A shows a development view of the space area, and FIG. 5B shows a tree structure for creating the development view. 本発明の一実施形態に関するオブジェクト削除部が実行する領域索引ツリーの削除処理の概要を示す説明図である。図6(a)は、空間領域の展開図を示し、図6(b)は、その展開図を作成するためのツリー構造を示す。It is explanatory drawing which shows the outline | summary of the deletion process of the area | region index tree which the object deletion part regarding one Embodiment of this invention performs. FIG. 6A shows a development view of the space area, and FIG. 6B shows a tree structure for creating the development view. 本発明の一実施形態に関するオブジェクト検索部が実行する領域索引ツリーの検索処理を示すフローチャートである。It is a flowchart which shows the search process of the area | region index tree which the object search part regarding one Embodiment of this invention performs. 本発明の一実施形態に関する領域索引ツリーの検索処理における空間領域の検索処理を示すフローチャートである。It is a flowchart which shows the search process of the space area | region in the search process of the area | region index tree regarding one Embodiment of this invention. 本発明の一実施形態に関する領域索引ツリーの検索処理におけるオブジェクトの交差判定処理を示すフローチャートである。It is a flowchart which shows the intersection determination process of the object in the search process of the area | region index tree regarding one Embodiment of this invention. 本発明の一実施形態に関する領域索引ツリーの検索処理における検索符号値の更新処理を示すフローチャートである。It is a flowchart which shows the update process of the search code value in the search process of the area | region index tree regarding one Embodiment of this invention. 本発明の一実施形態に関するオブジェクト登録部が実行する領域索引ツリーの登録処理を示すフローチャートである。It is a flowchart which shows the registration process of the area | region index tree which the object registration part regarding one Embodiment of this invention performs. 本発明の一実施形態に関するオブジェクト登録部が実行する領域索引ツリーの登録処理の詳細を示すフローチャートである。図12(a)が登録のメイン処理であり、図12(b)はそのメイン処理から呼び出されるサブルーチン処理である。It is a flowchart which shows the detail of the registration process of the area | region index tree which the object registration part regarding one Embodiment of this invention performs. FIG. 12A shows a main process of registration, and FIG. 12B shows a subroutine process called from the main process. 本発明の一実施形態に関するオブジェクト削除部が実行する領域索引ツリーの削除処理を示すフローチャートである。図13(a)が削除のメイン処理であり、図13(b)はそのメイン処理から呼び出されるサブルーチン処理である。It is a flowchart which shows the deletion process of the area | region index tree which the object deletion part regarding one Embodiment of this invention performs. FIG. 13A shows a main process for deletion, and FIG. 13B shows a subroutine process called from the main process.

以下、本発明の一実施形態について、図面を参照して説明する。   Hereinafter, an embodiment of the present invention will be described with reference to the drawings.

図1は、空間データ管理装置1を示す構成図である。なお、本実施形態の「空間データ」における「空間」とは、3次元の立体空間だけに限定するのではなく、n次元(nは2以上の自然数)のベクトル空間全般を指す。以下、本実施形態は、n=2の平面ベクトル空間を例示して説明するが、本実施形態はn=2だけに限定するものではなく、n次元に拡張可能である。なお、n次元空間において、1回の空間分割処理により、1つの空間が(2のn乗)個の空間に等分割される。   FIG. 1 is a configuration diagram showing a spatial data management device 1. The “space” in the “spatial data” of the present embodiment is not limited to a three-dimensional solid space, but refers to an entire n-dimensional (n is a natural number of 2 or more) vector space. Hereinafter, the present embodiment will be described by exemplifying a plane vector space of n = 2, but the present embodiment is not limited to n = 2 and can be expanded to n dimensions. In the n-dimensional space, one space is equally divided into (2 n) spaces by one space division process.

空間データ管理装置1は、中央処理装置91、主記憶装置92、二次記憶装置93、入力装置94、および、出力装置95を含むコンピュータとして構成される。
中央処理装置91は、主記憶装置92に格納されたプログラムの処理を行い、各種処理を実行する。
主記憶装置92は、中央処理装置91で実行されるプログラムやデータを格納するメモリとして構成される。主記憶装置92には、処理部として、オブジェクト検索部30、オブジェクト登録部40、オブジェクト削除部50、および、データ切替部60を構成するためのプログラムが記憶されている。
二次記憶装置93は、ハードディスクドライブやフラッシュメモリディスクなどの大容量の記憶装置として構成される。二次記憶装置93には、主記憶装置92の各処理部が扱う空間データとして、領域索引ツリー21と、領域内オブジェクトテーブル22と、オブジェクト詳細テーブル23とを、対応づけて空間データベースとして記憶する。
入力装置94は、オブジェクトの検索に必要な検索条件などを入力する装置である。例えば、車載情報端末では、ハードウェアキーボードの他に、タッチパネルによるソフトウェアキーボードなどで構成される。
出力装置95は、オブジェクトの検索結果を表示する装置であり、液晶ディスプレイなどにより構成される。
The spatial data management device 1 is configured as a computer including a central processing unit 91, a main storage device 92, a secondary storage device 93, an input device 94, and an output device 95.
The central processing unit 91 performs processing of programs stored in the main storage device 92 and executes various types of processing.
The main storage device 92 is configured as a memory that stores programs and data executed by the central processing unit 91. The main storage device 92 stores programs for configuring the object search unit 30, the object registration unit 40, the object deletion unit 50, and the data switching unit 60 as processing units.
The secondary storage device 93 is configured as a large-capacity storage device such as a hard disk drive or a flash memory disk. In the secondary storage device 93, as the spatial data handled by each processing unit of the main storage device 92, the region index tree 21, the in-region object table 22, and the object detail table 23 are stored in association with each other as a spatial database. .
The input device 94 is a device for inputting search conditions and the like necessary for searching for objects. For example, the in-vehicle information terminal includes a software keyboard using a touch panel in addition to a hardware keyboard.
The output device 95 is a device that displays an object search result, and includes a liquid crystal display or the like.

二次記憶装置93が格納するデータについて、説明する。
領域索引ツリー21には、空間索引の情報が、低データ量かつ高速検索が可能なツリー構造として格納される(詳細は図2参照)。
領域内オブジェクトテーブル22には、領域索引ツリー21が示す各領域について、オブジェクトが含まれているか否かの情報が格納される。
オブジェクト詳細テーブル23には、領域内オブジェクトテーブル22で示されたオブジェクトの詳細情報が格納される。詳細情報には、オブジェクトの実形状を表現する座標値のリスト、および、オブジェクトの属性情報が含まれる。
Data stored in the secondary storage device 93 will be described.
The area index tree 21 stores spatial index information as a tree structure with a low data amount and high-speed search (see FIG. 2 for details).
The in-area object table 22 stores information on whether or not an object is included for each area indicated by the area index tree 21.
The object detail table 23 stores detailed information of the object indicated by the in-region object table 22. The detailed information includes a list of coordinate values representing the actual shape of the object and attribute information of the object.

オブジェクト検索部30は、領域索引ツリー21を用いて、任意の範囲(検索範囲)に含まれるオブジェクトを範囲検索する。
範囲検索には、次の二種類が存在する。1つは、検索範囲に内包するオブジェクトを検索する場合である。もう1つは、検索範囲に内包または交差するオブジェクトを検索する場合である。本実施形態のオブジェクト検索部30は、交差関係も含めた後者の範囲検索を対象とする。後者の範囲検索は、車載情報端末の例では、自車位置や目的地の周辺の地図を車載情報端末に表示させる処理に用いられる。なお、前者の範囲検索は後者の範囲検索の条件を厳しくしたもので、基本的には同様の処理で実現できる。
範囲検索を実行するため、オブジェクト検索部30は、検索初期設定部31、交差判定部32、検索起点設定部33、および、絶対座標値変換部34を含めて構成される。
The object search unit 30 uses the area index tree 21 to perform a range search for objects included in an arbitrary range (search range).
There are the following two types of range search. One is a case where an object included in a search range is searched. The other is a case of searching for an object included in or intersecting with the search range. The object search unit 30 of the present embodiment targets the latter range search including the cross relationship. The latter range search is used for the process of displaying the map of the vehicle position and the vicinity of the destination on the in-vehicle information terminal in the example of the in-vehicle information terminal. Note that the former range search is a stricter range search condition, and can basically be realized by the same processing.
In order to execute a range search, the object search unit 30 includes a search initial setting unit 31, an intersection determination unit 32, a search start point setting unit 33, and an absolute coordinate value conversion unit.

オブジェクト登録部40は、二次記憶装置93の空間データ(領域索引ツリー21、領域内オブジェクトテーブル22、オブジェクト詳細テーブル23)に対して、新たにオブジェクトを登録(追加)する。
オブジェクト登録部40は、相対座標値変換部41と、領域分割部42とを含めて構成される。
相対座標値変換部41は、オブジェクトの外接矩形を絶対座標値から相対座標値に変換する。
領域分割部42は、オブジェクトの挿入で領域索引ツリー21のオブジェクトノードが溢れた場合に、空間領域を4分割する。
The object registration unit 40 newly registers (adds) an object to the spatial data (region index tree 21, in-region object table 22, and object detail table 23) in the secondary storage device 93.
The object registration unit 40 includes a relative coordinate value conversion unit 41 and an area division unit 42.
The relative coordinate value conversion unit 41 converts the circumscribed rectangle of the object from an absolute coordinate value to a relative coordinate value.
The area dividing unit 42 divides the space area into four when the object nodes of the area index tree 21 overflow due to the insertion of objects.

オブジェクト削除部50は、二次記憶装置93の空間データ(領域索引ツリー21、領域内オブジェクトテーブル22、オブジェクト詳細テーブル23)に対して、既に登録されているオブジェクトを削除する。オブジェクト削除部50は、領域併合部51を含めて構成される。
領域併合部51は、オブジェクトの削除によって領域索引ツリー21のオブジェクトノードを併合できる場合に、4つの空間領域を1つにまとめる。
The object deletion unit 50 deletes an already registered object from the spatial data (region index tree 21, in-region object table 22, and object detail table 23) in the secondary storage device 93. The object deletion unit 50 includes an area merging unit 51.
The area merging unit 51 combines the four spatial areas into one when the object nodes of the area index tree 21 can be merged by deleting the object.

データ切替部60は、オブジェクトの各処理(検索処理、登録処理、削除処理)の対象となる空間データ(領域索引ツリー21、領域内オブジェクトテーブル22、オブジェクト詳細テーブル23)のセットを、切り替える。空間データのセットは、二次記憶装置93内に複数組格納されている。
データ切替部60は、例えば、各空間データのセットが扱う空間範囲(日本全国版、関東版、東京都版など)をあらかじめ記憶し、入力装置94を介して指定される検索条件が示す位置(例えば、東京駅)が内包される空間データのセットの内、もっとも詳細な地図縮尺に対応する空間データのセット(例えば、東京都版)を選択する。
The data switching unit 60 switches the set of spatial data (region index tree 21, in-region object table 22, and object detail table 23) that is a target of each object processing (search processing, registration processing, deletion processing). A plurality of sets of spatial data are stored in the secondary storage device 93.
For example, the data switching unit 60 stores in advance a spatial range (Japan national version, Kanto version, Tokyo version, etc.) handled by each set of spatial data, and a position indicated by a search condition specified via the input device 94 ( For example, a set of spatial data (for example, the Tokyo version) corresponding to the most detailed map scale is selected from a set of spatial data including Tokyo Station.

このように、空間データのセットを複数個用意することによって、二次記憶装置の容量を消費するものの、範囲検索を高速化させることができる。なお、空間データのセット(詳細地図)には、例えば、ドライバが普段頻繁に運転する地域が設定される。
一方、空間データのセットを1つ(例えば、日本全国版)だけ用意してもよい。そのときには、データ切替部60を空間データ管理装置1から省略することができる。
Thus, by preparing a plurality of sets of spatial data, the range search can be speeded up, although the capacity of the secondary storage device is consumed. Note that, for example, a region where the driver frequently drives is set in the spatial data set (detailed map).
On the other hand, only one set of spatial data (for example, the Japanese national version) may be prepared. At that time, the data switching unit 60 can be omitted from the spatial data management device 1.

図2(a)は、領域索引ツリー21が示す情報を、説明用に理解しやすいように展開した展開図である。この展開図では、横(x)16区画×縦(y)16区画の空間領域を、上方(z軸)から見下ろした形式で示しており、7つのオブジェクト(A〜G)が配置されている。
展開図内の数字(例えば、原点「0」や中央点「192」など)は、その数字の記載位置に対応するZオーダの順位で符号化したモートン符号値を示す。なお、モートン符号値は、n次元の空間領域上の位置を1次元のスカラ値に写像する写像値の一例である。本実施形態では、モートン符号値を例示したが、その代わりにヒルベルト曲線で符号化したヒルベルト符号値などの他の写像演算値を用いてもよい。
展開図内の灰色矩形は、各オブジェクトが外接する矩形を示しており、その内部にオブジェクトID(A〜F)が記述されている。
展開図内の点線は、空間領域を各軸の垂直2等分線で等面積に4分割することで生成される各空間領域の境界を示す。例えば、モートン符号値「192」を起点(左下点)とする右上の領域は、16区画の空間領域を1分割した結果の大きめの(8x8区画)領域である。一方、モートン符号値「60」を起点(左下点)とする中央付近の領域は、16区画の空間領域を3分割した結果の小さめの(2x2区画)領域である。
FIG. 2A is an expanded view in which the information indicated by the area index tree 21 is expanded for easy understanding. In this development view, a horizontal (x) 16 section × vertical (y) 16 section space area is shown as viewed from above (z-axis), and seven objects (A to G) are arranged. .
The numbers (for example, the origin “0”, the center point “192”, and the like) in the development view indicate Morton code values encoded in the order of the Z order corresponding to the described position of the number. The Morton code value is an example of a mapping value that maps a position on an n-dimensional space region to a one-dimensional scalar value. In the present embodiment, Morton code values are exemplified, but other mapping calculation values such as Hilbert code values encoded with a Hilbert curve may be used instead.
A gray rectangle in the development view indicates a rectangle that circumscribes each object, and object IDs (A to F) are described therein.
A dotted line in the development view indicates a boundary of each spatial region generated by dividing the spatial region into four equal areas by a perpendicular bisector of each axis. For example, the upper right area starting from the Morton code value “192” (lower left point) is a larger (8 × 8 section) area as a result of dividing the 16 spatial areas into one. On the other hand, the area near the center starting from the Morton code value “60” (lower left point) is a smaller (2 × 2 section) area as a result of dividing the 16-space area into three.

空間データ管理装置1は、各空間領域の位置を、その代表点(左下点)を変換したモートン符号値と分割回数(分割数)の組で表現する。空間領域を再帰的に等面積で4分割するため、モートン符号値と分割数の組で空間領域の位置と形状を一意に特定できる。空間領域の代表点は、領域内のx座標とy座標の最小値を組とする座標値とする。   The spatial data management device 1 represents the position of each spatial region as a set of Morton code values obtained by converting the representative point (lower left point) and the number of divisions (number of divisions). Since the spatial region is recursively divided into four areas with equal areas, the position and shape of the spatial region can be uniquely specified by a set of Morton code values and the number of divisions. The representative point of the spatial area is a coordinate value that is a set of the minimum value of the x coordinate and the y coordinate in the area.

以下、座標値(7,10)をモートン符号値「157」に変換する計算方法を示す。
(手順1)座標値として、(x,y)=(7,10)が入力される。
(手順2)入力された10進数の座標値(7,10)を、2進数の座標値(0111,1010)に変換する。
(手順3)2進数の座標値(0111,1010)を、y座標とx座標の順番で、2進数の先頭ビットから順に交互に並べ、「10011101」とする。
「10011101」の先頭の「1」は、y座標「1010」の先頭の「1」である。
「10011101」の2桁目の「0」は、x座標「0111」の先頭の「0」である。
「10011101」の3桁目の「0」は、y座標「1010」の2桁目の「0」である。
(手順4)「10011101」を10進数に変換すると、モートン符号値「157」となる。
Hereinafter, a calculation method for converting the coordinate value (7, 10) to the Morton code value “157” will be described.
(Procedure 1) (x, y) = (7, 10) is input as a coordinate value.
(Procedure 2) The input decimal coordinate values (7, 10) are converted into binary coordinate values (0111, 1010).
(Procedure 3) The binary coordinate values (0111, 1010) are alternately arranged in the order of the y-coordinate and the x-coordinate in order from the first bit of the binary number to be “10011101”.
The leading “1” of “10011101” is the leading “1” of the y-coordinate “1010”.
The second digit “0” of “10011101” is the leading “0” of the x-coordinate “0111”.
The third digit “0” of “10011101” is the second digit “0” of the y coordinate “1010”.
(Procedure 4) When “10011101” is converted into a decimal number, the Morton code value “157” is obtained.

モートン符号値の性質より、空間領域内の任意の矩形の左下座標に対応したモートン符号値は、必ずその矩形の右上座標に対応したモートン符号値より小さくなる。また、矩形内部の座標に対応したモートン符号値は、矩形の左下座標と右上座標のモートン符号値の間に含まれることになる。多次元の範囲検索にモートン符号値のこれらの性質を利用すると、検索条件となる多次元の範囲を1次元のスカラ値の範囲に簡単化できる。さらに、モートン符号値は、空間的に近い座標値の間で、近い符号値を割り当てることができるため、1次元のスカラ値の範囲を狭め、範囲検索を高速化できる。   Due to the nature of the Morton code value, the Morton code value corresponding to the lower left coordinate of an arbitrary rectangle in the space area is always smaller than the Morton code value corresponding to the upper right coordinate of the rectangle. The Morton code value corresponding to the coordinates inside the rectangle is included between the Morton code values of the lower left coordinates and the upper right coordinates of the rectangle. If these properties of Morton code values are used for multidimensional range search, the multidimensional range as a search condition can be simplified to a one-dimensional scalar value range. Furthermore, since Morton code values can be assigned close code values between spatially close coordinate values, the range of one-dimensional scalar values can be narrowed to speed up the range search.

前記の例では、2次元平面(x,y)上でのモートン符号値の計算方法を示したが、モートン符号値は、2次元に限定されることはなく、3次元以上のn次元にも拡張することができる。n次元のモートン符号値の計算は、前記した(手順3)を、以下の(手順3b)に置き換えることで、実現できる。
(手順3b)2進数で表記したn次元の座標値を、以下の順序で交互に並べる。
(n次元座標値の先頭ビット)→(n−1次元座標値の先頭ビット)→(略)→(1次元座標値の先頭ビット)→(n次元座標値の2桁目のビット)→(n−1次元座標値の2桁目のビット)→(略)→(1次元座標値の2桁目のビット)→(略)→(1次元座標値の最終ビット)
In the above example, the Morton code value calculation method on the two-dimensional plane (x, y) has been shown. However, the Morton code value is not limited to two dimensions, and can be applied to three or more n dimensions. Can be extended. The calculation of the n-dimensional Morton code value can be realized by replacing (procedure 3) with the following (procedure 3b).
(Procedure 3b) n-dimensional coordinate values expressed in binary numbers are alternately arranged in the following order.
(First bit of n-dimensional coordinate value) → (First bit of n−1-dimensional coordinate value) → (Omitted) → (First bit of one-dimensional coordinate value) → (Second bit of n-dimensional coordinate value) → ( (2nd digit bit of n-1 dimensional coordinate value) → (abbreviated) → (2nd digit bit of 1D coordinate value) → (abbreviated) → (last bit of 1D coordinate value)

図2(b)は、図2(a)が示す領域索引ツリー21の情報を、ツリー構造として示した構成図である。領域索引ツリー21は、各ノードと、ノード間を接続するリンクとがツリー構造になっている。領域索引ツリー21は、バランス木(B木、B+木など)のツリー構造であり、非リーフノード、リーフノード、オブジェクトノードから構成される。これらのノードは、ページという単位で1対1の関係で二次記憶装置に格納される。ページは、データベース管理システムにおいて、二次記憶装置と主記憶装置の間の最小の入出力単位である。
以下の説明では、バランス木の一例として、B+木を用いる例を説明する。B+木は、検索と更新の処理を高速に行えるという点で、データベース管理システムで最もよく用いられている索引構造である。B+木では、非リーフノードにはキー値と子ノードへのポインタ、リーフノードにはキー値とレコードポインタが含まれる。そして、隣接するリーフノードの間を片方向のリンクで連結する。
FIG. 2B is a configuration diagram showing the information of the area index tree 21 shown in FIG. 2A as a tree structure. In the area index tree 21, each node and a link connecting the nodes have a tree structure. The area index tree 21 has a tree structure of a balance tree (B-tree, B + tree, etc.), and includes non-leaf nodes, leaf nodes, and object nodes. These nodes are stored in the secondary storage device in a one-to-one relationship in units of pages. A page is a minimum input / output unit between the secondary storage device and the main storage device in the database management system.
In the following description, an example in which a B + tree is used as an example of a balance tree will be described. The B + tree is an index structure that is most often used in database management systems in that search and update processing can be performed at high speed. In the B + tree, a non-leaf node includes a key value and a pointer to a child node, and a leaf node includes a key value and a record pointer. Then, adjacent leaf nodes are connected by a one-way link.

領域索引ツリー21のリーフノード、非リーフノードには、キー値であるモートン符号値(図中では数値で示す)と、そのモートン符号値が示す左下座標からの空間領域を作成するための分割数(図中では括弧内の数値で示す)と、の組(図中では各ノードの灰色部で示す)が、最大3組分格納できる。例えば、図2(a)の左上の空間領域は、「モートン符号値=128,分割数=1」の組として表現される。
このモートン符号値と分割数との組が図2(a)の1つ分の空間領域を示すので、以下の説明では、モートン符号値と分割数との組を「ノード内の空間領域情報」と表記する。
このように、空間領域を等面積で4分割することで生成される空間領域を、モートン符号値と分割数との組で一意に表現する。モートン符号値は、一次元のスカラ値なので、空間領域の次数(2次元平面、3次元空間)などに依存せず大小関係を定義でき、B+木のノードのキー値(一次元のキー値)として機能する。
The leaf nodes and non-leaf nodes of the area index tree 21 are Morton code values (indicated by numerical values in the figure) that are key values and the number of divisions for creating a spatial area from the lower left coordinates indicated by the Morton code values. A maximum of three sets (indicated by the numerical value in parentheses in the figure) and (indicated by the gray part of each node in the figure) can be stored. For example, the upper left space area in FIG. 2A is expressed as a set of “Morton code value = 128, number of divisions = 1”.
Since the set of Morton code values and the number of divisions represents one space area in FIG. 2A, in the following description, the set of Morton code values and the number of divisions is referred to as “space area information in a node”. Is written.
In this way, a spatial region generated by dividing the spatial region into four equal areas is uniquely represented by a set of Morton code values and the number of divisions. The Morton code value is a one-dimensional scalar value, so the magnitude relationship can be defined without depending on the order of the spatial domain (two-dimensional plane, three-dimensional space), etc., and the key value of the B + tree node (one-dimensional key value) Function as.

領域索引ツリー21の非リーフ(幹)ノードは、最大3件の空間領域情報を格納する。非リーフノードは、非リーフノードまたはリーフノードを子ノードとしてリンクする。非リーフノード内の空間領域情報は、降順または昇順に配置されており、空間領域情報間の白色部には、子ノードへのポインタが矢印で表記される。子ノードへのポインタは、子ノードに対応したページを格納しているディスク上の物理的アドレスを示す。
なお、空間領域情報の最大個数を3件とするのは、あくまで一例である。空間領域情報の最大個数は、ページサイズ、空間領域情報のサイズ、子ノードへのポインタのサイズなどで決定される。また、B+木のデータ構造上、空間領域情報の最大個数が「i」個の場合、子ノードへのポインタは「i+1」個となる。
親ノードの第1空間領域情報と第2空間領域情報との間に設定されるポインタは、そのポインタが示す子ノードを指し示す。このとき、子ノードの各空間領域情報のモートン符号値は、第1空間領域情報のモートン符号値から第2空間領域情報のモートン符号値までの範囲に収まる。
The non-leaf (stem) node of the region index tree 21 stores a maximum of three spatial region information. Non-leaf nodes link non-leaf nodes or leaf nodes as child nodes. Spatial region information in non-leaf nodes is arranged in descending or ascending order, and pointers to child nodes are indicated by arrows in white portions between the spatial region information. The pointer to the child node indicates a physical address on the disk storing the page corresponding to the child node.
Note that the maximum number of pieces of spatial region information is three only as an example. The maximum number of space area information is determined by the page size, the size of the space area information, the size of the pointer to the child node, and the like. If the maximum number of space area information is “i” in the data structure of the B + tree, the number of pointers to child nodes is “i + 1”.
A pointer set between the first space area information and the second space area information of the parent node indicates a child node indicated by the pointer. At this time, the Morton code value of each spatial region information of the child node falls within the range from the Morton code value of the first spatial region information to the Morton code value of the second spatial region information.

領域索引ツリー21のリーフ(葉)ノードは、最大3件の空間領域情報を格納する。リーフノードは、オブジェクトノードにリンクする。リーフノードの空間領域情報は、降順または昇順に配置されている。リーフノードの各空間領域情報(例えば、モートン符号値「32」)からは、その空間領域情報が示す空間領域に重なるオブジェクトを示すオブジェクトノードへのリンク(例えば、オブジェクト「A」)が存在する。
なお、空間領域情報の最大個数を3件とするのは、あくまで一例であり、最大個数を「i」個とすると、「i」個のオブジェクトノードへのポインタが格納される。
A leaf node of the region index tree 21 stores a maximum of three spatial region information. Leaf nodes link to object nodes. The space area information of leaf nodes is arranged in descending order or ascending order. From each space area information (for example, Morton code value “32”) of the leaf node, there is a link (for example, object “A”) to an object node indicating an object overlapping the space area indicated by the space area information.
Note that the maximum number of pieces of space area information is three as an example. If the maximum number is “i”, pointers to “i” object nodes are stored.

さらに、同じリーフノード内に格納される複数の空間領域情報は、互いに空間領域情報のモートン符号値が重複しないように、リーフノードを構成する。
これにより、領域索引ツリー21に必要なディスク容量を、以下の比較例よりも削減することができる。その比較例とは、キー値とオブジェクトの情報の組を領域索引のリーフノードの要素として、PMR4分木を構成する例である。この比較例では、1つの空間領域が複数のオブジェクトを内包するため、同じキー値の要素がリーフノードに複数格納され、冗長になる。
Furthermore, the plurality of spatial region information stored in the same leaf node constitute the leaf node so that the Morton code values of the spatial region information do not overlap each other.
Thereby, the disk capacity required for the area index tree 21 can be reduced as compared with the following comparative example. The comparative example is an example in which a PMR quadtree is configured using a set of key value and object information as an element of a leaf node of the region index. In this comparative example, since one space region contains a plurality of objects, a plurality of elements having the same key value are stored in the leaf nodes, resulting in redundancy.

領域索引ツリー21のオブジェクトノードは、リンクされるリーフノードが示す空間領域の情報1件と、その空間領域に重なる(一部接触または全部内包)複数のオブジェクトの情報(この場合、最大3件)を格納する。オブジェクトの情報は、後述する領域内オブジェクトテーブル22内の空間領域(モートン符号値と分割数)、オブジェクト(IDと領域内位置)を含む。   The object node of the region index tree 21 includes one piece of information on the spatial region indicated by the leaf node to be linked, and information on a plurality of objects overlapping (partially touching or containing all) (in this case, up to three pieces). Is stored. The object information includes a spatial area (Morton code value and the number of divisions) and an object (ID and position in the area) in an in-area object table 22 described later.

Figure 0005237837
Figure 0005237837

表1は、領域内オブジェクトテーブル22を示す。領域内オブジェクトテーブル22は、空間領域情報(モートン符号値および分割数の組)と、オブジェクト情報(オブジェクトIDおよびオブジェクトの領域内位置の組)とを対応づけて管理する。1つの空間領域の情報と、その空間領域に対応する複数のオブジェクトの情報は、領域索引ツリーのオブジェクトノードに含まれる。1つのオブジェクトノードに1ページを割り当てるため、同じ空間領域に重なるオブジェクトの情報は1ページにまとめて格納される。これにより、同じ領域に重なるオブジェクトの情報を1回のディスクアクセスで取得できるため、範囲検索の高速化に寄与する。
領域内オブジェクトテーブル22の空間領域情報は、領域索引ツリー21の非リーフノードおよびリーフノード内の空間領域情報と同じである。
Table 1 shows the in-region object table 22. The in-region object table 22 manages spatial region information (a set of Morton code values and the number of divisions) and object information (a set of an object ID and an in-region position of the object) in association with each other. Information on one spatial region and information on a plurality of objects corresponding to the spatial region are included in the object node of the region index tree. Since one page is allocated to one object node, information on objects overlapping the same space area is stored in one page. As a result, information on objects overlapping the same area can be acquired by one disk access, which contributes to speeding up the range search.
The spatial area information in the intra-area object table 22 is the same as the spatial area information in the non-leaf nodes and leaf nodes of the area index tree 21.

領域内オブジェクトテーブル22のオブジェクトIDは、領域索引ツリー21のオブジェクトノードのオブジェクトIDと同じである。オブジェクトIDとは、オブジェクトを一意に特定するための情報であり、たとえば、オブジェクトのレコードポインタである。オブジェクトのレコードポインタは、テーブル内のレコードを格納したディスク上の物理的アドレスを示す。   The object ID of the area object table 22 is the same as the object ID of the object node of the area index tree 21. The object ID is information for uniquely identifying an object, for example, a record pointer of the object. The record pointer of the object indicates a physical address on the disk where the record in the table is stored.

領域内オブジェクトテーブル22のオブジェクトの領域内位置は、オブジェクトIDが示すオブジェクトの外接矩形(左下座標〜右上座標)の相対座標値を示す。
例えば、空間領域(モートン符号値=16、分割数=2)に含まれるオブジェクト(オブジェクトID=E)は、外接位置が「(0,2)〜(2,2)」である。
そして、図2(a)を参照すると、オブジェクト「E」は、左下座標(4,0)〜右上座標(7,3)の空間領域に内包されている。
オブジェクト「E」の左下座標は、内包される空間領域の左下座標(4,0)に、領域内オブジェクトテーブル22の左下座標(0,2)を加算することで、(4,2)と計算できる。
オブジェクト「E」の右上座標は、内包される空間領域の左下座標(4,0)に、領域内オブジェクトテーブル22の右上座標(2,2)を加算することで、(6,2)と計算できる。
The in-region position of the object in the in-region object table 22 indicates the relative coordinate value of the circumscribed rectangle (lower left coordinate to upper right coordinate) of the object indicated by the object ID.
For example, the circumscribed position of the object (object ID = E) included in the space area (Morton code value = 16, number of divisions = 2) is “(0, 2) to (2, 2)”.
Then, referring to FIG. 2A, the object “E” is included in the space area of the lower left coordinates (4, 0) to the upper right coordinates (7, 3).
The lower left coordinate of the object “E” is calculated as (4, 2) by adding the lower left coordinate (0, 2) of the in-region object table 22 to the lower left coordinate (4, 0) of the contained spatial region. it can.
The upper right coordinate of the object “E” is calculated as (6, 2) by adding the upper right coordinate (2, 2) of the in-region object table 22 to the lower left coordinate (4, 0) of the contained spatial region. it can.

ここで、各パラメータの表現に必要な最低限のビット数を事前に定めておくことにより、ディスク容量を削減できる。
例えば、モートン符号値の表現に必要な最低限のビット数は、図2の例では、空間領域の範囲が16×16なので、16(2の4乗)が2つ分で8ビットとなる。つまり、地図の範囲を示す空間領域の大きさをもとに、モートン符号値を格納する変数の容量を特定することができる。
一方、領域内位置の座標の表現に必要な最低限のビット数は、例えば、空間領域(モートン符号値=128、分割数=1)の場合、8×8の領域であるため、x座標とy座標とでそれぞれ3ビットであるので合計6ビットとなる。オブジェクトの領域内位置を、内包される空間領域の代表点(左下座標)からの差分形式(相対座標)で表現することで、PMR4分木が必要とするデータ容量と比べ、領域内位置の格納に必要なディスク容量を削減できる。このディスク容量の削減効果は、適用するハードウェア部品やアプリケーションにより、二次記憶装置が非常に小さい組込機器への適用に、特に有効である。
このように、扱う領域の大きさに応じて、変数のビット数を規定することができる。なお、ビット数単位とする代わりに、バイト数単位としてもよい。
Here, the disk capacity can be reduced by determining in advance the minimum number of bits necessary for expressing each parameter.
For example, the minimum number of bits required for expressing the Morton code value is 16 (2 to the 4th power), which is 8 bits because the range of the spatial region is 16 × 16 in the example of FIG. That is, the capacity of the variable for storing the Morton code value can be specified based on the size of the space area indicating the map range.
On the other hand, the minimum number of bits necessary for expressing the coordinates of the position in the area is, for example, an 8 × 8 area in the case of a spatial area (Morton code value = 128, number of divisions = 1). Since each y coordinate is 3 bits, the total is 6 bits. By storing the position of the object in the area in the form of a difference (relative coordinates) from the representative point (lower left coordinate) of the contained spatial area, the position of the area in the area can be stored compared to the data capacity required by the PMR quadtree. Can reduce the amount of disk space required. The effect of reducing the disk capacity is particularly effective when applied to an embedded device having a very small secondary storage device depending on the hardware components and applications to be applied.
In this way, the number of bits of the variable can be defined according to the size of the area to be handled. Instead of the number of bits, the number of bytes may be used.

Figure 0005237837
Figure 0005237837

表2は、領域内オブジェクトテーブル22を示す。表1と比較すると、オブジェクトの情報に「種別ID」列が追加されている。
種別IDは、オブジェクトの種類を示す。例えば、種別IDには、銀行「0」、ガソリンスタンド「1」、飲食店「2」、学校「3」などが含まれる。これらの種別IDは、入力装置94を介して入力されるユーザからの検索条件において、指定される。例えば、ユーザは、自車から半径500m以内の施設の内、「ガソリンスタンド」だけを選択する旨の検索条件を入力する。
種別IDの表現に必要な最低限のビット数は、種別IDのとりうる値の範囲を元に、設定される。例えば、種別IDが100通り存在するときには、2の8乗=128通りの値を格納できる変数に種別IDを格納するため、8ビットが最低限のビット数となる。
Table 2 shows the in-region object table 22. Compared with Table 1, a “type ID” column is added to the object information.
The type ID indicates the type of object. For example, the type ID includes bank “0”, gas station “1”, restaurant “2”, school “3”, and the like. These type IDs are specified in search conditions from the user input via the input device 94. For example, the user inputs a search condition for selecting only “gas station” from facilities within a radius of 500 m from the vehicle.
The minimum number of bits necessary for expressing the type ID is set based on the range of values that the type ID can take. For example, when there are 100 type IDs, the type ID is stored in a variable that can store 2 8 = 128 values, so 8 bits is the minimum number of bits.

Figure 0005237837
Figure 0005237837

表3は、オブジェクト詳細テーブル23を示す。オブジェクト詳細テーブル23は、個々のオブジェクトに関する詳細な情報として、オブジェクトIDと、種別IDと、実形状と、を対応づけて格納する。
オブジェクト詳細テーブル23の種別IDは、領域内オブジェクトテーブル22の種別IDと同じ意味である。
オブジェクト詳細テーブル23の実形状はオブジェクトの実際の形状を示し、例えば、オブジェクトの形状を座標の列で表現できる。オブジェクトの実形状は、オブジェクトの検索処理において、高精度な検索をするために用いられる。例えば、オブジェクトの外接矩形が検索範囲内に収まっていたとしても、オブジェクトが円であるときには、外接矩形の角が少し検索範囲内に重なるだけでは、オブジェクトの円は検索範囲内に収まっていないことになる。
Table 3 shows the object detail table 23. The object detail table 23 stores object ID, type ID, and actual shape in association with each other as detailed information about each object.
The type ID in the object detail table 23 has the same meaning as the type ID in the in-region object table 22.
The actual shape of the object detail table 23 indicates the actual shape of the object. For example, the shape of the object can be represented by a sequence of coordinates. The actual shape of the object is used for highly accurate search in the object search process. For example, even if the bounding rectangle of the object is within the search range, if the object is a circle, the circle of the object does not fit within the search range if the corners of the bounding rectangle just overlap the search range. become.

Figure 0005237837
Figure 0005237837

以上説明した空間データ(領域索引ツリー21、領域内オブジェクトテーブル22、オブジェクト詳細テーブル23)のセットは、二次記憶装置93内に1組以上格納されている。データ切替部60は、オブジェクトの各処理(検索処理、登録処理、削除処理)の対象となる空間データのセットを切り替える。
図3は、図2の左下座標値(3,3)から右上座標値(10,10)までの矩形領域を局所的な地域とした、領域索引ツリー21とその展開図を示す。
表4は、図3の領域索引ツリー21とセットになる領域内オブジェクトテーブル22の一例を示す。このように、空間データのセットを局所化することにより、各データ構造の扱う範囲が狭まり、検索対象のデータ量が少なくなる。その結果、範囲検索で二次記憶装置から主記憶装置に読み込むノード(ページ)が少なくなり、検索処理時間を短縮できる。
One or more sets of the spatial data (region index tree 21, region object table 22, object detail table 23) described above are stored in the secondary storage device 93. The data switching unit 60 switches a set of spatial data that is a target of each object processing (search processing, registration processing, and deletion processing).
FIG. 3 shows a region index tree 21 and a developed view thereof in which a rectangular region from the lower left coordinate value (3, 3) to the upper right coordinate value (10, 10) in FIG. 2 is a local region.
Table 4 shows an example of the in-region object table 22 set with the region index tree 21 of FIG. Thus, by localizing a set of spatial data, the range handled by each data structure is narrowed, and the amount of data to be searched is reduced. As a result, the number of nodes (pages) read from the secondary storage device to the main storage device by the range search is reduced, and the search processing time can be shortened.

図4は、オブジェクト検索部30が実行する、検索範囲を、太い点線で囲む矩形の左下座標(5,2)〜右上座標(7,5)としたときの、図2の領域索引ツリー21を検索する様子を示す。以下に、この場合の手順について、図4(a)および図4(b)を併せて参照しつつ、説明する。   FIG. 4 shows the region index tree 21 of FIG. 2 when the search range executed by the object search unit 30 is a rectangular lower left coordinate (5, 2) to upper right coordinate (7, 5) surrounded by a thick dotted line. Shows how to search. The procedure in this case will be described below with reference to FIGS. 4 (a) and 4 (b).

まず、図4(b)における1回目の検索処理(一番左の点線矢印)について、説明する。検索初期設定部31は、検索範囲の左下座標(5,2)をモートン符号値「28」に変換し、検索符号値Mに設定する。領域索引ツリーを探索する際、検索符号値Mに対応した座標を含む空間領域を辿る。モートン符号値の性質から、検索符号値M以下で最大のモートン符号値を含む部分木を辿ることになる。この場合、領域索引ツリー21のルートノードを参照すると、モートン符号値「60」の左の子ノードへのリンクを辿る。これは、このリンクは、検索符号値M「28」以下で最大のモートン符号値をもつ部分木を指し示すためである。
ルートノードの子ノードでは、同様にモートン符号値「32」の左のポインタが指し示す孫ノードを辿る。さらに、この孫ノードでは、検索符号値M「28」は空間領域情報のモートン符号値「16」を代表点とする空間領域に含まれるため(空間領域の右上座標のモートン符号値は31であるため)、そのノードからのリンク先であるオブジェクトノード「E」を概略判定リストに入れる。
First, the first search process (leftmost dotted arrow) in FIG. 4B will be described. The search initial setting unit 31 converts the lower left coordinates (5, 2) of the search range into a Morton code value “28” and sets it to the search code value M. When searching the region index tree, a spatial region including coordinates corresponding to the search code value M is traced. Due to the nature of the Morton code value, a subtree including the maximum Morton code value below the search code value M is traced. In this case, referring to the root node of the region index tree 21, the link to the left child node of the Morton code value “60” is traced. This is because this link points to a subtree having the maximum Morton code value below the search code value M “28”.
Similarly, in the child node of the root node, the grandchild node indicated by the left pointer of the Morton code value “32” is traced. Further, in this grandchild node, the search code value M “28” is included in the spatial region whose representative point is the Morton code value “16” of the spatial region information (the Morton code value of the upper right coordinate of the spatial region is 31). Therefore, the object node “E” which is the link destination from the node is put in the rough determination list.

検索起点設定部33は、領域索引ツリー21をリーフノード(およびその下のオブジェクトノード)まで辿った後、検索符号値Mを更新する。次回の検索符号値Mは、今回の検索符号値Mに対応する検索範囲から、今回の検索符号値Mから検索された空間領域を除外(領域として切り取る)した後の、残りの検索範囲の座標に対応したモートン符号値の中で最小値になる。
例えば、今回の検索範囲(5,2)〜(7,5)に対して、検索された空間領域の範囲(4,0)〜(7,3)を除外すると、残りの検索範囲は(5,4)〜(7,5)となる。よって、検索起点設定部33は、座標(5,4)のモートン符号値「49」を次の検索対象Mとする。
The search start point setting unit 33 updates the search code value M after tracing the region index tree 21 to the leaf node (and the object node below it). The next search code value M is the coordinates of the remaining search range after the space area searched from the current search code value M is excluded (cut out as an area) from the search range corresponding to the current search code value M. The minimum value among Morton code values corresponding to.
For example, if the range (4, 0) to (7, 3) of the searched spatial region is excluded from the current search range (5, 2) to (7, 5), the remaining search range is (5 , 4) to (7, 5). Therefore, the search start point setting unit 33 sets the Morton code value “49” at the coordinates (5, 4) as the next search target M.

次に、図4(b)における2回目の検索処理(中央の点線矢印)について、説明する。領域索引ツリー21のルートノードを参照すると、検索符号値M「49」以下で最大のモートン符号値をもつ部分木を指し示すモートン符号値「60」の左の子ノードへのリンクを辿る。その子ノードでは、空間領域情報のモートン符号値「32」以上で、「52」よりも小さい左から2つめの子ノードへのリンクを辿る。その子ノード(ルートノードの孫ノード)では、検索符号値M「49」は空間領域情報のモートン符号値「48」を代表点とする空間領域に含まれるため、そのノードからのリンク先であるオブジェクトノード「A」を概略判定リストに入れる。
今回の検索範囲(5,4)〜(7,5)に対して、検索された空間領域の範囲(4,4)〜(5,5)を除外すると、残りの検索範囲は(6,4)〜(7,5)となる。よって、検索起点設定部33は、座標(6,4)のモートン符号値「52」を次の検索対象Mとする。
Next, the second search process (center dotted arrow) in FIG. 4B will be described. Referring to the root node of region index tree 21, the link to the left child node of Morton code value “60” indicating the subtree having the maximum Morton code value below search code value M “49” is traced. In the child node, the link to the second child node from the left which is smaller than “52” and has Morton code value “32” or more of the spatial region information is traced. In the child node (the grandchild node of the root node), the search code value M “49” is included in the spatial region whose representative point is the Morton code value “48” of the spatial region information, so the object that is the link destination from that node The node “A” is put in the rough judgment list.
If the searched spatial region ranges (4, 4) to (5, 5) are excluded from the current search ranges (5, 4) to (7, 5), the remaining search ranges are (6, 4). ) To (7, 5). Therefore, the search starting point setting unit 33 sets the Morton code value “52” at the coordinates (6, 4) as the next search target M.

そして、図4(b)における3回目の検索処理(一番右の点線矢印)について、説明する。領域索引ツリー21のルートノードを参照すると、検索符号値M「52」はルートノードの空間領域情報のモートン符号値「60」よりも小さいので、左下の子ノードへのリンクを辿る。その子ノードでは、検索符号値M「52」は空間領域情報のモートン符号値「52」以上なので、さらに左から3つめの子ノードへのリンクを辿る。その子ノード(ルートノードの孫ノード)では、検索符号値M「52」は空間領域情報のモートン符号値「52」を代表点とする空間領域に含まれるため、そのノードからのリンク先であるオブジェクトノード「F,G」を概略判定リストに入れる。
今回の検索範囲(6,4)〜(7,5)に対して、検索された空間領域の範囲(6,4)〜(7,5)を除外すると、残りの検索範囲が無くなる。よって、検索符号値Mは更新せず、領域索引ツリー21を対象とした検索を終了する。
The third search process (rightmost dotted arrow) in FIG. 4B will be described. Referring to the root node of the region index tree 21, the search code value M “52” is smaller than the Morton code value “60” of the spatial region information of the root node, and therefore the link to the child node at the lower left is followed. In the child node, the search code value M “52” is equal to or greater than the Morton code value “52” of the spatial region information, and the link to the third child node from the left is further traced. In the child node (the grandchild node of the root node), the search code value M “52” is included in the spatial region whose representative point is the Morton code value “52” of the spatial region information, so the object that is the link destination from that node The node “F, G” is put in the rough judgment list.
If the searched spatial region ranges (6, 4) to (7, 5) are excluded from the current search ranges (6, 4) to (7, 5), the remaining search ranges disappear. Therefore, the search code value M is not updated, and the search for the region index tree 21 is terminated.

以上の結果、オブジェクト「E,A,F,G」が、領域索引ツリー21からリンクを辿ることにより検索される。この後の詳細判定(詳細は後記する交差判定部32の処理を参照)により、オブジェクト「A」は、検索範囲外として除外され、オブジェクト「E,F,G」が、図4(a)の太い破線の枠で囲んだ検索範囲(5,2)〜(7,5)に適合する検索結果として、出力装置95から出力される。   As a result, the object “E, A, F, G” is searched by following the link from the area index tree 21. Subsequent detailed determination (refer to the processing of the intersection determination unit 32 to be described later for details) excludes the object “A” as out of the search range, and the object “E, F, G” in FIG. The search result is output from the output device 95 as a search result that matches the search range (5, 2) to (7, 5) surrounded by the thick dashed frame.

図5は、オブジェクト登録部40が実行する、図2の領域索引ツリー21の状態から、オブジェクトH,Iを登録する旨を示す説明図である。
図5(a)において、オブジェクトH(6,11)〜(8,12)と、オブジェクトI(2,15)〜(6,15)と、を順に空間領域(0,8)〜(7,15)付近に挿入すると、その空間領域には4つのオブジェクトC,D,H,Iが含まれてしまい、許容量の3つを超過する。
そこで、領域分割部42は、許容量が超過した1つの空間領域(0,8)〜(7,15)を、4分割し、4つの空間領域(モートン符号値=128、144、160、176)を作成する。これにより、4つの空間領域にそれぞれ含まれるオブジェクトの個数を、許容量の3つ以内にすることができる。
図5(b)に示す領域索引ツリー21は、領域分割部42による領域分割処理に伴い、図2における1つの空間領域(モートン符号値=128、分割数=1)が、分割数=2とする4つの空間領域(モートン符号値=128、144、160、176)へと分割されている。この分割に伴い、領域索引ツリー21のモートン符号値=128の空間領域情報を含むリーフノードも、許容量である3つの空間領域情報を超過したため、領域索引ツリー21のリーフノードも2つに分割されている。
さらに、領域索引ツリー21のリーフノードの更新に伴い、そのリーフノードのリンク先となるオブジェクトノードも、併せて更新される。
FIG. 5 is an explanatory diagram showing that the objects H and I are registered from the state of the area index tree 21 of FIG.
In FIG. 5A, objects H (6, 11) to (8, 12) and objects I (2, 15) to (6, 15) are sequentially arranged in the space regions (0, 8) to (7, 15) When inserted in the vicinity, four objects C, D, H, and I are included in the space area, which exceeds the allowable amount of three.
Therefore, the region dividing unit 42 divides one spatial region (0, 8) to (7, 15) whose allowable amount has been exceeded into four, and obtains four spatial regions (Morton code values = 128, 144, 160, 176). ). As a result, the number of objects included in each of the four spatial regions can be within the allowable amount of three.
The area index tree 21 shown in FIG. 5 (b) has one space area (Morton code value = 128, number of divisions = 1) in FIG. Are divided into four spatial regions (Morton code values = 128, 144, 160, 176). As a result of this division, the leaf node including the spatial region information of Morton code value = 128 in the region index tree 21 also exceeds the allowable three spatial region information, so the leaf node of the region index tree 21 is also divided into two. Has been.
Further, as the leaf node of the area index tree 21 is updated, the object node that is the link destination of the leaf node is also updated.

図6は、オブジェクト削除部50が実行する、図2の領域索引ツリー21の状態から、オブジェクトAを削除する旨を示す説明図である。
図6(a)において、オブジェクトA(3,4)〜(4,7)を削除することにより、そのオブジェクトAが位置していた近辺の4つ組の空間領域(モートン符号値=48、52、56、60)は、それぞれオブジェクトの許容量(3つ)に余裕ができる。
そこで、領域併合部51は、4つ組の空間領域を、1つの空間領域(モートン符号値=48,分割数=2)に併合する。これにより、領域索引ツリー21のノード数を削減し、領域索引ツリーの格納に必要な二次記憶装置の容量を抑制できる。
図6(b)に示す領域索引ツリー21は、領域併合部51による領域併合処理に伴い、図2における4つの空間領域(モートン符号値=48、52、56、60)が、1つの空間領域(モートン符号値=48)へと併合されている。この併合に伴い、領域索引ツリー21の併合されたリーフノードのリンク先となるオブジェクトノードも、併合された空間領域内のオブジェクトD、G、Fを示すオブジェクトノードへと、併せて更新される。
FIG. 6 is an explanatory diagram showing that the object A is deleted from the state of the area index tree 21 of FIG.
In FIG. 6A, by deleting the objects A (3, 4) to (4, 7), a set of four spatial regions in the vicinity where the object A was located (Morton code value = 48, 52). , 56, 60) each has a margin for the allowable amount (three) of the object.
Therefore, the region merging unit 51 merges the four space regions into one space region (Morton code value = 48, number of divisions = 2). Thereby, the number of nodes of the area index tree 21 can be reduced, and the capacity of the secondary storage device necessary for storing the area index tree can be suppressed.
The area index tree 21 shown in FIG. 6B has four spatial areas (Morton code values = 48, 52, 56, 60) in FIG. 2 as one spatial area in accordance with the area merging process by the area merging unit 51. (Morton code value = 48). Along with this merge, the object node that becomes the link destination of the merged leaf node in the area index tree 21 is also updated to the object node indicating the objects D, G, and F in the merged space area.

図7は、図4で示した、範囲指定された検索範囲内に存在するオブジェクトの検索処理を示すフローチャートである。このフローチャートは、オブジェクト検索部30によって実行される。   FIG. 7 is a flowchart showing a search process for objects existing in the search range designated by the range shown in FIG. This flowchart is executed by the object search unit 30.

S101において、検索初期設定部31は、入力装置94を介して、検索条件となる検索範囲の入力を受け付ける。検索範囲の形状は、円、矩形、多角形など任意である。例えば、「現在値を中心に半径500m以内に存在するガソリンスタンドを検索」が選択されたとき、以下の処理を行う。
・現在値を中心とした半径500mの円に外接する矩形を求め、その矩形の左下座標値をモートン符号値「M_min」に変換し、その矩形の右上座標値をモートン符号値「M_max」に変換する。
・モートン符号値「M_min」を、検索符号値Mの初期値にする。
In S <b> 101, the search initial setting unit 31 receives an input of a search range serving as a search condition via the input device 94. The shape of the search range is arbitrary such as a circle, a rectangle, or a polygon. For example, when “search for a gas station existing within a radius of 500 m around the current value” is selected, the following processing is performed.
・ A rectangle circumscribing a circle with a radius of 500m centered on the current value is obtained, the lower left coordinate value of the rectangle is converted to Morton code value “M_min”, and the upper right coordinate value of the rectangle is converted to Morton code value “M_max” To do.
The Morton code value “M_min” is set as the initial value of the search code value M.

S102において、オブジェクト検索部30は、検索符号値Mを起点とする矩形領域と少なくとも一部が交わる空間領域を、領域索引ツリー21から検索する(その詳細は、図8を参照して後記する)。
S103において、交差判定部32は、S102で検索された空間領域内のオブジェクトの形状(領域内オブジェクトテーブル22、オブジェクト詳細テーブル23から取得)と、S101で指定された検索範囲の形状とを比較することで、検索範囲内に少なくとも一部が交わるオブジェクトを検索する(その詳細は、図9を参照して後記する)。
In S102, the object search unit 30 searches the area index tree 21 for a spatial area at least partially intersecting the rectangular area starting from the search code value M (details will be described later with reference to FIG. 8). .
In S103, the intersection determination unit 32 compares the shape of the object in the space area searched in S102 (obtained from the object table 22 in the area and the object detail table 23) with the shape of the search range specified in S101. Thus, an object that intersects at least partially within the search range is searched (details will be described later with reference to FIG. 9).

S104において、検索起点設定部33は、S101で初期化されて、このS104で更新される検索符号値Mについて、S102で検索された空間領域を除外した後の検索範囲を示す検索符号値Mに更新する(その詳細は、図10を参照して後記する)。
S105において、オブジェクト検索部30は、S104で更新された検索符号値Mが、S101で入力されたモートン符号値「M_max」より大きいか否かを判定する。判定条件を満たすときには処理を終了し、判定条件を満たさないときにはS102へ戻る。
In S104, the search starting point setting unit 33 sets the search code value M that is initialized in S101 and updated in S104 to the search code value M indicating the search range after excluding the spatial region searched in S102. (The details will be described later with reference to FIG. 10).
In S105, the object search unit 30 determines whether or not the search code value M updated in S104 is larger than the Morton code value “M_max” input in S101. If the determination condition is satisfied, the process ends. If the determination condition is not satisfied, the process returns to S102.

図8は、オブジェクト検索部30が実行する、S102の処理の詳細を示すフローチャートである。本フローチャートでは、領域索引ツリーを用いて、検索符号値Mに対応した座標を含む空間領域を探す。このとき、検索符号値M以下で最大のモートン符号値をもつ空間領域を探すことになる。   FIG. 8 is a flowchart showing details of the process of S102 executed by the object search unit 30. In this flowchart, a spatial area including coordinates corresponding to the search code value M is searched using the area index tree. At this time, a spatial region having a maximum Morton code value equal to or less than the search code value M is searched.

S201において、領域索引ツリー21のルートノードを検索対象ノードNに設定する。
S202において、検索対象ノードNが非リーフノードであるか否かを判定する。判定条件を満たすときにはS203へ、判定条件を満たさないときにはS211へ、それぞれ進む。
In S201, the root node of the area index tree 21 is set as the search target node N.
In S202, it is determined whether the search target node N is a non-leaf node. When the determination condition is satisfied, the process proceeds to S203, and when the determination condition is not satisfied, the process proceeds to S211.

S203において、非リーフノードのポインタを1件取得する。このとき、非リーフノードのポインタは先頭から順に取得される。
S204において、ポインタの指すノードに対応した空間領域のモートン符号値の範囲を算出する。モートン符号値の範囲は、当該非リーフノードに含まれるキー値(モートン符号値、分割数)から算出できる。
S205において、検索符号値MがS204で算出したモートン符号値の範囲に含まれるか否かを判定する。S205は、検索符号値以下で最大のモートン符号値を探す処理になる。判定条件を満たすときにはS206へ、判定条件を満たさないときにはS203へ、それぞれ進む。
S206において、ポインタの指すノードを検索対象ノードNに設定し、S202に戻る。
In S203, one pointer of a non-leaf node is acquired. At this time, the pointers of the non-leaf nodes are acquired in order from the top.
In S204, the range of the Morton code value in the space area corresponding to the node pointed to by the pointer is calculated. The range of the Morton code value can be calculated from the key value (Morton code value, number of divisions) included in the non-leaf node.
In S205, it is determined whether or not the search code value M is included in the range of Morton code values calculated in S204. S205 is a process of searching for the maximum Morton code value that is equal to or less than the search code value. When the determination condition is satisfied, the process proceeds to S206, and when the determination condition is not satisfied, the process proceeds to S203.
In S206, the node pointed to by the pointer is set as the search target node N, and the process returns to S202.

S211において、リーフノードの要素を1件取得する。このとき、リーフノードの要素を先頭から順に取得する。
S212において、S211で取得した要素に対応する空間領域のモートン符号値の範囲を算出する。空間領域のモートン符号値の範囲は、当該リーフノードのキー値(モートン符号値、分割数)から算出できる。
S213において、検索符号値MがS212で算出したモートン符号値の範囲に含まれるか否かを判定する。判定条件を満たすときにはS214へ、判定条件を満たさないときにはS211へ、それぞれ進む。
S214において、当該リーフノードの要素を検索された空間領域として保持し、処理をS103に戻す。
In S211, one leaf node element is acquired. At this time, the leaf node elements are acquired in order from the top.
In S212, the range of the Morton code value of the spatial region corresponding to the element acquired in S211 is calculated. The range of Morton code values in the spatial domain can be calculated from the key value (Morton code value, number of divisions) of the leaf node.
In S213, it is determined whether or not the search code value M is included in the range of Morton code values calculated in S212. When the determination condition is satisfied, the process proceeds to S214, and when the determination condition is not satisfied, the process proceeds to S211.
In S214, the element of the leaf node is held as the searched space area, and the process returns to S103.

図9は、主に交差判定部32(S304は絶対座標値変換部34)が実行する、S103の処理の詳細を示すフローチャートである。   FIG. 9 is a flowchart showing details of the process of S103, which is mainly executed by the intersection determination unit 32 (S304 is the absolute coordinate value conversion unit 34).

S301において、S102で保持された空間領域の要素の指すオブジェクトノードを取得する。
S302において、オブジェクトノードの要素をすべて取得したか否かを判定する。判定条件を満たすときにはS104に処理を戻し、判定条件を満たさないときにはS303へ進む。
S303において、オブジェクトノードの要素を1件取得する。このとき、オブジェクトノードの要素を先頭から順に取得する。以下、取得したオブジェクトノードの要素を、「選択オブジェクト」と呼ぶ。
In S301, the object node pointed to by the element of the spatial area held in S102 is acquired.
In S302, it is determined whether all the elements of the object node have been acquired. When the determination condition is satisfied, the process returns to S104, and when the determination condition is not satisfied, the process proceeds to S303.
In S303, one object node element is acquired. At this time, the elements of the object node are acquired in order from the top. Hereinafter, the element of the acquired object node is referred to as “selected object”.

S303bにおいて、領域内オブジェクトテーブル22の「種別ID」を参照し、選択オブジェクトの種別が、検索条件の種別と一致するか否かを判定する。判定条件を満たすときにはS304へ、判定条件を満たさないときにはS302へ、それぞれ進む。
なお、このS303bの判定処理は、領域内オブジェクトテーブル22に種別IDが含まれている場合(表2参照)に実行されるが、領域内オブジェクトテーブル22に種別IDが含まれていない場合(表1参照)は、省略可能である。
In S303b, with reference to the “type ID” of the in-region object table 22, it is determined whether or not the type of the selected object matches the type of the search condition. When the determination condition is satisfied, the process proceeds to S304, and when the determination condition is not satisfied, the process proceeds to S302.
The determination process of S303b is executed when the type ID is included in the intra-region object table 22 (see Table 2), but when the type ID is not included in the intra-region object table 22 (Table). 1) can be omitted.

S304において、絶対座標値変換部34は、以下の手順により、選択オブジェクトの外接矩形の絶対座標値の変換を行う。
・領域内オブジェクトテーブル22のモートン符号値を、S102で求めた空間領域の左下座標値(a,b)に変換する。
・選択オブジェクトの領域内位置の左下座標値(x'_min,y'_min)に、空間領域の左下座標値(a,b)を加算して、選択オブジェクトの左下座標の絶対座標値(x_min,y_min)を求める(例えば、x_min=x'_min+a、y_min=y'_min+b)。
・選択オブジェクトの領域内位置の右上座標値(x'_max,y'_max)に、空間領域の左下座標値(a,b)を加算して、選択オブジェクトの右上座標の絶対座標値(x_max,y_max)を求める(例えば、x_max=x'_max+a、y_max=y'_max+b)。
In S304, the absolute coordinate value conversion unit 34 converts the absolute coordinate value of the circumscribed rectangle of the selected object according to the following procedure.
The Morton code value in the in-region object table 22 is converted into the lower left coordinate value (a, b) of the spatial region obtained in S102.
-The lower left coordinate value (a, b) of the spatial area is added to the lower left coordinate value (x'_min, y'_min) of the position in the area of the selected object, and the absolute coordinate value (x_min, y_min) is obtained (for example, x_min = x′_min + a, y_min = y′_min + b).
-The upper left coordinate value (a, b) of the spatial area is added to the upper right coordinate value (x'_max, y'_max) of the position in the area of the selected object, and the absolute coordinate value (x_max, y_max) is obtained (for example, x_max = x′_max + a, y_max = y′_max + b).

S305において、S304で求めた選択オブジェクトの外接矩形(x_min,y_min)〜(x_max,y_max)が、S102で求めた空間領域と交差するか否かを判定する。判定条件を満たすときにはS306へ、判定条件を満たさないときにはS302へ、それぞれ進む。
なお、S305の交差判定処理は、2つの矩形(第1矩形と第2矩形)の間に重複箇所が存在するか否かの判定処理であり、例えば、第1矩形と第2矩形との間の位置関係を示す判定式をあらかじめ用意し、その判定式に代入することにより、実現される。判定式の一例として、「(第1矩形の右端のx座標)<(第2矩形の左端のx座標)」なら、第1矩形と第2矩形とは重複しない旨の判定式が例示される。
In S305, it is determined whether or not the circumscribed rectangles (x_min, y_min) to (x_max, y_max) of the selected object obtained in S304 intersect the spatial region obtained in S102. When the determination condition is satisfied, the process proceeds to S306, and when the determination condition is not satisfied, the process proceeds to S302.
Note that the intersection determination process in S305 is a process for determining whether or not there is an overlapping portion between two rectangles (the first rectangle and the second rectangle), for example, between the first rectangle and the second rectangle. This is realized by preparing in advance a judgment formula indicating the positional relationship of and substituting it into the judgment formula. As an example of the determination formula, if “(the x coordinate of the right end of the first rectangle) <(the x coordinate of the left end of the second rectangle)”, the determination formula that the first rectangle and the second rectangle do not overlap is exemplified. .

S306において、S304で求めた選択オブジェクトの実形状をオブジェクト詳細テーブル23から読み取り、S101で入力された空間領域の実形状と交差するか否かを判定する。判定条件を満たすときにはS307へ、判定条件を満たさないときにはS302へ、それぞれ進む。
なお、S306の交差判定処理は、オブジェクト詳細テーブル23の「実形状」データをもとに行われる詳細な交差判定である。この交差判定処理は、例えば、選択オブジェクトの実形状上の絶対位置を順に網羅するように走査し、選択オブジェクトの各走査点のうち、空間領域内に存在する選択オブジェクトの走査点が1つ以上発見されたときには、交差すると判定する方法がある。
ここで、S306の交差判定処理は、実形状という大きいデータ量を対象とする判定処理であるので、計算量が大きくなってしまう。そこで、S306の交差判定処理を実行するか否かをオプションとしてユーザに選択させ、ユーザが選択しないときには、S306の交差判定処理を省略し、S305を満たすときにはS307に進むようにしてもよい。
In S306, the actual shape of the selected object obtained in S304 is read from the object detail table 23, and it is determined whether or not it intersects with the actual shape of the space area input in S101. When the determination condition is satisfied, the process proceeds to S307, and when the determination condition is not satisfied, the process proceeds to S302.
Note that the intersection determination process of S306 is a detailed intersection determination performed based on the “real shape” data in the object detail table 23. In this intersection determination process, for example, scanning is performed so as to cover the absolute position of the actual shape of the selected object in order, and one or more scanning points of the selected object existing in the spatial region among the scanning points of the selected object. There is a method of determining that it intersects when it is discovered.
Here, since the intersection determination process of S306 is a determination process for a large data amount as an actual shape, the amount of calculation becomes large. Therefore, the user may optionally select whether or not to execute the intersection determination process of S306. If the user does not select, the intersection determination process of S306 may be omitted, and if S305 is satisfied, the process may proceed to S307.

S307において、空間領域と交差すると判断された選択オブジェクトを検索結果として出力装置95を介して出力し、処理をS302に戻す。   In S307, the selected object determined to intersect with the space area is output as a search result via the output device 95, and the process returns to S302.

図10は、検索起点設定部33が実行する、S104の検索符号値Mの更新処理の詳細を示すフローチャートである。本フローチャートでは、検索範囲の矩形が含むモートン符号値の中で、S102で検索された空間領域を除外した検索範囲のうちの最小のモートン符号値を求める。   FIG. 10 is a flowchart showing details of the search code value M update processing of S104 executed by the search start point setting unit 33. In this flowchart, among the Morton code values included in the rectangle of the search range, the smallest Morton code value in the search range excluding the space area searched in S102 is obtained.

S401において、検索符号値Mを座標値(a,b)に変換する。
S402において、S102で検索された空間領域の右上座標(x_max,y_max)に設定する。
S403において、S102で検索された空間領域の右辺よりx軸方向に1だけ大きいy軸に平行な線が検索範囲の矩形に交差するか否かを判定する。判定条件を満たすときにはS404へ、判定条件を満たさないときにはS405へ、それぞれ進む。
S404において、S102で検索された空間領域の近接点(x_max+1,b)のモートン符号値を、検索符号値リストに挿入する。なお、検索符号値リストは、例えば、モートン符号値を優先度とした優先度付きキューとして実装される。
In S401, the search code value M is converted into a coordinate value (a, b).
In S402, the upper right coordinates (x_max, y_max) of the space area searched in S102 are set.
In S403, it is determined whether or not a line parallel to the y-axis, which is larger by 1 in the x-axis direction than the right side of the space area searched in S102, intersects the search range rectangle. When the determination condition is satisfied, the process proceeds to S404, and when the determination condition is not satisfied, the process proceeds to S405.
In S404, the Morton code value of the proximity point (x_max + 1, b) of the spatial region searched in S102 is inserted into the search code value list. The search code value list is implemented, for example, as a priority queue with Morton code values as priorities.

S405において、S102で検索された空間領域の上辺よりy軸方向に1だけ大きいx軸に平行な線が検索範囲の矩形に交差するか否かを判定する。判定条件を満たすときにはS406へ、判定条件を満たさないときにはS407へ、それぞれ進む。
S406において、S102で検索された空間領域の近接点(a,y_max+1)のモートン符号値を、検索符号値リストに挿入する。
S407において、S404およびS406で挿入された検索符号値リストのモートン符号値のうちの最小のモートン符号値を、検索符号値Mに設定する。
In S405, it is determined whether or not a line parallel to the x-axis that is larger by 1 in the y-axis direction than the upper side of the spatial area searched in S102 intersects the search range rectangle. When the determination condition is satisfied, the process proceeds to S406, and when the determination condition is not satisfied, the process proceeds to S407.
In S406, the Morton code value of the proximity point (a, y_max + 1) of the spatial region searched in S102 is inserted into the search code value list.
In S407, the minimum Morton code value of the Morton code values in the search code value list inserted in S404 and S406 is set as the search code value M.

図11は、オブジェクト登録部40が実行する、オブジェクトを空間データに登録する処理を示すフローチャートである。   FIG. 11 is a flowchart showing processing for registering an object in the spatial data, which is executed by the object registration unit 40.

S501において、オブジェクト登録部40は、登録対象のオブジェクトの詳細情報を取得する。
詳細情報とは、例えば、オブジェクト詳細テーブル23に登録される情報(オブジェクトの地図上の位置、種別ID、実形状)である。さらに、詳細情報として、カーナビゲーションの施設情報として提供される任意の情報(住所、電話番号など)を付加してもよい。
In step S <b> 501, the object registration unit 40 acquires detailed information on an object to be registered.
The detailed information is, for example, information (position of object on map, type ID, actual shape) registered in object detail table 23. Furthermore, arbitrary information (address, telephone number, etc.) provided as facility information for car navigation may be added as detailed information.

S502において、オブジェクト登録部40は、S501で入力されたオブジェクトの詳細情報を、空間データ(オブジェクト詳細テーブル23)に登録する。なお、登録対象のオブジェクトが既にオブジェクト詳細テーブル23に登録済みであるときには、2重登録を避けるため、S502を省略してもよいし、S501で入力された詳細情報に変更があれば、登録済みのオブジェクト詳細テーブル23のレコードを、変更後の値に書き換えてもよい。   In S502, the object registration unit 40 registers the detailed information of the object input in S501 in the spatial data (object detail table 23). If the object to be registered has already been registered in the object detail table 23, S502 may be omitted to avoid double registration, or if the detailed information input in S501 has changed, it has been registered. The record of the object detail table 23 may be rewritten with the changed value.

S503において、オブジェクト登録部40は、S502でのオブジェクト詳細テーブル23への登録データをもとに、関連する他の空間データ(領域索引ツリー21、領域内オブジェクトテーブル22)への登録データを作成する。
例えば、オブジェクト登録部40は、オブジェクト詳細テーブル23に新たに登録されたオブジェクトを、領域内オブジェクトテーブル22に登録されている各空間領域に沿って分割し、分割されたオブジェクトの地図上の絶対位置を、各空間領域の代表点からの相対位置に変換する。
各空間領域に沿って分割する処理は、例えば、オブジェクトAがオブジェクト詳細テーブル23では1レコード分存在するが、領域内オブジェクトテーブル22では3つの空間領域に分割されている。
In S503, the object registration unit 40 creates registration data in other related spatial data (region index tree 21, in-region object table 22) based on the registration data in the object detail table 23 in S502. .
For example, the object registration unit 40 divides an object newly registered in the object detail table 23 along each spatial region registered in the in-region object table 22, and the absolute position of the divided object on the map Is converted into a relative position from the representative point of each spatial region.
In the process of dividing along each spatial area, for example, the object A exists for one record in the object detail table 23, but is divided into three spatial areas in the in-area object table 22.

S504において、オブジェクト登録部40は、作成した空間データ(領域索引ツリー21、領域内オブジェクトテーブル22)への登録データを、各空間データへと登録する(詳細は、図12)。   In step S504, the object registration unit 40 registers the registration data to the created spatial data (region index tree 21, in-region object table 22) into each spatial data (details are shown in FIG. 12).

図12(a)は、オブジェクト登録部40が実行する、空間データ(領域索引ツリー21、領域内オブジェクトテーブル22)への登録処理(S504)の詳細を示すフローチャートである。   FIG. 12A is a flowchart showing details of the registration process (S504) to the spatial data (region index tree 21, in-region object table 22) executed by the object registration unit 40.

S601において、オブジェクト登録部40は、S503で作成された登録対象のオブジェクトの外接矩形を検索範囲としたオブジェクト検索部30の処理(図7参照)を呼び出すことにより、登録対象の外接矩形のオブジェクトと交差する空間領域(交差領域)を求め、交差領域リストに挿入する。
S602において、オブジェクト登録部40は、交差領域リストの要素をすべて取得したか否かを判定する。判定条件を満たすときには本処理を終了し、判定条件を満たさないときにはS603へ進む。
In S601, the object registration unit 40 calls the process of the object search unit 30 using the circumscribed rectangle of the registration target object created in S503 (refer to FIG. 7) as a search target circumscribed rectangular object. The intersecting space area (intersection area) is obtained and inserted into the intersection area list.
In step S602, the object registration unit 40 determines whether all the elements of the intersection area list have been acquired. When the determination condition is satisfied, the present process is terminated, and when the determination condition is not satisfied, the process proceeds to S603.

S603において、オブジェクト登録部40は、交差領域リストの先頭から順に、空間領域を1件取り出す。以下、取り出した空間領域を、選択領域と呼ぶ。
S604において、オブジェクト登録部40は、領域索引ツリー21の選択領域に対応するリーフノードからリンクする、登録済みのオブジェクトノードを取得する。
S605において、登録済みのオブジェクトの数と、今回の登録対象のオブジェクトの数との合計が、各空間領域のオブジェクトの容量(例えば、図2の場合、最大3つ)を超過するか否かを判定する。判定条件を満たすときにはS606へ、判定条件を満たさないときにはS607へ、それぞれ進む。
In step S603, the object registration unit 40 extracts one space area in order from the top of the intersection area list. Hereinafter, the extracted space area is referred to as a selection area.
In step S <b> 604, the object registration unit 40 acquires a registered object node linked from the leaf node corresponding to the selected region of the region index tree 21.
In S605, it is determined whether or not the sum of the number of registered objects and the number of objects to be registered this time exceeds the capacity of objects in each space area (for example, a maximum of three in the case of FIG. 2). judge. When the determination condition is satisfied, the process proceeds to S606, and when the determination condition is not satisfied, the process proceeds to S607.

S606において、領域分割部42は、1つの選択領域を4つの空間領域へと分割する。具体的には、まず、分割対象の選択領域を等面積に4分割した場合の4つの空間領域について、それぞれの代表点のモートン符号値を算出する。そして、領域索引ツリー21のリーフノードに登録されている選択領域の空間領域情報を削除するとともに、そのリーフノードにS611で算出した4つの空間領域の空間領域情報を追加する。
ここで、領域索引ツリー21のリーフノードの許容量(図2の場合、空間領域情報は最大3つまで)を超過したときには、図5に示すように、その超過したリーフノードを複数のリーフノードに分割することで、リーフノードの許容量を遵守する。このS606の処理により、空間領域の数が増えたことで、各空間領域のオブジェクトの容量に余裕が生まれ、S605の判定条件を満たしやすくなる。そして、処理をS503に戻す。
In S606, the region dividing unit 42 divides one selected region into four spatial regions. Specifically, first, Morton code values of the representative points are calculated for four spatial regions when the selection region to be divided is divided into four equal areas. Then, the spatial area information of the selected area registered in the leaf node of the area index tree 21 is deleted, and the spatial area information of the four spatial areas calculated in S611 is added to the leaf node.
Here, when the allowable amount of leaf nodes of the area index tree 21 (up to three space area information in the case of FIG. 2) is exceeded, as shown in FIG. By complying with the above, the allowable amount of leaf nodes is observed. As a result of the processing in S606, the number of space areas has increased, so that there is room in the capacity of objects in each space area, and the determination condition in S605 can be easily satisfied. Then, the process returns to S503.

S607において、相対座標値変換部41は、登録対象のオブジェクトノードが示すオブジェクトの外接矩形の位置を、絶対座標値から相対座標値に変換する(図12(b)参照)。
S608において、オブジェクト登録部40は、登録対象のオブジェクトを選択領域に登録する。具体的には、領域索引ツリー21の選択領域のリーフノードからリンクされるオブジェクトノードに登録対象のオブジェクトを追加するとともに、領域内オブジェクトテーブル22の選択領域を示すレコードに、登録対象のオブジェクトを追加する。
In S607, the relative coordinate value conversion unit 41 converts the position of the circumscribed rectangle of the object indicated by the registration target object node from the absolute coordinate value to the relative coordinate value (see FIG. 12B).
In step S608, the object registration unit 40 registers the object to be registered in the selection area. Specifically, the object to be registered is added to the object node linked from the leaf node of the selected area of the area index tree 21 and the object to be registered is added to the record indicating the selected area of the in-area object table 22 To do.

図12(b)は、相対座標値変換部41が実行する、座標変換処理(S607)の詳細を示すフローチャートである。   FIG. 12B is a flowchart showing details of the coordinate conversion processing (S607) executed by the relative coordinate value conversion unit 41.

S611において、オブジェクトの外接矩形の絶対座標値である、左下座標値を(x_min,y_min)、右下座標値を(x_max,y_max)に設定する。
S612において、S611のオブジェクトが含まれる空間領域の代表点のモートン符号値および分割数を領域内オブジェクトテーブル22から読み取り、その空間領域の左下座標値(x'_min,y'_min)と右上座標値(x'_max,y'_max)とを算出する。
In S611, the lower left coordinate value and the lower right coordinate value (x_max, y_max), which are absolute coordinate values of the circumscribed rectangle of the object, are set.
In S612, the Morton code value and the number of divisions of the representative point of the space area including the object of S611 are read from the in-area object table 22, and the lower left coordinate value (x'_min, y'_min) and the upper right coordinate value of the space area are read. (X'_max, y'_max) is calculated.

S613において、S611の左下座標値(x_min,y_min)からS612の左下座標値(x'_min,y'_min)を減算することで、オブジェクトの左下座標値の相対座標値(x''_min,y''_min)を計算する。例えば、「x''_min=x_min−x'_min」である。   In S613, by subtracting the lower left coordinate value (x'_min, y'_min) in S612 from the lower left coordinate value (x_min, y_min) in S611, the relative coordinate value (x '' _ min, y of the lower left coordinate value of the object). '' _min) is calculated. For example, “x ″ _min = x_min−x′_min”.

S614において、S611の右上座標値(x_max,y_max)からS612の左下座標値(x'_min,y'_min)を減算することで、オブジェクトの右上座標値の相対座標値(x''_max,y''_max)を計算する。例えば、「x''_max=x_max−x'_min」である。   In S614, by subtracting the lower left coordinate value (x'_min, y'_min) in S612 from the upper right coordinate value (x_max, y_max) in S611, the relative coordinate value (x '' _ max, y of the object's upper right coordinate value). '' _max). For example, “x ″ _max = x_max−x′_min”.

図13(a)は、オブジェクト削除部50が実行する、オブジェクトの削除のフローチャートを示す。   FIG. 13A shows a flowchart of object deletion executed by the object deletion unit 50.

S701において、オブジェクト削除部50は、削除対象のオブジェクトの情報を取得する。S701の入力データは、登録対象のオブジェクトのIDが少なくとも入力されればよい。   In step S <b> 701, the object deletion unit 50 acquires information on an object to be deleted. The input data in S701 may be at least the ID of the object to be registered.

S702において、オブジェクト削除部50は、S701で入力された削除対象のオブジェクトを、オブジェクト詳細テーブル23から削除する。具体的には、削除対象のオブジェクトのIDを検索キーとして、オブジェクト詳細テーブル23を検索し、該当するレコードをオブジェクト詳細テーブル23(表3参照)から削除する。   In step S <b> 702, the object deletion unit 50 deletes the deletion target object input in step S <b> 701 from the object detail table 23. Specifically, the object detail table 23 is searched using the ID of the object to be deleted as a search key, and the corresponding record is deleted from the object detail table 23 (see Table 3).

S703において、オブジェクト削除部50は、空間データ(領域索引ツリー21、領域内オブジェクトテーブル22)から、図6に示すように、削除対象のオブジェクトを削除する(図13(b)参照)。   In S703, the object deletion unit 50 deletes the object to be deleted from the spatial data (region index tree 21, in-region object table 22) as shown in FIG. 6 (see FIG. 13B).

図13(b)は、オブジェクト削除部50が実行する、空間データ(領域索引ツリー21、領域内オブジェクトテーブル22)からの削除処理(S703)の詳細を示すフローチャートである。   FIG. 13B is a flowchart showing details of the deletion processing (S703) from the spatial data (region index tree 21, in-region object table 22) executed by the object deletion unit 50.

S711において、削除対象のオブジェクトの外接矩形に交差する空間領域の情報を交差領域リストに挿入する。なお、挿入する空間領域の情報は、領域内オブジェクトテーブル22(表1など参照)から削除対象のオブジェクトのIDをキーとして検索し、該当するレコードとして取得した情報である。
S712において、交差領域リストの要素(空間領域)をすべて取得したか否かを判定する。判定条件を満たすときには本フローチャートを終了し、判定条件を満たさないときにはS713へ進む。
S713において、交差領域リストから要素を1件取得し、選択領域とする。この選択領域に交差するオブジェクトは、領域内オブジェクトテーブル22の選択領域に対応するオブジェクトの列から取得することができる。
In step S711, information on a spatial area that intersects the circumscribed rectangle of the object to be deleted is inserted into the intersection area list. The information of the space area to be inserted is information obtained as a corresponding record by searching the intra-area object table 22 (see Table 1 or the like) using the ID of the object to be deleted as a key.
In S712, it is determined whether or not all elements (spatial regions) in the intersection region list have been acquired. When the determination condition is satisfied, this flowchart is ended, and when the determination condition is not satisfied, the process proceeds to S713.
In S713, one element is acquired from the intersecting area list and set as a selected area. An object that intersects with this selection area can be acquired from the column of objects corresponding to the selection area of the in-area object table 22.

S714において、領域内オブジェクトテーブル22内の選択領域に対応する削除対象のオブジェクトを、領域内オブジェクトテーブル22から削除する。さらに、領域索引ツリー21の選択領域のリーフノードからリンクされるオブジェクトノードから、削除対象のオブジェクトを削除する。この削除処理により、選択領域内のオブジェクトの容量に1つ分余裕ができる。   In step S <b> 714, the object to be deleted corresponding to the selected area in the in-area object table 22 is deleted from the in-area object table 22. Further, the object to be deleted is deleted from the object nodes linked from the leaf nodes in the selected area of the area index tree 21. By this deletion process, there is a margin for the capacity of the object in the selected area.

S715において、選択領域を含む分割数が等しい、隣接する4つ組の空間領域(例えば、図6ではモートン符号値=48、52、56、60の4つ組の空間領域)に対応づけられているオブジェクト数の総和が容量数(例えば、3つ)以下に収まるか否かを判定する。判定条件を満たすときにはS716へ、判定条件を満たさないときにはS712へ、それぞれ進む。   In S715, the number of divisions including the selected region is equal to the adjacent four sets of spatial regions (for example, the four sets of Morton code values = 48, 52, 56, and 60 in FIG. 6). It is determined whether or not the total number of existing objects falls below the capacity number (for example, three). When the determination condition is satisfied, the process proceeds to S716, and when the determination condition is not satisfied, the process proceeds to S712.

S716において、領域併合部51は、S715で判定した4つ組の空間領域を1つの空間領域へと併合する。具体的には、以下の処理を行う。
・4つ組の各空間領域(例えば、図6ではモートン符号値=48、52、56、60の4つ組の空間領域)からリンクされるオブジェクトノードを、1つのオブジェクトノードに併合するとともに、その併合前の各オブジェクトノードに含まれる各オブジェクトを(図6では、オブジェクトD,F,G)、併合したオブジェクトノードにまとめる。
・4つ組の空間領域のうち、左下以外に存在する3つの空間領域情報(図6ではモートン符号値=52、56、60の空間領域)を、領域索引ツリー21のリーフノードから削除する。その結果、空間領域情報をもたない(空の)リーフノードができたときには、そのリーフノードを削除するように、ツリー構造を変更する。
・4つ組の空間領域のうち、左下に存在する空間領域情報(図6ではモートン符号値=48の空間領域)を更新する。具体的には、空間領域情報からリンクされるオブジェクトノードを併合したオブジェクトノードとし、空間領域情報における分割数から1を減算する(図6では、分割数(空間領域情報の括弧内の数字)を「3」から「2」に減算している)。
In S716, the region merging unit 51 merges the four sets of spatial regions determined in S715 into one spatial region. Specifically, the following processing is performed.
Merging object nodes linked from each of the four spatial regions (for example, the four spatial regions of Morton code values = 48, 52, 56, 60 in FIG. 6) into one object node; The objects included in the object nodes before the merge (in FIG. 6, objects D, F, and G) are grouped into merged object nodes.
Of the four sets of spatial regions, information on the three spatial regions other than the lower left (in FIG. 6, the spatial regions of Morton code values = 52, 56, 60) is deleted from the leaf nodes of the region index tree 21. As a result, when a (empty) leaf node having no space area information is created, the tree structure is changed so as to delete the leaf node.
Update the space area information (lower area of Morton code value = 48 in FIG. 6) that exists in the lower left of the four space areas. Specifically, the object node linked from the space area information is merged into an object node, and 1 is subtracted from the number of divisions in the space area information (in FIG. 6, the number of divisions (the number in parentheses of the space area information) is “3” is subtracted from “2”).

以上説明した本実施形態によれば、オブジェクト登録部40がオブジェクトの形状および位置を多次元空間上に配置し、オブジェクト削除部50が配置されたオブジェクトを削除し、オブジェクト検索部30が入力された検索条件に該当するオブジェクトを検索する。そして、空間データ管理装置1は、オブジェクトが配置される空間データを、空間領域として領域索引ツリー21というバランス木のデータ構造で管理する。領域索引ツリー21のリーフノードでは、1つの空間領域に対し1件の空間領域の情報が格納され、オブジェクトノードでは、オブジェクトの外接矩形がそのオブジェクトに重なる空間領域の代表点からの相対座標で表現されている。
これにより、領域索引ツリーの21の格納に必要なディスク容量を削減すると共に、オブジェクトの検索、登録、削除の各処理を高速で実現できる。よって、領域索引ツリー21の効果に伴う高速性かつ小容量性は、ハードウェア資源の使用制約が厳しい組込ソフトウェアにおいて、特に効果を発揮する。
According to the embodiment described above, the object registration unit 40 arranges the shape and position of the object in the multidimensional space, the object deletion unit 50 deletes the object, and the object search unit 30 is input. Search for objects that meet the search criteria. Then, the spatial data management device 1 manages the spatial data in which the objects are arranged with a balance tree data structure called a region index tree 21 as a spatial region. In the leaf node of the region index tree 21, information of one spatial region is stored for one spatial region, and in the object node, the circumscribed rectangle of the object is expressed by relative coordinates from the representative point of the spatial region that overlaps the object. Has been.
As a result, the disk capacity required for storing the area index tree 21 can be reduced, and the object search, registration, and deletion processes can be realized at high speed. Therefore, the high speed and small capacity associated with the effect of the area index tree 21 are particularly effective in embedded software in which use restrictions on hardware resources are severe.

1 空間データ管理装置
21 領域索引ツリー
22 領域内オブジェクトテーブル
23 オブジェクト詳細テーブル
30 オブジェクト検索部
31 検索初期設定部
32 交差判定部
33 検索起点設定部
34 絶対座標値変換部
40 オブジェクト登録部
41 相対座標値変換部
42 領域分割部
50 オブジェクト削除部
51 領域併合部
60 データ切替部
91 中央処理装置
92 主記憶装置
93 二次記憶装置
94 入力装置
95 出力装置
A,B,C,D,E,F,G,H,I オブジェクト
DESCRIPTION OF SYMBOLS 1 Spatial data management apparatus 21 Area | region index tree 22 Area | region object table 23 Object detail table 30 Object search part 31 Search initial setting part 32 Intersection determination part 33 Search origin setting part 34 Absolute coordinate value conversion part 40 Object registration part 41 Relative coordinate value Conversion unit 42 Area division unit 50 Object deletion unit 51 Area merging unit 60 Data switching unit 91 Central processing unit 92 Main storage unit 93 Secondary storage unit 94 Input unit 95 Output unit A, B, C, D, E, F, G , H, I objects

Claims (10)

多次元空間上にオブジェクトが配置される空間データを管理する空間データ管理装置であって、
前記空間データ管理装置は、空間データを格納する記憶部と、指定された検索範囲内に存在するオブジェクトを前記空間データから検索するオブジェクト検索部と、を有し、
前記記憶部には、各ノードからの子ノードの数を制限するバランス木として前記空間データを格納する領域索引ツリーが記憶され、
前記記憶された領域索引ツリーの各ノードには、前記空間データを1回以上等分割した空間領域の情報が所定数以下だけ格納され、その空間領域の情報は、空間領域の多次元空間上の位置を一意に示すスカラ値に写像した結果であるキー値が含まれ、
前記領域索引ツリーの子ノードを持つ非リーフノードには、その各子ノードのとりうるキー値の範囲に応じて、各子ノードへのリンクが対応づけられており、前記領域索引ツリーの子ノードを持たないリーフノードには、空間領域の情報から、その空間領域に外接矩形が交わるオブジェクトへのリンクが対応づけられており、
前記オブジェクト検索部は、
入力装置を介して前記検索範囲が指定されると、
前記領域索引ツリーのルートノードから順に、前記検索範囲の代表点をスカラ値に写像した検索符号値と、前記領域索引ツリーの各ノードの空間領域のキー値とを照合することにより、非リーフノード、リーフノード、オブジェクトへのリンクと辿ることで、前記検索範囲の代表点が含まれる空間領域と、その空間領域からリンクするオブジェクトとを抽出する手順について、一巡ごとに前記検索範囲から辿った空間領域を除外した領域の代表点を新たな検索符号値として更新することで繰り返し、
前記検索範囲から辿った空間領域を除外した領域が無くなると、前記領域索引ツリーの各ノードを辿る処理により抽出される各オブジェクトについて、オブジェクトの外接矩形と前記検索範囲とを照合し、少なくとも一部が交わるオブジェクトを、前記検索範囲に交わるオブジェクトとして出力することを特徴とする
空間データ管理装置。
A spatial data management device for managing spatial data in which objects are arranged in a multidimensional space,
The spatial data management device includes a storage unit that stores spatial data, and an object search unit that searches the spatial data for objects that exist within a designated search range,
The storage unit stores a region index tree that stores the spatial data as a balance tree that limits the number of child nodes from each node;
Each node of the stored region index tree stores a predetermined number or less of spatial region information obtained by dividing the spatial data at least once, and the spatial region information is stored on the multidimensional space of the spatial region. Contains a key value that is the result of mapping to a scalar value that uniquely identifies the position,
A link to each child node is associated with a non-leaf node having a child node of the region index tree according to a range of key values that each child node can take, and the child node of the region index tree A leaf node that does not have a link from the spatial region information to an object where a circumscribed rectangle intersects the spatial region,
The object search unit
When the search range is specified through the input device,
In order from the root node of the region index tree, a search code value obtained by mapping a representative point of the search range to a scalar value and a key value of a spatial region of each node of the region index tree are collated, whereby a non-leaf node A space traced from the search range for each round with respect to a procedure for extracting a spatial region including a representative point of the search range and an object linked from the spatial region by tracing the link to the leaf node and the object Repeat by updating the representative points of the area excluding the area as a new search code value,
When there is no region excluding the spatial region traced from the search range, for each object extracted by the process of tracing each node of the region index tree, the circumscribed rectangle of the object is collated with the search range, and at least a part An object that intersects is output as an object that intersects the search range.
前記空間データ管理装置は、前記領域索引ツリーのキー値および前記検索範囲の代表点を示す検索符号値をそれぞれ示す空間データ上のスカラ値として、モートン符号値を計算することを特徴とする
請求項1に記載の空間データ管理装置。
The spatial data management device calculates a Morton code value as a scalar value on spatial data indicating a key value of the region index tree and a search code value indicating a representative point of the search range, respectively. The spatial data management device according to 1.
前記空間データ管理装置は、前記領域索引ツリーのキー値および前記検索範囲の代表点を示す検索符号値をそれぞれ示す空間データ上のスカラ値を格納するためのメモリ容量として、空間領域の多次元空間上の位置を一意に示すスカラ値のとりうる値を表現するための最小限の容量を決定することを特徴とする
請求項1または請求項2に記載の空間データ管理装置。
The spatial data management device uses a multidimensional space of a spatial region as a memory capacity for storing a scalar value on spatial data indicating a key value of the region index tree and a search code value indicating a representative point of the search range. The spatial data management device according to claim 1, wherein a minimum capacity for expressing a possible value of a scalar value that uniquely indicates an upper position is determined.
前記オブジェクト検索部は、さらに、オブジェクトの外接矩形と前記検索範囲とで少なくとも一部が交わるオブジェクトについて、前記記憶部に格納されているオブジェクトの実形状と、入力されている前記検索範囲の実形状とを照合し、少なくとも一部が交わるオブジェクトを、前記検索範囲に交わるオブジェクトとして出力することを特徴とする
請求項1ないし請求項3のいずれか1項に記載の空間データ管理装置。
The object search unit further includes an actual shape of the object stored in the storage unit and an actual shape of the input search range for an object at least partially intersecting the circumscribed rectangle of the object and the search range The spatial data management device according to any one of claims 1 to 3, wherein an object that intersects at least a part is output as an object that intersects the search range.
空間データを格納する前記記憶部には、前記領域索引ツリーからリンクされる各オブジェクトについて、そのオブジェクトの種別を示す種別IDが対応づけられており、
前記オブジェクト検索部は、検索条件として前記検索範囲および種別IDが指定されると、前記領域索引ツリーから辿ることで抽出されるオブジェクトの内、検索条件の種別IDと一致するオブジェクトを選択して、出力することを特徴とする
請求項1ないし請求項4のいずれか1項に記載の空間データ管理装置。
For each object linked from the region index tree, a type ID indicating the type of the object is associated with the storage unit that stores the spatial data,
When the search range and type ID are specified as a search condition, the object search unit selects an object that matches the type ID of the search condition from the objects extracted by tracing from the region index tree, The spatial data management device according to claim 1, wherein the spatial data management device outputs the spatial data.
空間データを格納する前記記憶部には、複数の空間領域に対応する複数の前記領域索引ツリーが記憶されており、
前記オブジェクト検索部は、検索条件として前記検索範囲が指定されると、その前記検索範囲が示す空間データ上の位置情報をもとに、複数の前記領域索引ツリーから1つの前記領域索引ツリーを選択することを特徴とする
請求項1ないし請求項5のいずれか1項に記載の空間データ管理装置。
The storage unit for storing spatial data stores a plurality of the region index trees corresponding to a plurality of spatial regions,
When the search range is specified as a search condition, the object search unit selects one region index tree from a plurality of region index trees based on position information on spatial data indicated by the search range The spatial data management device according to claim 1, wherein the spatial data management device is a spatial data management device.
前記空間データ管理装置は、さらに、前記領域索引ツリーにオブジェクトを登録するオブジェクト登録部を有し、
前記オブジェクト登録部は、前記入力装置を介して登録対象のオブジェクトが指定されると、
登録対象のオブジェクトの位置情報を基に、登録対象のオブジェクトが交わる前記領域索引ツリーの空間領域を1つ以上特定し、その特定した空間領域の情報を格納する各ノードから、登録対象のオブジェクトへのリンクを対応づけ、
1つの空間領域からリンクされるオブジェクトが所定数を超えたときには、その空間領域を等分割することで、複数の空間領域へと領域分割して前記領域索引ツリーを更新することを特徴とする
請求項1ないし請求項5のいずれか1項に記載の空間データ管理装置。
The spatial data management device further includes an object registration unit for registering an object in the region index tree,
When the object to be registered is designated via the input device, the object registration unit,
Based on the position information of the registration target object, one or more spatial regions of the region index tree where the registration target object intersects are specified, and from each node storing the specified spatial region information to the registration target object Link
When the number of objects linked from one spatial region exceeds a predetermined number, the spatial region is equally divided to divide the region into a plurality of spatial regions and update the region index tree. The spatial data management device according to any one of claims 1 to 5.
前記空間データ管理装置は、さらに、前記領域索引ツリーに登録されたオブジェクトを削除するオブジェクト削除部を有し、
前記オブジェクト削除部は、
前記入力装置を介して削除対象のオブジェクトが指定されると、前記領域索引ツリーの各ノードからリンクされているオブジェクトのうち、削除対象のオブジェクトを削除し、
削除したオブジェクトのリンク元である前記領域索引ツリーの各ノードについて、隣接する等分割された複数の領域からそれぞれリンクされるオブジェクトが所定数を下回ったときには、それらの空間領域を1つの空間領域へと領域統合して前記領域索引ツリーを更新することを特徴とする
請求項1ないし請求項6のいずれか1項に記載の空間データ管理装置。
The spatial data management device further includes an object deletion unit that deletes an object registered in the region index tree,
The object deletion unit
When an object to be deleted is specified via the input device, the object to be deleted is deleted from the objects linked from each node of the region index tree,
For each node of the area index tree that is the link source of the deleted object, when the number of objects linked from a plurality of adjacent equally divided areas falls below a predetermined number, those spatial areas are converted into one spatial area. The spatial data management device according to any one of claims 1 to 6, wherein the region index tree is updated by performing region integration.
多次元空間上にオブジェクトが配置される空間データを管理する空間データ管理装置による空間データ管理方法であって、
前記空間データ管理装置は、空間データを格納する記憶部と、指定された検索範囲内に存在するオブジェクトを前記空間データから検索するオブジェクト検索部と、を有し、
前記記憶部には、各ノードからの子ノードの数を制限するバランス木として前記空間データを格納する領域索引ツリーが記憶され、
前記記憶された領域索引ツリーの各ノードには、前記空間データを1回以上等分割した空間領域の情報が所定数以下だけ格納され、その空間領域の情報は、空間領域の多次元空間上の位置を一意に示すスカラ値に写像した結果であるキー値が含まれ、
前記領域索引ツリーの子ノードを持つ非リーフノードには、その各子ノードのとりうるキー値の範囲に応じて、各子ノードへのリンクが対応づけられており、前記領域索引ツリーの子ノードを持たないリーフノードには、空間領域の情報から、その空間領域に外接矩形が交わるオブジェクトへのリンクが対応づけられており、
前記オブジェクト検索部は、
入力装置を介して前記検索範囲が指定されると、
前記領域索引ツリーのルートノードから順に、前記検索範囲の代表点をスカラ値に写像した検索符号値と、前記領域索引ツリーの各ノードの空間領域のキー値とを照合することにより、非リーフノード、リーフノード、オブジェクトへのリンクと辿ることで、前記検索範囲の代表点が含まれる空間領域と、その空間領域からリンクするオブジェクトとを抽出する手順について、一巡ごとに前記検索範囲から辿った空間領域を除外した領域の代表点を新たな検索符号値として更新することで繰り返し、
前記検索範囲から辿った空間領域を除外した領域が無くなると、前記領域索引ツリーの各ノードを辿る処理により抽出される各オブジェクトについて、オブジェクトの外接矩形と前記検索範囲とを照合し、少なくとも一部が交わるオブジェクトを、前記検索範囲に交わるオブジェクトとして出力することを特徴とする
空間データ管理方法。
A spatial data management method by a spatial data management device that manages spatial data in which objects are arranged in a multidimensional space,
The spatial data management device includes a storage unit that stores spatial data, and an object search unit that searches the spatial data for objects that exist within a designated search range,
The storage unit stores a region index tree that stores the spatial data as a balance tree that limits the number of child nodes from each node;
Each node of the stored region index tree stores a predetermined number or less of spatial region information obtained by dividing the spatial data at least once, and the spatial region information is stored on the multidimensional space of the spatial region. Contains a key value that is the result of mapping to a scalar value that uniquely identifies the position,
A link to each child node is associated with a non-leaf node having a child node of the region index tree according to a range of key values that each child node can take, and the child node of the region index tree A leaf node that does not have a link from the spatial region information to an object where a circumscribed rectangle intersects the spatial region,
The object search unit
When the search range is specified through the input device,
In order from the root node of the region index tree, a search code value obtained by mapping a representative point of the search range to a scalar value and a key value of a spatial region of each node of the region index tree are collated, whereby a non-leaf node A space traced from the search range for each round with respect to a procedure for extracting a spatial region including a representative point of the search range and an object linked from the spatial region by tracing the link to the leaf node and the object Repeat by updating the representative points of the area excluding the area as a new search code value,
When there is no region excluding the spatial region traced from the search range, for each object extracted by the process of tracing each node of the region index tree, the circumscribed rectangle of the object is collated with the search range, and at least a part A spatial data management method characterized in that an object that intersects is output as an object that intersects the search range.
多次元空間上にオブジェクトが配置される空間データを管理する空間データ管理装置による空間データ管理方法を、コンピュータである前記空間データ管理装置に実行させるための空間データ管理プログラムであって、
前記空間データ管理装置は、空間データを格納する記憶部と、指定された検索範囲内に存在するオブジェクトを前記空間データから検索するオブジェクト検索部と、を有しており
前記記憶部には、各ノードからの子ノードの数を制限するバランス木として前記空間データを格納する領域索引ツリーが記憶され、
前記記憶された領域索引ツリーの各ノードには、前記空間データを1回以上等分割した空間領域の情報が所定数以下だけ格納され、その空間領域の情報は、空間領域の多次元空間上の位置を一意に示すスカラ値に写像した結果であるキー値が含まれ、
前記領域索引ツリーの子ノードを持つ非リーフノードには、その各子ノードのとりうるキー値の範囲に応じて、各子ノードへのリンクが対応づけられており、前記領域索引ツリーの子ノードを持たないリーフノードには、空間領域の情報から、その空間領域に外接矩形が交わるオブジェクトへのリンクが対応づけられており、
前記オブジェクト検索部
入力装置を介して前記検索範囲が指定されると、
前記領域索引ツリーのルートノードから順に、前記検索範囲の代表点をスカラ値に写像した検索符号値と、前記領域索引ツリーの各ノードの空間領域のキー値とを照合することにより、非リーフノード、リーフノード、オブジェクトへのリンクと辿ることで、前記検索範囲の代表点が含まれる空間領域と、その空間領域からリンクするオブジェクトとを抽出する手順について、一巡ごとに前記検索範囲から辿った空間領域を除外した領域の代表点を新たな検索符号値として更新することで繰り返し、
前記検索範囲から辿った空間領域を除外した領域が無くなると、前記領域索引ツリーの各ノードを辿る処理により抽出される各オブジェクトについて、オブジェクトの外接矩形と前記検索範囲とを照合し、少なくとも一部が交わるオブジェクトを、前記検索範囲に交わるオブジェクトとして出力する処理を実行させるための
空間データ管理プログラム
A spatial data management program for causing the spatial data management device, which is a computer, to execute a spatial data management method by a spatial data management device that manages spatial data in which objects are arranged in a multidimensional space ,
The spatial data management apparatus has a storage unit for storing spatial data, and object search unit objects present in the specified search range to search from the spatial data, and
The storage unit stores a region index tree that stores the spatial data as a balance tree that limits the number of child nodes from each node;
Each node of the stored region index tree stores a predetermined number or less of spatial region information obtained by dividing the spatial data at least once, and the spatial region information is stored on the multidimensional space of the spatial region. Contains a key value that is the result of mapping to a scalar value that uniquely identifies the position,
A link to each child node is associated with a non-leaf node having a child node of the region index tree according to a range of key values that each child node can take, and the child node of the region index tree A leaf node that does not have a link from the spatial region information to an object where a circumscribed rectangle intersects the spatial region,
The object search unit,
When the search range is specified through the input device,
In order from the root node of the region index tree, a search code value obtained by mapping a representative point of the search range to a scalar value and a key value of a spatial region of each node of the region index tree are collated, whereby a non-leaf node A space traced from the search range for each round with respect to a procedure for extracting a spatial region including a representative point of the search range and an object linked from the spatial region by tracing the link to the leaf node and the object Repeat by updating the representative points of the area excluding the area as a new search code value,
When there is no region excluding the spatial region traced from the search range, for each object extracted by the process of tracing each node of the region index tree, the circumscribed rectangle of the object is collated with the search range, and at least a part A spatial data management program for executing processing for outputting an object that intersects as an object that intersects the search range.
JP2009001234A 2009-01-07 2009-01-07 Spatial data management device, spatial data management method, and spatial data management program Active JP5237837B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2009001234A JP5237837B2 (en) 2009-01-07 2009-01-07 Spatial data management device, spatial data management method, and spatial data management program

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2009001234A JP5237837B2 (en) 2009-01-07 2009-01-07 Spatial data management device, spatial data management method, and spatial data management program

Publications (3)

Publication Number Publication Date
JP2010160591A JP2010160591A (en) 2010-07-22
JP2010160591A5 JP2010160591A5 (en) 2011-12-15
JP5237837B2 true JP5237837B2 (en) 2013-07-17

Family

ID=42577723

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2009001234A Active JP5237837B2 (en) 2009-01-07 2009-01-07 Spatial data management device, spatial data management method, and spatial data management program

Country Status (1)

Country Link
JP (1) JP5237837B2 (en)

Families Citing this family (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5776403B2 (en) * 2011-07-21 2015-09-09 富士通株式会社 Region search method, region search program, and information processing apparatus
CN102306180B (en) * 2011-08-29 2013-03-27 北京建筑工程学院 Modeling method based on mass laser radar grid point cloud data
JP5845818B2 (en) * 2011-10-31 2016-01-20 富士通株式会社 Region search method, region search program, and information processing apparatus
JPWO2013128788A1 (en) * 2012-03-02 2015-07-30 日本電気株式会社 Data management apparatus, data management method and program
JP6065708B2 (en) * 2013-03-28 2017-01-25 富士通株式会社 Information processing method, apparatus and program
JP6428615B2 (en) * 2013-07-12 2018-11-28 日本電気株式会社 Multidimensional range search apparatus and multidimensional range search method
JP6418658B2 (en) * 2014-09-19 2018-11-07 Necソリューションイノベータ株式会社 Information processing apparatus, information processing method, and program
CN109690525B (en) * 2016-09-15 2023-05-30 甲骨文国际公司 Automatic partitioning of streaming data of a shape
CN109657022B (en) * 2018-12-08 2020-06-30 拉扎斯网络科技(上海)有限公司 Merchant searching method and device, electronic equipment and storage medium
WO2021141117A1 (en) * 2020-01-09 2021-07-15 パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカ Three-dimensional data encoding method, three-dimensional data decoding method, three-dimensional data encoding device, and three-dimensional data decoding device
CN113158087A (en) * 2021-04-09 2021-07-23 深圳前海微众银行股份有限公司 Query method and device for space text
KR102441902B1 (en) * 2021-12-10 2022-09-13 주식회사 이안에스아이티 Method and apparatus for generating 3D visualization data
CN116796083B (en) * 2023-06-29 2023-12-22 山东省国土测绘院 Space data partitioning method and system

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH05242164A (en) * 1992-02-26 1993-09-21 Nippon Telegr & Teleph Corp <Ntt> Rectangular body retrieving method
JP3607107B2 (en) * 1998-03-13 2005-01-05 株式会社東芝 Data management device
JP4346090B2 (en) * 2005-01-18 2009-10-14 日立ソフトウエアエンジニアリング株式会社 Graphic data management method and system, and storage medium

Also Published As

Publication number Publication date
JP2010160591A (en) 2010-07-22

Similar Documents

Publication Publication Date Title
JP5237837B2 (en) Spatial data management device, spatial data management method, and spatial data management program
JP4878178B2 (en) Data processing method and apparatus, and processing program therefor
CN105701103B (en) Three-dimensional application system based on geographic information
CN113434623B (en) Fusion method based on multi-source heterogeneous space planning data
CN105701104B (en) Three-dimensional data engine system based on geographic information
WO2006059629A1 (en) Device, method and program for managing area information
KR101797325B1 (en) Map processing method based on multi-scale model for building object
KR20190079354A (en) Partitioned space based spatial data object query processing apparatus and method, storage media storing the same
US11587533B2 (en) Method for displaying point of information of map, device, and readable storage medium
Petzold et al. Fast screen map labeling œ data structures and algorithms
JP4885558B2 (en) Entity lookup system
CN111858613A (en) Service data retrieval method
CN114116948B (en) Geographical vector data space buffer area analysis method, device, equipment and medium
JP2012212057A (en) Map provision server, map provision method, and program
US9436715B2 (en) Data management apparatus and data management method
JP5355784B2 (en) Data access method and data access apparatus
JP2001014338A (en) Method and system for graphic data management, and storage medium
CN114138925A (en) Location point belonging area retrieval method, device, electronic equipment, medium and product
JP2020135530A (en) Data management device, data search method and program
JP5309560B2 (en) Drawing data management device
US20180181285A1 (en) Data aware interface controls
CN113793346B (en) Region attribute method and device, electronic equipment and readable storage medium
KR101102083B1 (en) System and method for diagramming geo-referenced data
KR20180050074A (en) Method for processing road information and method for simulating virtual combat simulation
Zhang et al. Distributed processing practice of the 3D city model based on HBase

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20111101

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20111101

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20130301

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20130329

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

Ref document number: 5237837

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20160405

Year of fee payment: 3

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313117

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250