US20160078074A1 - Method of spatial storage of an object by means of a flexible hierarchical structure, and a non-transient storage medium - Google Patents
Method of spatial storage of an object by means of a flexible hierarchical structure, and a non-transient storage medium Download PDFInfo
- Publication number
- US20160078074A1 US20160078074A1 US14/703,257 US201514703257A US2016078074A1 US 20160078074 A1 US20160078074 A1 US 20160078074A1 US 201514703257 A US201514703257 A US 201514703257A US 2016078074 A1 US2016078074 A1 US 2016078074A1
- Authority
- US
- United States
- Prior art keywords
- tree
- elements
- quadrants
- storage medium
- objects
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 97
- 238000003860 storage Methods 0.000 title claims abstract description 84
- 230000001052 transient effect Effects 0.000 title claims description 54
- 239000012634 fragment Substances 0.000 claims description 29
- 238000005516 engineering process Methods 0.000 abstract description 26
- 238000000638 solvent extraction Methods 0.000 description 35
- 230000005540 biological transmission Effects 0.000 description 28
- PCTMTFRHKVHKIS-BMFZQQSSSA-N (1s,3r,4e,6e,8e,10e,12e,14e,16e,18s,19r,20r,21s,25r,27r,30r,31r,33s,35r,37s,38r)-3-[(2r,3s,4s,5s,6r)-4-amino-3,5-dihydroxy-6-methyloxan-2-yl]oxy-19,25,27,30,31,33,35,37-octahydroxy-18,20,21-trimethyl-23-oxo-22,39-dioxabicyclo[33.3.1]nonatriaconta-4,6,8,10 Chemical compound C1C=C2C[C@@H](OS(O)(=O)=O)CC[C@]2(C)[C@@H]2[C@@H]1[C@@H]1CC[C@H]([C@H](C)CCCC(C)C)[C@@]1(C)CC2.O[C@H]1[C@@H](N)[C@H](O)[C@@H](C)O[C@H]1O[C@H]1/C=C/C=C/C=C/C=C/C=C/C=C/C=C/[C@H](C)[C@@H](O)[C@@H](C)[C@H](C)OC(=O)C[C@H](O)C[C@H](O)CC[C@@H](O)[C@H](O)C[C@H](O)C[C@](O)(C[C@H](O)[C@H]2C(O)=O)O[C@H]2C1 PCTMTFRHKVHKIS-BMFZQQSSSA-N 0.000 description 20
- 238000004891 communication Methods 0.000 description 15
- 238000005192 partition Methods 0.000 description 10
- 230000003044 adaptive effect Effects 0.000 description 8
- 238000012545 processing Methods 0.000 description 8
- 230000006870 function Effects 0.000 description 6
- 230000004048 modification Effects 0.000 description 6
- 238000012986 modification Methods 0.000 description 6
- 238000010586 diagram Methods 0.000 description 4
- 239000007787 solid Substances 0.000 description 4
- 230000008569 process Effects 0.000 description 3
- 230000008030 elimination Effects 0.000 description 2
- 238000003379 elimination reaction Methods 0.000 description 2
- 238000013467 fragmentation Methods 0.000 description 2
- 238000006062 fragmentation reaction Methods 0.000 description 2
- 239000003550 marker Substances 0.000 description 2
- 238000012800 visualization Methods 0.000 description 2
- VYZAMTAEIAYCRO-UHFFFAOYSA-N Chromium Chemical compound [Cr] VYZAMTAEIAYCRO-UHFFFAOYSA-N 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 238000005520 cutting process Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 238000005304 joining Methods 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 230000001502 supplementing effect Effects 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/22—Indexing; Data structures therefor; Storage structures
- G06F16/2228—Indexing structures
- G06F16/2246—Trees, e.g. B+trees
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T17/00—Three dimensional [3D] modelling, e.g. data description of 3D objects
- G06T17/30—Polynomial surface description
-
- G06F17/30327—
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/18—File system types
- G06F16/185—Hierarchical storage management [HSM] systems, e.g. file migration or policies thereof
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/22—Indexing; Data structures therefor; Storage structures
- G06F16/2228—Indexing structures
- G06F16/2264—Multidimensional index structures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/27—Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
- G06F16/278—Data partitioning, e.g. horizontal or vertical partitioning
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/95—Retrieval from the web
- G06F16/953—Querying, e.g. by the use of web search engines
- G06F16/9537—Spatial or temporal dependent retrieval, e.g. spatiotemporal queries
-
- G06F17/30336—
-
- G06F17/30584—
-
- G06F17/30876—
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T17/00—Three dimensional [3D] modelling, e.g. data description of 3D objects
- G06T17/005—Tree description, e.g. octree, quadtree
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/22—Indexing; Data structures therefor; Storage structures
- G06F16/2228—Indexing structures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/22—Indexing; Data structures therefor; Storage structures
- G06F16/2228—Indexing structures
- G06F16/2272—Management thereof
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T17/00—Three dimensional [3D] modelling, e.g. data description of 3D objects
- G06T17/05—Geographic models
Definitions
- server is a program executable on the corresponding hardware and capable of receiving requests (such as those transmitted by client devices) which are transmitted by the network and executing these requests, or arranging for their execution.
- the hardware can be a single computer or a single computer system, but neither is mandatory.
- the binary tree 199 comprises four levels of binary tree elements 202 , namely: (a) one element 202 of the first level 299 , which in the present case is the node 204 of the binary tree 199 , (b) two elements 202 of the second level 298 , which in the present case are the nodes 204 of the binary tree 199 , (c) four elements 202 of the third level 297 , which in the present case are the three nodes 204 of the binary tree 199 and one leaf 206 of the binary tree 199 , (d) six elements 202 of the fourth level 296 , which in the present case are the six leaves 206 of the binary tree 199 .
- the center 306 of the object 304 is defined mathematically as the locus at identical distance from the edges (ends) of the object. Placing the object 304 in the element 202 of the tree of quadrants 198 by the location of the center 306 of the object 304 in fact results in selecting as the most suitable element 202 of the tree of quadrants 198 to contain the object 304 the element 202 of the tree of quadrants 198 that will have the least increase in area after artificial increasing of its size by adding to it the zone of presence of the object 309 .
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Databases & Information Systems (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Software Systems (AREA)
- Computer Graphics (AREA)
- Geometry (AREA)
- Computing Systems (AREA)
- Algebra (AREA)
- Mathematical Analysis (AREA)
- Mathematical Optimization (AREA)
- Mathematical Physics (AREA)
- Pure & Applied Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
Description
- The present application claims priority to Russian Patent Application No. 2014137333, filed Sep. 16, 2014, entitled “ ” the entirety of which is incorporated herein by reference. The present application is a continuation of International Patent Application no. PCT/IB2014/065793, filed on Nov. 4, 2014, entitled “METHOD OF SPATIAL STORAGE OF AN OBJECT BY MEANS OF A FLEXIBLE HIERARCHICAL STRUCTURE, AND A PERMANENT STORAGE MEDIUM”, the entirety of which is incorporated herein by reference.
- The present solution pertains to a system and a method of processing a user's request to retrieve an object which is stored with the use of a flexible hierarchical structure.
- In modern computer technologies, the spatial arrangement of objects usually includes a division of the space (scene) into smaller parts. The partitioning can be done in various ways, and the method can take into account different types of the space. For example, two-dimensional objects are often divided into quadrants; three-dimensional objects are often divided into octants. In two-dimensional and three-dimensional computer graphics, the partitioning of space is usually done during processing of data by a graphics pipeline in order to decrease future computations and minimize the number of objects sent for processing to the graphics pipeline. This is disclosed in greater detail in the US patent application 20030227455 A1 “Grid-based loose octree for spatial partitioning”.
- Once the space has been divided, and all the objects of this space have been defined in suitable cells for them, the results are usually stored in a defined data structure for later use by the components of the graphic data processing, such as a video game engine or animation generator. The data structure is usually created after creating the scene, but prior to its visualization and prior to the moment of interaction of the user with the scene. During the visualization of the scene, it may be required to find an object in the scene that corresponds to a selected point. Having received the corresponding point in unidimensional coordinates (such as the x axis), or in two-dimensional coordinates (such as the coordinates of the x, y axes) or in three-dimensional coordinates (such as the coordinates of the x, y, z axes), or in multidimensional coordinates, the data structure enables a search in order to retrieve information on the object containing the selected point.
- There are at least several existing techniques and data structures corresponding to these techniques for spatial partitioning. These include the regular coordinate grid, the binary tree, the tree of quadrants, the tree of octants, and the k-tree. Each technique has its own peculiarities.
- Thus, for example, the binary tree has a root node, which has two child nodes (a left child node and a right child node). Each child node in turn can have two child nodes apiece, and so on. Each node constitutes a segment of space. Each segment is subdivided into two child segments. Each node of the data structure has a pointer, that is, the parent node points to the child nodes. A finer partitioning into segments of each subsequent level is done for zones with a substantial number of objects situated there. The binary tree can be subdivided uniformly or not uniformly, depending on the spatial partitioning algorithm used. The binary tree hierarchically partitions the space into segments down to a defined depth (level of detail).
- The tree of quadrants has a structure similar to the binary tree, but the nodes of the tree of quadrants have a larger number of child nodes (usually four). Each node of the tree of quadrants constitutes a quadrant of the space. Each quadrant can be subdivided into child quadrants (usually four). Each parent quadrant can have pointers to the child quadrants. A finer partitioning into quadrants of each subsequent level is done for zones with significant number of objects situated there. The tree of quadrants can be subdivided uniformly or not uniformly, depending on the spatial partitioning algorithm used. The tree of quadrants hierarchically partitions the space into quadrants down to a defined depth (level of detail).
- The tree of octants has a structure similar to the binary tree, and also similar to the tree of quadrants, but the nodes of the tree of octants have a larger number of child nodes (usually eight). Each node of the tree of octants constitutes an octant of the space. Each octant can be subdivided into child octants (usually eight). Each parent octant can have pointers to the child octants. A finer partitioning into octants of each subsequent level is done for zones with significant number of objects situated there. The tree of octants can be subdivided uniformly or not uniformly, depending on the spatial partitioning algorithm used. The tree of octants hierarchically partitions the space into octants down to a defined depth (level of detail).
- The objects arranged in the cells (such as octants, quadrants, segments) can be divided when the partitioning boundaries intersect these objects. The processing of such divided objects requires significant resource costs.
- Thus, while the usual computer systems in existence are acceptable, nevertheless an improvement of these systems is possible.
- The goal of the present solution is to eliminate or mitigate at least some of the drawbacks found in the existing prior art.
- According to a first broad aspect of the present technology, there is provided a method for determining the spatial storage of an object. The method is carried out using a flexible hierarchical structure. The flexible hierarchical structure includes a set of elements of an n-tree. The method is carried out on a computer which determines a spatial storage of the object. The method comprises: obtaining from the computer memory an object for placement in one of the set of elements of the n-tree; determining the most suitable element of the n-tree for the placement of the object; determining whether the boundaries of the object go beyond the boundaries of the most suitable element of the n-tree; if the boundaries of the object go beyond the boundaries of the most suitable element of the n-tree, determining the boundary of the most suitable element of the n-tree that will be intersected by a portion of the object when the object is placed in this most appropriate element of the n-tree; increasing the size of the most suitable element of the n-tree by adding to it a zone of presence of the object, the boundary of the zone of presence of the object being distant from the boundary of the most suitable element of the n-tree by the maximum value of projection of the object beyond the boundaries of the most suitable element of the n-tree.
- In certain variant non-limiting embodiments, the method additionally includes presenting to the user an object associated with an element of the n-tree, the presentation being via the user's computer interface responsive to the user's request, where the user's request is made by the user selecting a corresponding fragment of the space.
- In certain variant non-limiting embodiments, the indicated fragment of space corresponds to one of: an element of the n-tree containing at least one object which is found in the fragment of space selected by the user; a zone of presence of the object, increasing the size of the neighboring element of the n-tree.
- In certain variant non-limiting embodiments, the method additionally includes a searching for the object which is responsive to the indicated selected fragment of space corresponding to the zone of presence of the object, the search for the object being done in: (i) an element of the n-tree containing at least one object in the user's selected fragment of space and in (ii) a neighboring element of the n-tree, artificially increased by the zone of presence of the object corresponding to the selected fragment of space.
- In certain variant non-limiting embodiments, the method further includes receiving the user's request via the user's computer interface.
- In certain variant non-limiting embodiments of the method, the set of elements of the n-tree includes at least one of: a set of nodes of the n-tree, each of the set of nodes of the n-tree having a predetermined number of element of the n-tree of the next level (child elements), and a set of leaves of the n-tree.
- In certain variant non-limiting embodiments of the method, the determining the most appropriate element of the n-tree to contain the object comprises determining the center of the object.
- In certain variant non-limiting embodiments the method additionally includes determining the number of objects in the element of the n-tree.
- In certain variant non-limiting embodiments of the method, the maximum permissible number of objects situated in one element of the n-tree is predetermined.
- In certain variant non-limiting embodiments of the technology, the method additionally includes creating of a predetermined number (quantity) of elements of the n-tree of the next level in the case when the number of objects corresponding to the given element of the n-tree of any level (the previous element of the n-tree) exceeds the maximum permissible quantity.
- In certain variant non-limiting embodiments the method additionally includes repartitioning of the object between elements of the n-tree of different levels.
- In certain variant non-limiting embodiments of the method, the repartitioning of the object is done between the preceding element of the n-tree and one of the set of newly created elements of the next level of the n-tree.
- In certain variant non-limiting embodiments of the method, the repartitioning of the objects takes into account the size of the objects being repartitioned.
- In certain variant non-limiting embodiments of the method, the repartitioning of the objects takes into account the potential intersection of the objects being repartitioned with the boundaries of the elements of the next level of the n-tree.
- In certain variant non-limiting embodiments the method additionally includes eliminating a predetermined quantity of elements of the next level of the n-tree when the sum of objects in all these elements of the n-tree of the next level and in the preceding element of the n-tree does not exceed the maximum permissible quantity of objects of the preceding element of the n-tree.
- In certain variant non-limiting embodiments the method additionally includes shifting of objects from a predetermined number (quantity) of eliminated elements of the next level of the n-tree to the preceding element of the n-tree.
- In certain variant non-limiting embodiments of the method, the at least one zone of presence of the object which increases the size of the element of the n-tree at minimum partly overlaps another element of the same level of the n-tree.
- In certain variant non-limiting embodiments of the method, the at least one zone of presence of the object which increases the size of the element of the next level of the n-tree goes beyond the boundaries of the preceding element of the n-tree.
- In certain variant non-limiting embodiments of the method, each object can be placed in only one element of the n-tree.
- In certain variant non-limiting embodiments of the method, the n-tree is a tree of quadrants, and the predetermined number of elements of the next level of the tree of quadrants is equal to four.
- In certain variant non-limiting embodiments of the method, the determining the most suitable element of the tree of quadrants to contain the object is done by selecting an element of the tree of quadrants that will have the least increase in area after the artificial increasing of the size of the most suitable element of the tree of quadrants by adding the zone of presence of the object to it.
- In certain variant non-limiting embodiments of the method, the n-tree is a tree of octants, and the predetermined number of elements of the next level of the tree of octants is equal to eight.
- In certain variant non-limiting embodiments of the method, the determining the most suitable element of the tree of octants to contain the object comprises selecting an element of the tree of octants that will have the least increase in volume after the artificial increasing of the size of the most suitable element of the tree of octants by adding the zone of presence of the object to it.
- In certain variant non-limiting embodiments of the method, the n-tree is a binary tree, and the predetermined number of elements of the next level of the binary tree is equal to two.
- In certain variant non-limiting embodiments of the method, the determining the most suitable element of the binary tree to contain the object comprises selecting an element of the binary tree that will have the least increase in distance after the artificial increasing of the size of the most suitable element of the binary tree by adding the zone of presence of the object to it.
- According to another broad aspect of the present technology, there is provided a non-transient storage medium. The non-transient storage medium stores a database. The database includes a flexible hierarchical structure. The flexible hierarchical structure includes a set of elements of an n-tree. The non-transient storage medium stores machine-readable instructions (codes) which, when executed by an electronic device: obtain from the computer memory an object for placement in one of the set of elements of the n-tree; determine the most suitable element of the n-tree for placement of the object; ascertain whether the boundaries of the object go beyond the boundaries of the most suitable element of the n-tree; if the boundaries of the object go beyond the boundaries of the most suitable element of the n-tree, determine the boundary of the most suitable element of the n-tree that will be intersected by a portion of the object when the object is placed in this most suitable element of the n-tree; artificially increase the size of the most suitable element of the n-tree by adding to it a zone of presence of the object, while the boundary of the zone of presence of the object is distant from the boundary of the most suitable element of the n-tree by the maximum value of projection of the object beyond the boundaries of the most suitable element of the n-tree.
- In certain variant non-limiting embodiments the non-transient storage medium stores machine-readable instructions (codes) which, when executed by the electronic device cause the electronic device to additionally: present to the user an object associated with the element of the n-tree, the presentation via the user's computer interface taking place responsive to a user request, where the user request is done by the user selecting a corresponding fragment of the space.
- In certain variant non-limiting embodiments of the non-transient storage medium, the fragment of space corresponds to one of: (i) an element of the n-tree containing at least one object situated in the user-selected fragment of space, and (ii) a zone of presence of the object increasing the size of the neighboring element of the n-tree.
- In certain variant non-limiting embodiments the non-transient storage medium stores machine-readable instructions (codes) which, when executed by the electronic device cause the electronic device, responsive to the fact that the selected fragment of the space corresponds to the zone of presence of the object, additionally perform a search for the object, the search for the object taking place in: (i) an element of the n-tree containing at least one object situated in the user-selected fragment of space, and in (ii) a neighboring element of the n-tree artificially increased by the zone of presence of the object corresponding to the selected fragment of space.
- In certain variant non-limiting embodiments the non-transient storage medium stores machine-readable instructions (codes) which, when executed by the electronic device cause the electronic device to, additionally obtain a user request via the user's computer interface.
- In certain variant non-limiting embodiments of the non-transient storage, the set of elements of the n-tree includes at least one of: a set of nodes of the n-tree, each of the set of nodes of the n-tree having a predetermined number of elements of the next level of the n-tree (child elements), and a set of leaves of the n-tree.
- In certain variant non-limiting embodiments of the non-transient storage medium, the determining the most suitable element of the n-tree to contain the object is done by determining the center of the object.
- In certain variant non-limiting embodiments the non-transient storage medium stores machine-readable instructions (codes) which, when executed by the electronic device cause the electronic device to, additionally determine the quantity of objects in the element of the n-tree.
- In certain variant non-limiting embodiments of the non-transient storage medium, the maximum permissible quantity of objects situated in one element of the n-tree is predetermined.
- In certain variant non-limiting embodiments the non-transient storage medium stores machine-readable instructions (codes) which, when executed by the electronic device cause the electronic device to, create a predetermined number of elements of the n-tree of the next level when the number of objects corresponding to the given element of the n-tree of any level (preceding element) exceeds the maximum permissible quantity.
- In certain variant non-limiting embodiments the non-transient storage medium stores machine-readable instructions (codes) which, when executed by the electronic device cause the electronic device to, repartition the object between elements of different levels of the n-tree.
- In certain variant non-limiting embodiments of the non-transient storage medium, the repartitioning of the object is done between the preceding element of the n-tree and one of the set of newly created elements of the next level of the n-tree.
- In certain variant non-limiting embodiments of the non-transient storage medium, the repartitioning of the object between the preceding element of the n-tree and one of the set of newly created elements of the next level of the n-tree takes into account the size of the objects being repartitioned.
- In certain variant non-limiting embodiments of the non-transient storage medium, the repartitioning of the objects between the preceding element of the n-tree and one of the set of newly created elements of the next level of the n-tree takes into account the potential intersecting of the objects being repartitioned with the boundaries of the elements of the next level of the n-tree.
- In certain variant non-limiting embodiments the non-transient storage medium stores machine-readable instructions (codes) which, when executed by the electronic device cause the electronic device to, additionally eliminate a predetermined number of elements of the next level of the n-tree in the case when the sum of the objects in all these elements of the next level of the n-tree and in the preceding element of the n-tree does not exceed the maximum permissible quantity of objects of the preceding element of the n-tree.
- In certain variant non-limiting embodiments the non-transient storage medium stores machine-readable instructions (codes) which, when executed by the electronic device cause the electronic device to, shift objects from a predetermined number of eliminated elements of the next level of the n-tree to the preceding element of the n-tree.
- In certain variant non-limiting embodiments of the non-transient storage medium, the at least one zone of presence of the object which increases the size of the element of the n-tree at minimum partially overlaps another element of the same level of the n-tree.
- In certain variant non-limiting embodiments of the non-transient storage medium, the at least one zone of presence of the object that artificially increases the size of the element of the next level of the n-tree goes beyond the limits of the preceding element of the n-tree.
- In certain variant non-limiting embodiments of the non-transient storage medium, each object can be situated in only one element of the n-tree.
- In certain variant non-limiting embodiments of the non-transient storage medium, the n-tree is a tree of quadrants, and the predetermined number of elements of the next level of the tree of quadrants is equal to four.
- In certain variant non-limiting embodiments of the non-transient storage medium, the determining the most suitable element of the tree of quadrants to contain the object is done by selecting an element of the tree of quadrants that will have the least increase in area after the artificial increasing of the size of the most suitable element of the tree of quadrants by adding the zone of presence of the object to it.
- In certain variant non-limiting embodiments of the non-transient storage medium, the n-tree is a tree of octants, and the predetermined number of elements of the next level of the tree of octants is equal to eight.
- In certain variant non-limiting embodiments of the non-transient storage medium, the determining the most suitable element of the tree of octants to contain the object is done by selecting an element of the tree of octants that will have the least increase in volume after the artificial increasing of the size of the most suitable element of the tree of octants by adding the zone of presence of the object to it.
- In certain variant non-limiting embodiments of the non-transient storage medium, the n-tree is a binary tree, and the predetermined number of elements of the next level of the binary tree is equal to two.
- In certain variant non-limiting embodiments of the non-transient storage medium, the determining the most suitable element of the binary tree to contain the object is done by selecting an element of the binary tree that will have the least increase in length after the artificial increasing of the size of the most suitable element of the binary tree by adding the zone of presence of the object to it.
- In the context of the specification of the present technology, “server” is a program executable on the corresponding hardware and capable of receiving requests (such as those transmitted by client devices) which are transmitted by the network and executing these requests, or arranging for their execution. The hardware can be a single computer or a single computer system, but neither is mandatory. In the given context, the term “at least one server” does not mean that each task (such as a task call for by received instructions or requests) or any particular task will be received, executed, or arranged to be executed by the same server (that is, the same software and/or hardware); it is presumed that the reception and transmission, the execution or the arranging for the execution of any task or request or the processing of the results of the task or request can be done by any number of components of the software or devices and that all these components of the software or hardware can be provided by a single server or several servers, the term “at least one server” covering both of these variants.
- In the context of the specification of the present technology, “electronic device” means any given computer hardware enabling the execution of the software designed to solve the stated problem. In the context of the present specification, the term “electronic device” can be associated with a publisher. Even so, in certain cases an electronic device (that is, as a device associated with the publisher in the present specification) can also be used as a client device (that is, as a device associated with a publisher in the present specification). Thus, certain examples (not limiting in nature) of electronic devices can include personal computers (desktop computers, personal computers, netbooks, and so on), smartphones and tablets, as well as network hardware, such as routers, switches and gateways. It should be noted in this context that the fact that a device functions as an electronic device does not rule out possibilities of its functioning as a server for other electronic and client devices. The use of the term “electronic device” does not prevent the use of several client and/or electronic devices in the process of receiving and transmitting, executing or arranging for the executing of a task or request, or processing of the results of a task or request, or stages of the method set forth in the present specification.
- In the context of the specification “client device” means any computer hardware making it possible to execute the software designed to solve the stated problem. In the context of the present specification, the term “client device” is basically associated with the user of a client device. Nonetheless, in certain cases the client device can also be used as an electronic device (that is, as a device associated in the given specification with a publisher). Thus, certain examples (not limited to these) of client devices include personal computers (desktop computers, portable computers, netbooks, and so on), smartphones and tablets, as well as network hardware, such as routers, switches and gateways. It should be noted in this context that the fact that a device functions as a client device does not rule out possibilities of its functioning as a server for other client devices or electronic devices. The use of the term “client device” does not prevent the use of several client and/or electronic devices in the process of receiving and transmitting, executing or arranging for the executing of a task or request, or processing of the results of a task or request, or stages of the method set forth in the present specification.
- In the context of the specification of the present technology, “database” means a structured set of data, independent of the particular structure, database management software, or hardware on which the data is stored, the memory is realized, or another way of making possible the use of data. The database can be realized on the same hardware as the process responsible for the saving or using of information recorded in the database, or on separate hardware, such as a dedicated server or set of servers.
- In the context of the specification the term “n-tree” means a hierarchical data structure, including a set of elements of the n-tree (nodes of the n-tree and leaves of the n-tree) of different level. The n-tree is created and maintained primarily to construct and maintain spatial databases, where the space can be two-dimensional, three-dimensional, four-dimensional, five-dimensional, and so on. It is used for a recursive partitioning of the space into a predetermined number of regions. Depending on the type of the n-tree, it can store information on pointlike, linear, two-dimensional, three-dimensional, and multidimensional objects. The n-tree can have different embodiments, such as a binary tree, a tree of quadrants, a tree of octants, and so on. Any one of these embodiments can have the following common properties: (a) the n-tree partitions the space into regions (adaptive cells); (b) each region (adaptive cell) has a maximum capacity; when the maximum capacity is reached, the cell is divided; (c) the n-tree follows the spatial partitioning of the n-tree.
- In the context of the specification “element of the n-tree” (“cell”, “adaptive cell”, “adaptable cell”) is an element of the hierarchical data structure. The elements of the n-tree are the nodes of the n-tree and the leaves of the n-tree of different level.
- In the context of the specification the term “leaf of the n-tree” means an element of the n-tree (adaptive element) storing information on objects and not having “descendants”. The node key consists of a predetermined number of components (according to the number of coordinates used to describe the space).
- In the context of the specification the term “node of the n-tree” means an element of the n-tree (adaptive cell) storing information on objects and having a predetermined number of descendants, depending on the characteristics of the space being described. The node key consists of a predetermined number of components (according to the number of coordinates used to describe the space). The descendants of the node of the n-tree can be nodes of the next level of n-tree, or leaves of the next level of n-tree, or nodes of the next level of n-tree and leaves of the next level of n-tree.
- In the context of the specification the term “object” means an element existing in real or virtual space. An object can be pointlike, linear, two-dimensional, three-dimensional, multidimensional. For purposes of storage in various hierarchical data structures, the object can be represented by a tag. A tag can have spatial coordinates. The tag can also include information on the size of the object. The tag can also include information on the shape of the object. The tag can include other information. In certain embodiments of the present technology, the tag can be linked to an external data base storing additional data on the object (such as the operating time of a production machine, the building cost in a computer game, and so on).
- In the context of the specification the term “tree of octants” (“eight-dimensional tree”, “octree”) designates a hierarchical data structure including a set of elements of a tree of octants (nodes of the tree of octants and leaves of the tree of octants) of different level. The tree of octants is created and maintained primarily to construct and maintain three-dimensional databases. It is used for a recursive partitioning of space into eight regions (octants). The octants can be cubical, or also have the shape of a parallelepiped. The tree of octants can store information on pointlike, linear, two-dimensional and three-dimensional objects. The tree of octants can have different embodiments. Any of these embodiments can have the following common properties: (a) the tree of octants partitions the space into octants; (b) each octant has a maximum capacity; when the maximum capacity is reached, the cell is divided; (c) the directory tree follows the spatial partitioning of the tree of octants.
- In the context of the specification the term “element of the tree of octants” is an element of the hierarchical data structure. The elements of the tree of octants are the nodes of the tree of octants and the leaves of the tree of octants of different level.
- In the context of the specification the term “leaf of the tree of octants” means an element of the tree of octants storing information on objects not having “descendants”. The key of the leaf of a tree of octants consists of three components (for the coordinates x, y and z).
- In the context of the specification the term “node of the tree of octants” means an element of the tree of octants storing information on objects having eight descendants (one for each octant). The node key consists of two components (for the coordinates x, y and z). The descendants of the node of the tree of octants can be nodes of the next level of the tree of octants, or leaves of the next level of the tree of octants, or nodes of the next level of the tree of octants and leaves of the next level of the tree of octants.
- In the context of the specification the term “tree of quadrants” (“4-tree”, “quadrotree”, “quadtree”) designates a hierarchical data structure including a set of elements of a tree of quadrants (nodes of the tree of quadrants and leaves of the tree of quadrants) of different level. The tree of quadrants is created and maintained primarily to construct and maintain spatial databases. It is used for a recursive partitioning of space into four regions (quadrants). The quadrants can be square and rectangular. The tree of quadrants can store information on pointlike, linear and two-dimensional objects. The tree of quadrants can have different embodiments. Any of these embodiments can have the following common properties: (a) the tree of quadrants partitions the space into quadrants; (b) each quadrant has a maximum capacity; when the maximum capacity is reached, the cell is divided; (c) the directory tree follows the spatial partitioning of the tree of quadrants.
- In the context of the specification “element of the tree of quadrants” is an element of the hierarchical data structure. The elements of the tree of quadrants are the nodes of the tree of quadrants and the leaves of the tree of quadrants of different level.
- In the context of the specification the term “leaf of the tree of quadrants” means an element of the tree of quadrants storing information on objects not having “descendants”. The key of the leaf of a tree of quadrants consists of two components (for the coordinates x and y).
- In the context of the specification the term “node of the tree of quadrants” means an element of the tree of quadrants storing information on objects having four descendants (one for each quadrant). The node key consists of two components (for the coordinates x and y). The descendants of the node of the tree of quadrants can be nodes of the next level of the tree of quadrants, or leaves of the next level of the tree of quadrants, or nodes of the next level of the tree of quadrants and leaves of the next level of the tree of quadrants.
- In the context of the specification the term “binary tree” designates a hierarchical data structure including a set of elements of a binary tree (nodes of the binary tree and leaves of the binary tree) of different level. The binary tree is created and maintained primarily to construct and maintain linear databases. It is used for a recursive partitioning of linear space into two regions (intervals). The binary tree can store information on pointlike and linear objects. The binary tree can have different embodiments. Any of these embodiments can have the following common properties: (a) the binary tree partitions a line into intervals; (b) each interval (adaptive cell) has a maximum capacity; when the maximum capacity is reached, the cell is divided; (c) the binary directory tree follows the linear partitioning of the binary tree.
- In the context of the specification the term “element of the binary tree” is an element of the hierarchical data structure. The elements of the binary tree are the nodes of the binary tree and the leaves of the binary tree of different level.
- In the context of the specification the term “leaf of the binary tree” means an element of the binary tree storing information on objects not having “descendants”. The key of the leaf of a binary tree consists of one component (for the coordinates of the x axis).
- In the context of the specification the term “node of the binary tree” means an element of the binary tree storing information on objects having two descendants (one for each interval). The node key consists of one component (for the x coordinate). The descendants of the node of the binary tree can be nodes of the next level of the binary tree, or leaves of the next level of the binary tree, or nodes of the next level of the binary tree and leaves of the next level of the binary tree.
- In the context of the specification the term “object” means a spatial object having coordinates. A spatial object can be a pointlike object, a linear object, a two-dimensional object, a three-dimensional object, a multidimensional object. The information about the object may include, besides its coordinates, information on the shape and dimensions of the object. The information about the object may include data other than that listed above, such as the color of the object. The various data on the object can be stored in a single database or in several databases, jointly or separately. For example, information about the coordinates of the object and its dimensions might be stored together and be associated with a marker of the object, while all other information might be stored separately.
- In the context of the specification the term “information” includes information of any kind or type which can be recorded in a database. Thus, information encompasses, among other things, audiovisual information (images, films, sound recordings, presentations, etc.), data (positional data, numerical data, etc.), text information (statements, commentaries, questions, communications, etc.), documents, spreadsheets, and so on.
- In the context of the specification the term “component” embraces software (corresponding to the particular hardware) which is at the same time necessary and sufficient to performing a specific indicated function(s).
- In the present specification the term “storage medium designed for computer use” embraces media of any kind and type, including RAM, ROM disks (compact disks, DVDs, floppy disks, hard disks, and so on), USB switches, solid state drives, tape drives, and so on.
- In the present specification the words “first”, “second”, “third” and so on are used only as descriptive elements for purposes of separating substantives which are different from each other, and not for purposes of defining any concrete relation between the substantives. Thus, for example, it should be understood that the terms “first server” and “third server” do not signify the introduction of a specific sequence, type, chronology, hierarchy or ranking (for example) of a particular server or several servers, and their use (in itself) does not mean that in a particular situation there must necessarily exist some “second server”. Moreover, as indicated in this description with regard to other sample embodiments of the technology, the reference to a “first” element and “second” element does not mean that the two elements could not in fact constitute the very same element in the real world. Thus, for example, in certain cases the “first” server and “second” server could be the identical component of the software and (or) hardware, and in other situations they might be realized on different software and (or) hardware.
- Each of the variant non-limiting embodiments has at least one of the aforementioned purposes and/or one of the aforementioned aspects, but not necessarily all of the. It should be kept in mind that certain aspects which are the result of an attempt to achieve an aforementioned purpose might achieve other purposes not specifically mentioned here.
- Additional and/or alternative features, purposes, aspects and advantages will become evident from the following description, the accompanying drawings, and the appended patent claims.
- For a better understanding of the present technology, as well as other of its aspects and features, one should refer to the following description, which should be used along with the appended drawings, on which:
-
FIG. 1 is a schematic representation of a network computer systems implementing the non-limiting embodiments of the present technology -
FIG. 2 is a schematic representation showing the structure and components of a binary tree. -
FIG. 3 is a schematic representation showing the structure and components of a tree of quadrants. -
FIG. 4 is a schematic representation of an object in the tree of quadrants. -
FIG. 5 is a block diagram of themethod 400, implemented on aserver 102, as shown inFIG. 1 , and implemented in accordance with non-limiting embodiments of the present technology. -
FIG. 6 is an alternative schematic representation of an object in the tree of quadrants. -
FIG. 7 is a block diagram of a method 600 which is a continuation ofmethod 400, and implemented in accordance with non-limiting embodiments of the present technology. -
FIG. 1 shows a fundamental diagram of variousnetwork computer systems 100 interconnected with each other by means of adata transmission network 110. It is important to keep in mind that the differentnetwork computer systems 100 are represented as the illustrated variant embodiment. This description is not intended to define the scope or establish the limits of the present technology. Several useful examples of modifications of thecomputer systems 100 can also be encompassed by the following description. Its purpose is only to aid in understanding, but not to define the scope and limits of the present technology. These modifications are not an exhaustive list, and the persons skilled in the art will understand that other modifications are possible. Furthermore, it should not be interpreted such that no modifications are possible where this has not yet been done, i.e., where no examples of modifications have been explained, and/or that what is described is the only way of implementing this element. As will be clear to the person skilled in the art, such is more likely not the case. Furthermore, one must keep in mind that thecomputer system 100 in certain specific instances is a rather simple variant embodiment of the present technology, and in such cases it is presented here in order to facilitate understanding. As will be clear to the person skilled in the art, many variant non-limiting embodiments will have much greater complexity. - The
system 100 includes aserver 102. Theserver 102 can be an ordinary computer server. In the example of the variant embodiment, theserver 102 can be a Dell™ PowerEdge™ server on which the operating system Microsoft™ Windows Server™ is running. Needless to say, theserver 102 can be any other appropriate hardware and/or application software and/or system software or combination thereof. In the variant embodiment shown, theserver 102 is a single server. In other variant non-limiting embodiments, the functionality of theserver 102 can be distributed, and it can be implemented with the aid of several servers. - In certain variant non-limiting embodiments, the
server 102 is under the supervision and/or control of a map service provider, such as the map service provider Yandex™. Thus, theserver 102 can be implemented with capability of performing one or more searches responsive to a search request for the map service entered by auser 120 into abrowser 126 of aclient device 122, connected to theserver 102 via adata transmission network 110. Theserver 102 is also able to transmit to theclient device 122 the result of the search, which will be shown to theuser 120 of theclient device 122 on adisplay 128 via the interface of thebrowser 126. These functions are well known in this field of technology and therefore shall not be described here. - The
server 102 includes astorage medium 104, which can be used by theserver 102. In principle, this storage medium can be a medium of absolutely any given type and nature, including RAM, ROM, disks (compact disks, DVD disks, diskettes, hard disks and so on), USB flash drives, solid state drives, magnetic tape drives, and so on, as well as combinations of these. - Variant non-limiting embodiments of the
server 102 are well known in this field of technology. Thus, it is enough to mention that eachserver 102 contains, among other things, a network communication interface (such as a modem, a network card, and the like) for two-way communication via thedata transmission network 110; and a processor connected to the network communication interface, which has the capability of performing various procedures, including those which are described below. For this purpose, the processor can store or have access to machine-readable instructions (codes), the execution of which initiates the processor to carry out the various procedures described here. - The
storage medium 104 of theserver 102 is designed to store data, including the machine-readable instructions (codes) and a database. - In particular, the
storage medium 104 of theserver 102 stores adatabase 106, one of the elements of which is an n-tree 108, which is a hierarchical data structure. The n-tree 108 includes a set of elements of the n-tree (nodes of the n-tree and leaves of the n-tree) of different level. The n-tree 108 is created and maintained to construct and maintain spatial databases, where the space can be two-dimensional, three-dimensional, four-dimensional, five-dimensional, and so on. The n-tree 108 is used for recursive partitioning of the space into a predetermined number of regions. Depending on the type of the n-tree 108, it can store information on pointlike, linear, two-dimensional, three-dimensional and multidimensional objects. The n-tree 108 can have different embodiments. For example, it can be embodied as abinary tree 199, as shown inFIG. 2 , or as a tree ofquadrants 198, shown inFIG. 3 , or as a tree of octants (not shown), and so forth. Any one of these embodiments can have the following properties in common: (a) the n-tree 108 partitions the space into regions (adaptive cells); (b) each region (adaptive cell) has a maximum capacity; when the maximum capacity is reached, the cell is divided; (c) the n-tree 108 allows for the spatial partitioning of the n-tree 108. The n-tree 108 will be described more closely below on the example of two of its example embodiments: abinary tree 199 and a tree ofquadrants 198. - The
storage medium 104 of theserver 102 also stores the machine-readable instructions (codes), responsible for the control of the databases, their updating, supplementing, and modification. In particular, the machine-readable instructions saved on thestorage medium 104 allow theserver 102 to obtain (update) data on the objects from theelectronic device 112 via thedata transmission network 110, place the objects in the n-tree 108, change the position and/or the characteristics of the objects in the n-tree 108, and remove the objects from the n-tree 108. - The
server 102 is connected to thedata transmission network 110 by a communication line (not numbered). In certain variant non-limiting embodiments, thedata transmission network 110 can be the Internet. In other variant non-limiting embodiments, thedata transmission network 110 can be realized otherwise—in the form of a global data transmission network, a local-area data transmission network, a proprietary data transmission network, and so on. - The realization of the communication line is not limited, and it will depend on which devices are connected to the
data transmission network 110. As an example, but not a limitation, the connection of theserver 102 to thedata transmission network 110 can be implemented by wired connection (a connection based on the Ethernet). At the same time, other devices can be coupled by other methods. Thus, in cases where the connected device is a wireless communication device (such as aclient device 122 realized as a smartphone), the connection can be a wireless communication network (such as a 3G network communication line, a 4G network communication line, a Wireless Fidelity or in short WiFi®, a Bluetooth® and so on). In those examples where the device is a desktop computer (such as the electronic device 112), the communication line can be either wireless (Wireless Fidelity or in short WiFi®, Bluetooth® and so on) or wire line (Ethernet-based connection). - It is important to keep in mind that the different examples of the
server 102, theelectronic device 112, theclient device 122, which is connected to thedata transmission network 110, are given solely for purposes of illustration. Thus, persons skilled in the art will understand the details of other specific variant non-limiting embodiments of theserver 102, theelectronic device 112, theclient device 122, and the communication lines for connection to thedata transmission networks 110. - Via the
data transmission network 110 theserver 102 is connected to theelectronic device 112. Theelectronic device 112 can be associated with apublisher 111. Theelectronic device 112 can have adisplay 118. Thepublisher 111 is an entity providing data on objects having spatial coordinates for making them available to theuser 120. As several nonlimiting examples ofpublishers 111 from the set of possible examples one can mention: (a) the owner of a gas station providing the coordinates and hours of operation of the gas station on a two-dimensional map service (realized on theserver 102 with the use of a tree of quadrants), for example, on the two-dimensional Yandex maps; (b) the developer of computer game graphics, uploading a three-dimensional graphics to three-dimensional virtual space, indexed in the n-tree 108 which is a tree of octants, and saved on thestorage medium 104 on theserver 102. - It should be noted that the fact that the
electronic device 112 is associated with thepublisher 111 does not imply any specific operating mode, nor the need to access the system, to be registered, or some other way. - The various non-limiting embodiments of the
electronic device 112 are not specifically limited, but as an example of theelectronic device 112 one can use personal computers (desktop computers, notebooks, netbooks, and so on), wireless communication devices (mobile telephones, smartphones, tablets, and so on), as well as network hardware (routers, switches or gateways). InFIG. 1 , theelectronic device 112 is realized in the form of a personal computer Dell Precision T1700 MT CA033PT170011RUWS with the Intel® Xeon™ processor, processor frequency of 3300 MHz, with nVIDIA Quadro K2000 video card, with installed and running operating system Windows 7 Pro 64-bit. - The
electronic device 112 includes astorage medium 114, which can be used by theelectronic device 112. In principle, thisstorage medium 114 can be a medium of absolutely any given type and nature, including RAM, ROM, disks (compact disks, DVD disks, diskettes, hard disks and so on), USB flash drives, solid state drives, magnetic tape drives, and so on, as well as combinations of these. In theelectronic device 112 shown inFIG. 1 , thestorage medium 114 is realized as a hard disk with 500 Gb of memory. Thestorage medium 114 can save user files and program instructions (codes). In particular, thestorage medium 114 can save software for use by anapplication 116 for file uploading. In a general case, the purpose of thefile uploading application 116 is to enable thepublisher 111 to upload files via thedata transmission network 110 to theserver 102. - The realization of the
file uploading application 116 is in no way limited. As nonlimiting examples, these applications can be applications enabling a data transmission by the HTTP or FTP protocols. In theelectronic device 112 shown inFIG. 1 , thefile uploading program 116 is realized as a preinstalled FTP client BlazeFTP with multisession and caching support. FTP (File Transfer Protocol) is a protocol designed for transmission of files indata transmission networks 110. FTP allows one to connect to FTP servers, such as theserver 102, view the contents of directories, and download files from the server or upload them to the server. The FTP client is an application for facilitating access to the FTP server. Depending on the purpose, it can provide the user with simple access to a remote FTP server in text console mode or show the files on the remote server as if they were part of the file system of the publisher'scomputer 111. - In other variant non-limiting embodiments, the
file uploading application 116 can be a web browser, such as the Yandex browser. It is important to keep in mind that any other commercially available or proprietary application can be used to realize the variant non-limiting embodiments of the present technology. - The
electronic device 112 is connected to thedata transmission network 110 via a communication line (not numbered). - Via the
data transmission network 110, theserver 102 is also connected to theclient device 122. Theclient device 122 can be associated with auser 120 of the service. Theservice user 120 is a person who is interested in using objects (including virtual ones) having spatial coordinates placed on theserver 102 by thepublisher 111 with the aid of theelectronic device 112 by uploading such objects with the aid of thefile uploading application 116 via thedata transmission network 110. As several nonlimiting examples ofservice users 120 from the set of possible examples one can mention: (a) the driver of an automobile using theclient device 122 to search for the nearest gas station on a two-dimensional map service, such as the two-dimensional Yandex Maps (realized on theserver 102 with the use of a tree of quadrants); (b) a gamer playing online in a computer game containing objects implemented with the use of three-dimensional graphics construction technology, where the three-dimensional graphics objects are saved in an n-tree 108 which is a tree of octants and kept on astorage medium 104 on theserver 102. - It should be noted that the fact that the
client device 122 is associated with theservice user 120 does not imply any specific operating mode, nor the need to access the system, to be registered, or some other way. - The non-limiting embodiments of the
client device 122 are not specifically limited, but as an example of theclient device 122 one can use personal computers (desktop computers, notebooks, netbooks, and so on), wireless communication devices (mobile telephones, smartphones, tablets, and so on), as well as network hardware (routers, switches or gateways). InFIG. 1 theclient device 122 is realized as an Apple iPhone 5S with operating system iOS 7 installed and running on it, with Bluetooth, Wi-Fi, 3G, LTE, GPS and GLONASS positioning systems. - The
client device 122 also includes astorage medium 124. In principle, this storage medium can be a medium of absolutely any type or nature, including RAM, ROM, disks (compact disks, DVD disks, diskettes, hard disks and so on), USB flash drives, solid state drives, magnetic tape drives, and so on, as well as combinations of these. In theclient device 122 represented inFIG. 1 , thestorage medium 124 is realized as a flash drive with a capacity of 16 Gb. - The
storage medium 124 can save user files and program instructions (codes). In particular, thestorage medium 124 can save the software realizing the functions of thebrowser 126. In the general case, the purpose of thebrowser 126 is to enable theservice user 120 to download files onto theclient device 122 via thedata transmission network 110 from theserver 102, and to show the downloaded images (video) on adisplay 128. The realization of thebrowser 126 is not limited in any way. As nonlimiting examples, such browsers can be the Yandex browser, Google Chrome, Internet Explorer, various mobile search applications, and so forth. In theclient device 122 thebrowser 126 is realized as a mobile Yandex browser. It is important to keep in mind that any other commercially available or proprietary application can be used to realize variant non-limiting embodiments of the present technology. - The
client device 122 also includes adisplay 128, which is a 4″ touch screen with 640×1136 resolution, allowing video information to be presented to theservice user 120, and which can also be used as an information entry device. Thus, theservice user 120 has the ability to see various objects on thedisplay 128 in the interface of thebrowser 126 of theclient device 122, such as the location of the nearest gas station on a service of two-dimensional maps (realized on theserver 102 with the use of a tree of quadrants 198), such as the two-dimensional Yandex Maps. -
FIG. 2 is a schematic representation showing the structure and components of thebinary tree 199. - The
binary tree 199 is a variety of the n-tree 108. Thebinary tree 199 is a hierarchical data structure. Thebinary tree 199 comprises a set ofelements 202 of thebinary tree 199, namely:nodes 204 of thebinary tree 199 and leaves 206 of thebinary tree 199 of different level. In the example shown inFIG. 2 , thebinary tree 199 comprises four levels ofbinary tree elements 202, namely: (a) oneelement 202 of thefirst level 299, which in the present case is thenode 204 of thebinary tree 199, (b) twoelements 202 of thesecond level 298, which in the present case are thenodes 204 of thebinary tree 199, (c) fourelements 202 of the third level 297, which in the present case are the threenodes 204 of thebinary tree 199 and oneleaf 206 of thebinary tree 199, (d) sixelements 202 of thefourth level 296, which in the present case are the six leaves 206 of thebinary tree 199. - The
first level 299 is the highest level, and theelement 202 of thefirst level 299 can be referred to as the “root element”. - The
fourth level 296, shown inFIG. 2 , is the lowest level in the given example. In other examples, the lowest level can be different (such as fifth, sixth, seventh, and so on). - The level of a “parent” element is higher than the level of a “child” element. For example, the level of the
parent element 204 of thefirst level 299 is higher than the level of thechild elements 204 of thesecond level 298; the level of bothparent elements 204 of thesecond level 298 is higher than the level of their corresponding two pairs ofchild elements 204/204 and 206/204 of the third level 297; and so on. - The
binary tree 199 is created and maintained primarily to construct and maintain spatial databases. It is used for the recursive partitioning of space into two regions. - A nonlimiting example of the use of a binary tree can be a database of IP addresses, where each IP address can be marked as a point on a line, while all IP addresses can be arranged on the given line in a definite sequence, for example, by increasing number. Accordingly, having marked a certain point on a line including IP addresses, this line can be recursively divided into two other lines, including IP addresses situated before and after the point. Several two new lines obtained as a result of the partitioning of the line can in turn be divided into subsequent two lines (two arcs, segments), and so on. As a result, the lines divided into two lines of the next level are the
nodes 204 of thebinary tree 199, and the nonpartitioned lines are theleaves 206 of thebinary tree 199. - Another nonlimiting example of the use of the
binary tree 199 can be a database of distances between various cities, where the distances between cities are arranged on a line and have certain linear coordinates. Thus, a database constructed with the use of thebinary tree 199 can map data on distances between objects situated in two-dimensional space. - Yet another nonlimiting example of the use of the 199 can be a database of distances between astronomical objects, where the distances between astronomical objects are arranged on a line and have certain linear coordinates. Thus, the database constructed with the aid of the
binary tree 199 can map data on distances between objects situated in three-dimensional space. - Yet another nonlimiting example of the use of the
binary tree 199 can be a database of frequency ranges for radio broadcasting that are assigned to different users by the government regulators on a particular territory. Thus, the database constructed with the aid of thebinary tree 199 can be used not only for pointlike objects (such as IP addresses) or hypothetically pointlike objects (such as astronomical objects), but also for other objects, such as linear objects in the form of frequency ranges. - The
binary tree 199 can have the following properties: (a) thebinary tree 199 partitions the space into lines (segments); (b) each line (segment) has a maximum capacity; when the maximum capacity is reached, the segment is divided; (c) thebinary tree 199 follows the spatial partitioning of thebinary tree 199, that is, the recursive partitioning into two regions. -
FIG. 3 is a schematic representation showing the structure and components of the tree ofquadrants 198. - The tree of
quadrants 198 is a variety of the n-tree 108. The tree ofquadrants 198 is a hierarchical data structure. The tree ofquadrants 198 comprises a set ofelements 202 of the tree ofquadrants 198, namely: thenodes 204 of the tree ofquadrants 198 and theleaves 206 of the tree ofquadrants 198 of different level. In the example shown inFIG. 3 , the tree ofquadrants 198 compriseselements 202 of five levels of the tree ofquadrants 198, namely: (a) oneelement 202 of thefirst level 299, which in the present case is thenode 204 of the tree ofquadrants 198, (b) fourelements 202 of thesecond level 298, which in the present case are threenodes 204 of the tree ofquadrants 198 and oneleaf 206 of the tree ofquadrants 198, (c) twelveelements 202 of the third level 297, which in the present case are fournodes 204 of the tree ofquadrants 198 and eightleaves 206 of the tree ofquadrants 198, (d) sixteenelements 202 of thefourth level 296, which in the present case are threenodes 204 of the tree ofquadrants 198 and thirteenleaves 206 of the tree ofquadrants 198, (e) twelveelements 202 of thefifth level 295, which in the present case are twelveleaves 206 of the tree ofquadrants 198. For clarity, thenodes 204 of the tree ofquadrants 198 are denoted inFIG. 3 as clear squares, and theleaves 206 of the tree ofquadrants 198 are denoted as filled squares. - The
first level 299 is the highest level, and theelement 202 of thefirst level 299 is the “root element”. - The
fifth level 295, shown inFIG. 3 , is the lowest level in the present example. In other examples, the lowest level might be different (such as sixth, seventh, and so on). - The level of a “parent” element is higher than the level of a “child” element.
- The tree of
quadrants 198 is created and maintained primarily to construct and maintain spatial databases. It is used for recursive partitioning of space into four regions. - A nonlimiting example of the use of the tree of
quadrants 198 can be a map service, where each object can be placed in a particular site on a two-dimensional map and be marked as a pointlike, two-dimensional, or other object. The two-dimensional map, being anelement 299 of the first level, can be recursively partitioned into fourelements 298 of the second level. Each of the fourelements 298 of the second level can comprise objects situated in one of the four quadrants of the map.Certain elements 298 obtained as a result of the partitioning of theelement 299 of first level can be partitioned in turn into another fourelements 202, and so on. As a result, the elements (quadrants) divided into four elements (quadrants) of the next level are thenodes 204 of the tree ofquadrants 198, while the nonpartitioned elements (quadrants) are theleaves 206 of the tree ofquadrants 198. - Another nonlimiting example of the use of tree of
quadrants 198 can be a database of two-dimensional objects used in computer games. - The tree of
quadrants 198 can have the following properties: (a) the tree ofquadrants 198 partitions space into quadrants; (b) each quadrant has a maximum capacity; when the maximum capacity is reached, the quadrant is divided; (c) the tree ofquadrants 198 follows the spatial partitioning of the tree ofquadrants 198, that is, the recursive partitioning into four regions. -
FIG. 4 is a schematic representation of an object in the tree ofquadrants 198. For clarity, and as a nonlimiting example, it is assumed that the tree ofquadrants 198 is a tree of quadrants for providing a geographical map service. -
FIG. 4 shows fourleaves 206 of the tree ofquadrants 198, formed by recursive partitioning of thenode 204 of the tree ofquadrants 198. All fourleaves 206 of the tree ofquadrants 198 formed by the recursive partitioning of thenode 204 of the tree ofquadrants 198 have theboundaries 302 of the elements of the n-tree (in the present case, the boundaries of theleaves 206 of the tree of quadrants 198). -
FIG. 4 also shows aspatial object 304. For clarity, and as a nonlimiting example, we assume that this object is a population center on a map, while theboundary 308 of thisobject 304 is the boundaries of the population center. This object is saved in anelement 202 of the tree ofquadrants 198 as a tag, containing the coordinates, the size and the boundaries of the population center. The tag is connected to an external database, where the name of the population center is kept. - The
object 304, as can be seen inFIG. 4 , is situated at the same time on a territory mapped in two quadrants, namely, the quadrant with angles ABCD, and the quadrant with angles CGHD. Thus, theboundary 308 of theobject 304 intersects the boundary DC of the quadrants ABCD and CGHD. - According to certain embodiments of the present technology, the
object 304 can be logically placed in only oneelement 202 of the tree ofquadrants 198. As such, let us assume that the elements of the tree of quadrants of higher level than the node of the tree of quadrants shown inFIG. 4 , for certain reasons, are not suitable to containing the object 304 (for example, they are entirely filled and cannot hold any new objects). In this case, the need arises to determine on the given level the most suitable element of the tree of quadrants to contain theobject 304. In one variant, the determining the most suitable element of the tree ofquadrants 198 to hold theobject 304 is done by determining thecenter 306 of theobject 304. As we see inFIG. 4 , thecenter 306 of theobject 304 is territorially located within the limits of theleaf 206 with vertices at points ABCD. Based on this, the most suitable quadrant to contain theobject 304 will be the quadrant in whose limits thecenter 306 of theobject 304 is found, that is, the quadrant ABCD. Theobject 304 will be placed in the quadrant ABCD, and not in the quadrant CGHD. - Unlike certain known solutions calling for a division of objects intersected by the boundaries of elements of the n-tree (including the boundaries of elements of the tree of quadrants), no division of the object is done in the present solution, but rather the entire object is accommodated entirely in a single quadrant.
- Unlike certain existing solutions which call for simultaneously increasing the elements of an n-tree (including the elements of the tree of quadrants) in different directions in order to contain a nonfragmented object, there is no increasing of the elements of an n-tree (including the elements of the tree of quadrants) in different directions in the present solution.
- According to variant non-limiting embodiments, in order to include a nonfragmented object in an element of the n-tree (in the present example, an element of the tree of quadrants), an artificial increasing of the size of the most suitable element of the n-tree (in the present example, the element of the tree of quadrants) is done by adding to it a zone of presence of the object CEFD, wherein the boundary of the zone of presence of the object FE is distant from the intersected boundary DC of the most suitable element ABCD by the
maximum extent 310 of projection (protrusion) of theobject 304 beyond the boundary DC of the most suitable element ABCD. - Generally speaking, the practical value of adding the zone of presence of the
object 309 consists in the fact that the zone of presence of theobject 309 is an indicator that the search should be done not only in the quadrant corresponding to the point selected by theuser 120, but also in the contiguous neighboring quadrant. - According to the present specification, the increasing of the size of the most suitable element of the n-tree can be artificial, i.e., the increasing is not done by directly increasing the element, but by adding a certain marker to the element, indicating that one needs to consider neighboring elements, elements of higher and lower level. The neighboring elements can contain information about the sought object.
- As a clear but nonlimiting example, let us imagine that the
parent node 204 shown inFIG. 4 is a fragment of a geographical map. Theparent node 204 is a fragment of a geographical map. Theparent node 204 is completely full and cannot accommodate theobject 304. Theparent node 204 is recursively partitioned into fourleaves 206, each of theleaves 206 being smaller and more detailed fragments of the geographical map. The map is shown on thedisplay 128 of aclient device 122 in the user's interface. Theservice user 120 clicks on the computer menu at point 312. Even though the point 312 is situated in element DCGH and outside of element ABCD, the point 312 is situated in the zone of presence of theobject 309, being a continuation of the element ABCD. Thus, responsive to the requesting of a certain object by theuser 120, theserver 102 presents theuser 120 with not only the objects saved in the element DCGH, but also the objects saved in the element ABCD. - Exactly the same result would have been obtained if the
user 120 had clicked on the computer menu atpoint 314, sincepoint 314 although outside the limits of theobject 304 is still in the limits of the zone of presence of theobject 309. A clicking in the limits of the zone 309 (the zone DCEF) indicates that the search should be done not only in the element DCGH, but also in the element ABCD, to which the zone of presence of the object DCEF belongs. -
FIG. 5 presents themethod 400 which is carried out according to variant non-limiting embodiments of the present technology. In the variant non-limiting embodiments, themethod 400 can be performed on theserver 102 shown inFIG. 1 . For this, theserver 102 includes astorage medium 104 which saves machine-readable instructions (codes) which, when executed, theserver 102 performs the steps of themethod 400. - Step 402—Obtaining from the Computer Memory an
Object 304 Suitable for Placement in the Tree ofQuadrants 198. - The
method 400 starts atstep 402, in which theserver 102 obtains from the computer memory anobject 304 for placement in the tree ofquadrants 198. The computer can be aserver 102 or a group of servers carrying out the functions of theserver 102. - As nonlimiting examples, the
object 303 for placement in the tree of quadrants can be a pointlike object, a two-dimensional object, or other objects. - The
object 304 can have been uploaded in advance by thepublisher 111 with the help of thefile uploading application 116, using theelectronic device 112, via thedata transmission network 110 into the computer memory, where the computer memory can be astorage medium 104 of theserver 102. - The
method 400 then continues on to performstep 404. - Step 404—Determining the Most
Suitable Element 202 of the Tree ofQuadrants 198 to Contain theObject 304. - Next, in
step 404, theserver 102 determines the mostsuitable element 202 of the tree ofquadrants 198 to contain theobject 304. - The
element 202 of the tree ofquadrants 198 is an element of a hierarchical data structure. Theelements 202 of the tree ofquadrants 198 are thenodes 204 of the tree ofquadrants 198 and theleaves 206 of the tree ofquadrants 198 of different level. The number of levels may vary. For example, the number of levels of the tree ofquadrants 198 shown inFIG. 3 is equal to five. - The
leaf 206 of the tree ofquadrants 198 is anelement 202 of the tree ofquadrants 198 which saves information about objects not have “descendants”. The key of the leaf of the tree of quadrants consists of two components (for the coordinates x and y). - The
node 204 of the tree ofquadrants 198 is anelement 202 of the tree ofquadrants 198 which saves information about objects and having four descendants. The key of the node consists of two components (for the coordinates x and y). The descendants of thenode 204 of the tree ofquadrants 198 can benodes 204 of the next level of the tree ofquadrants 198, or leaves 206 of the next level of the tree ofquadrants 198, ornodes 204 of the next level of the tree ofquadrants 198 and leaves 206 of the next level of the tree ofquadrants 198. - In accordance with certain variants, the
object 304 can be contained only in oneelement 202 of the tree ofquadrants 198. Usually the mostsuitable element 202 of the tree ofquadrants 198 to contain theobject 304 is anelement 202 which is an element of the lowest level able to contain theobject 304 without fragmentation. Thus, in regard toFIG. 4 , the mostsuitable element 202 to contain theobject 304 might be thenode 204 of the tree ofquadrants 198. - However, in certain variants, the maximum permissible quantity of
objects 304 arranged in oneelement 202 of the tree ofquadrants 199 may be predetermined. In such a case, the method may additionally include determining the quantity ofobjects 304 already contained at the present time in theelement 202 of the tree ofquadrants 198. Thus, theelement 202 which is an element of the lowest level which is able to contain theobject 304 without fragmentation may prove to be unsuitable to contain the object in the event that the maximum permissible quantity ofobjects 304 situated in this high-level element 202 is already reached. - In such a case, the method may additionally include the creation of four quadrants of the next lower level, as shown in
FIG. 4 . Thus,FIG. 4 shows the recursive partitioning of a node (quadrant) 204 into four leaves (quadrants) 206. - The procedure for determining the most
suitable element 202 then continues. In different variant non-limiting embodiments, the procedure for determining the mostsuitable element 202 may be done either (i) with repartitioning of theobjects 304 between theelements 202 of different levels, and (ii) without such a repartitioning. - When the procedure of determining the most
suitable element 202 is done with repartitioning of theobjects 304 between theelements 202 of different levels, such a repartitioning can be done between theparent node 204 of the tree of quadrants and the four child elements 202 (in the present instance, the four leaves 206) of the tree of quadrants. - In certain variant non-limiting embodiments, the repartitioning can take into account the sizes of the objects.
- As a non-limiting example, let us assume that an object of smaller size than the
new object 304 being accommodated was found in theparent node 204, and this object of smaller size is within the limits of the territory denoted by the points ABCD shown inFIG. 4 . Let us further assume that this previously accommodated object of smaller size is capable of being placed in the quadrant denoted by the points ABCD without intersecting theboundaries 302 of the corresponding child quadrant. Thus, the shifting of this object of smaller size to the child quadrant ABCD frees up space for thenew object 304 being accommodated in theparent quadrant 204. Such a repartitioning is advantageous from the standpoint of resource economy, since it lets us place both objects in the mostsuitable elements 202 of the tree ofquadrants 198 with minimum expenditure of resources, avoiding a manipulating of theelements 202. - It should be noted that the repartitioning of objects can be done not only when adding a
new object 304, but also when moving around in space the objects already placed in theelements 202 of the tree of quadrants, which may entail a moving of an object from oneelement 202 to anotherelement 202. Moreover, the repartitioning of objects can occur in event of elimination of objects. Thus, for example, when eliminating a row of closely arranged objects in a two-dimensional computer game, the number of objects may be reduced so much that it may result in the elimination of the four child leaves 206 of the tree ofquadrants 198, since the sum of the objects in thesame parent node 204 and all four child leaves 206, taken together, does not exceed the maximum permissible quantity ofobjects 304 of theparent node 204. Thus, theparent node 204 is transformed into a leaf 206 (of the same level where it was before, when a node 204), and all theobjects 304 are repartitioned from theempty child nodes 206 to the parent quadrant (theformer node 204, now aleaf 206 of the same level as the former node 204). - Resuming the description of
step 404, in certain variants there is no repartitioning of objects between theelements 202, or the repartitioning of the objects between the elements cannot accommodate all the objects (the new object being accommodated and at least one repartitioned object), so that none of them intersects the boundaries of thecorresponding elements 202. In this case, the mostsuitable element 202 may be theelement 202 whoseboundary 302 will still be intersected by theboundary 308 of theobject 304. In such cases, the determining the mostsuitable element 202 of the tree ofquadrants 198 to contain theobject 304 is done by determining thecenter 306 of theobject 304. Thecenter 306 of theobject 304 is defined mathematically as the locus at identical distance from the edges (ends) of the object. Placing theobject 304 in theelement 202 of the tree ofquadrants 198 by the location of thecenter 306 of theobject 304 in fact results in selecting as the mostsuitable element 202 of the tree ofquadrants 198 to contain theobject 304 theelement 202 of the tree ofquadrants 198 that will have the least increase in area after artificial increasing of its size by adding to it the zone of presence of theobject 309. In other variant non-limiting embodiments, the mostsuitable element 202 of the tree ofquadrants 198 to contain theobject 304 is chosen to be theelement 202 of the tree ofquadrants 198 that will have an increase in area, after the artificial increasing of its size by adding to it the zone of presence of theobject 309, within the bounds of a predetermined limit. - As can be seen in
FIG. 4 , thecenter 306 of theobject 304 is within the bounds of theleaf 206 of the tree ofquadrants 198 with vertices at points ABCD. Thus, the mostsuitable element 202 of the tree ofquadrants 198 to contain theobject 304 in this embodiment is theleaf 206 of the tree ofquadrants 198 with vertices at points ABCD. - The
method 400 then continues on to step 406. - Step 406—Determining Whether the Boundaries of the
Object 304 Exceed the Boundaries of the MostSuitable Element 202 of the Tree ofQuadrants 198. - Since the quadrants of the next level were created by recursive partitioning of the
node 204 of the tree ofquadrants 198 into four parts, it may happen that theobject 304 will not fit entirely into one particular newly created element of the tree of quadrants. Consequently, instep 406, theserver 102 determines whether the boundaries of theobject 304 go beyond the boundaries of the mostsuitable element 202 of the tree ofquadrants 198. The determination is done by comparing the location, the shape and the size of theobject 304 with the boundaries of theelement 202 of the tree ofquadrants 198 within which thecenter 306 of theobject 304 is situated. - In the case when the boundaries of the
object 304 do not go beyond the boundaries of the mostsuitable element 202 of the tree ofquadrants 198, the method is finished. - As an example, let us assume that the partitioning of the
object 304 was done without the procedure for repartitioning of objects between theelements 202 of different levels, and that the size and location of theobject 304 are such that the boundaries of theobject 304 go beyond the boundaries of the mostsuitable element 202 of the tree of quadrants 198 (this situation is shown inFIG. 4 ). - In the case when the boundaries of the
object 304 go beyond the boundaries of the mostsuitable element 202 of the tree ofquadrants 198, the method continues to step 408. - Step 408—Determining the
Boundary 302 of the MostSuitable Element 202 of the Tree ofQuadrants 198 that Will be Intersected by theBoundary 308 of theObject 304 when theObject 304 is Placed in this MostSuitable Element 202 of the Tree ofQuadrants 198. - In
step 408, theserver 102 determines whichboundary 302 of the mostsuitable element 202 of the tree ofquadrants 198 will be intersected by theboundary 308 of theobject 304 when theobject 304 is placed in this mostsuitable element 202 of the tree ofquadrants 198. The determination is done by comparing the location, the shape and the size of theobject 304 with the boundaries of theelement 202 of the tree ofquadrants 198 within which thecenter 306 of theobject 304 is situated. - In the example shown in
FIG. 4 , theserver 102 determines that after the recursive partitioning of thenode 204 into fourleaves 206, theobject 304 is primarily located on the territory of theleaf 206 of the tree of quadrants with vertices at points ABCD, but it intersects the boundary CD betweenleaf 206 of the tree of quadrants with vertices at points ABCD and theleaf 206 of the tree of quadrants with vertices at points CGHD. - The
method 400 then continues to step 410. - Step 410—Artificial Increasing of the Size of the Most
Suitable Element 202 of the Tree ofQuadrants 198 by Adding to it the Zone ofPresence 309 of theObject 304. - In
step 410, theserver 102 makes an artificial increasing of the size of the mostsuitable element 202 of the tree ofquadrants 198 by adding to it the zone ofpresence 309 of theobject 304. The artificial increasing of the size of the mostsuitable element 202 of the tree ofquadrants 198 by adding to it the zone ofpresence 309 of theobject 304 is done such that the boundary of the zone of presence of the object is distant from theboundary 302 of the mostsuitable element 304 of the tree ofquadrants 198 by themaximum value 310 of the projection of theobject 304 beyond the boundaries of the mostsuitable element 302 of the tree ofquadrants 198. - Thus, the zone of
presence 309 of theobject 304 can be defined as the rectangle or square where the intersected boundary of the mostsuitable element 202 of the tree ofquadrants 198 and the boundary of the zone of presence of the object are opposite parallel segments in the rectangle or square, and the lateral sides of the zone ofpresence 309 of theobject 304 are parallel segments joining the corresponding end points of the intersected boundary of the mostsuitable element 202 of the tree ofquadrants 198 and the boundary of the zone of presence of the object. - Thus, in the example shown in
FIG. 4 , the zone ofpresence 309 of theobject 304 is a rectangle with vertices at points CEFD. The intersected boundary is defined as the segment CD, the boundary of the zone of presence of the object is defined as the segment EF, parallel to the segment CD, and the lateral sides of the zone ofpresence 309 of theobject 304 are the parallel segments CE and FD. The boundary of the zone of presence of the object EF is distant from the intersected boundary CD by themaximum value 310 of projection (protrusion) of theobject 304 beyond the bounds of the mostsuitable element 302 of the tree ofquadrants 198. - In another example, shown in
FIG. 6 , the zone ofpresence 309 of theobject 304 is a rectangle with vertices at points BIJC. The intersected boundary is defined as the segment BC, the boundary of the zone of presence of the object is defined as the segment IJ, parallel to the segment BC, and the lateral sides of the zone ofpresence 309 of theobject 304 are the parallel segments BI and JC. The boundary of the zone of presence of the object IJ is distant from the intersected boundary BC by themaximum value 310 of the projection of theobject 304 beyond the bounds of the mostsuitable element 302 of the tree ofquadrants 198. - As can be seen by comparing
FIG. 4 andFIG. 6 , the zone ofpresence 309 of theobject 304, increasing the size of theelement 202 of the tree of quadrants (in the present case, the quadrant with vertices at points ABCD), can at least partly overlap anotherelement 202 of the same level (as shown inFIG. 4 ), or the zone ofpresence 309 of theobject 304, increasing the size of theelement 202 of the tree of quadrants (in the present case, the quadrant with vertices at points ABCD), can at least partly extend beyond the limits of the preceding element 202 (in the present case, the limits of thenode 204, as is shown inFIG. 6 ). - The
method 400 is then finished. -
FIG. 7 shows a method 600 which is carried out in accordance with not limiting variant non-limiting embodiments of the present technology. In the variant non-limiting embodiments, the method 600 can be performed on theserver 102 shown inFIG. 1 . For this, theserver 102 includes astorage medium 104 which saves machine-readable instructions (codes) which when executed theserver 102 performs the steps of the method 600. The method 600 is a continuation of themethod 400, shown in the block diagram ofFIG. 5 . - Step 602—Obtaining a
User Request 120 to Provide anObject 304 Associated with anElement 202 of the Tree ofQuadrants 198 - The method 600 starts with
step 602, in which theserver 102 receives auser request 120 to provide anobject 304 associated with anelement 202 of the tree ofquadrants 198. Theuser request 120 can be made via the user's computer interface, for example, via the user'sbrowser interface 126 of theclient device 122, connected to theserver 102 via thedata transmission network 110. - The request can be made by the
user 120 by selecting a fragment of space shown on thedisplay 128 of theclient device 122 during abrowser session 126. As a graphic but not limiting example, on thedisplay 128 there might be shown a two-dimensional geographical map, provided by the Yandex Maps service. To select the fragment of space, theuser 120 can click with the mouse in a region of theobject 304 shown on the map. The coordinates of the selected point on the user's interface are transmitted from theclient device 122 via thedata transmission network 110 to theserver 102. - The method 600 then continues to step 604.
- Step 604—Search by the
Server 102 for theObject 304 in the Tree ofQuadrants 198. - In
step 604, theserver 102 makes a search for theobject 304. Recalling that in the indicated example the soughtobject 304 is a city, theobject 304 is saved in the mostsuitable element 202 of the tree ofquadrants 198. - In order to find the
element 304, theserver 102 determines theelement 202 of the tree ofquadrants 198 to which the point corresponds that was selected by theuser 120 in the user's computer interface, and selects theobjects 304 situated in thatelement 202 of the tree of quadrants. - It should be kept in mind that the point selected by the
user 120 may correspond to a set ofelements 202 of the tree ofquadrants 198 of different levels. For example, if the lower level of the tree of quadrants at the given point is an element of the fourth level, then the selected point may correspond to four different quadrants (that is, one quadrant for each of the first, second, third and fourth levels). Accordingly, theserver 102 selects allobjects 304 situated in all thoseelements 202 of the tree ofquadrants 198. - In order to find the
element 304, theserver 102 likewise determines whether any zone of presence of theobject 309 corresponds to the point selected by theuser 120 in the computer's interface. If the server determines that a zone of presence of theobject 309 corresponds to the point selected by theuser 120, theserver 102 will also additionally select theobjects 304 from the neighboringelement 202 of the tree ofquadrants 199 that was increased by the zone of presence of theobject 309. In other words, the zone of presence of theobject 309 is an indicator that the search should be done not only in the quadrants corresponding to the selected point, but also in the adjacent neighboring quadrant. - It should be noted that the point selected by the
user 120 may correspond to several zones of presence ofobjects 309. In such a case, theserver 102 also additionally selectsobjects 304 from all correspondingneighboring elements 202 of the tree ofquadrants 199. - The method 600 then continues to step 606.
- Step 606—Presenting to the
User 120 theObject 304 Associated with theElement 202 of the Tree ofQuadrants 198. - In
step 606, theserver 102 presents to theuser 120 theobject 304 found in the tree of quadrants, as was shown above. In the event that theserver 102 has found a set ofobjects 304, all theseobjects 304 are presented. - In certain variant non-limiting embodiments, the user can shorten or increase the number of
objects 304 presented to him by map zoom in or zoom out, thereby telling theserver 102 that theuser 102 is interested in obtainingobjects 304 situated inelements 202 of a particular level and lower levels, thereby cutting out large objects situated in elements of higher level. As a graphic example, a country may be presented in theelements 202 of higher order, and population centers in theelements 202 of lower level, and buildings inelements 202 of even lower level. - The
objects 304 can be presented by theserver 102 via thedata transmission network 110 to theclient device 122 for viewing in the user's interface during thebrowser session 126.
Claims (49)
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
RU2014137333A RU2610587C2 (en) | 2014-09-16 | 2014-09-16 | Method of spatial object storage by means of flexible hierarchical structure and a permanent data medium |
RU2014137333 | 2014-09-16 | ||
PCT/IB2014/065793 WO2016042368A1 (en) | 2014-09-16 | 2014-11-04 | Method of spatial storage of an object by means of a flexible hierarchical structure, and a permanent storage medium |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/IB2014/065793 Continuation WO2016042368A1 (en) | 2014-09-16 | 2014-11-04 | Method of spatial storage of an object by means of a flexible hierarchical structure, and a permanent storage medium |
Publications (2)
Publication Number | Publication Date |
---|---|
US20160078074A1 true US20160078074A1 (en) | 2016-03-17 |
US9519667B2 US9519667B2 (en) | 2016-12-13 |
Family
ID=55532614
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US14/703,257 Active US9519667B2 (en) | 2014-09-16 | 2015-05-04 | Method of spatial storage of an object by means of a flexible hierarchical structure, and a non-transient storage medium |
Country Status (3)
Country | Link |
---|---|
US (1) | US9519667B2 (en) |
RU (1) | RU2610587C2 (en) |
WO (1) | WO2016042368A1 (en) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20190122427A1 (en) * | 2016-07-26 | 2019-04-25 | Hewlett-Packard Development Company, L.P. | Indexing voxels for 3d printing |
US20220292708A1 (en) * | 2019-08-26 | 2022-09-15 | Kawasaki Jukogyo Kabushiki Kaisha | Information processing device, setting apparatus, image recognition system, robot system, setting method, learning device, and method of generating learned model |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
RU2679173C1 (en) * | 2017-10-13 | 2019-02-06 | Федеральное государственное казенное военное образовательное учреждение высшего образования "Академия Федеральной службы охраны Российской Федерации" (Академия ФСО России) | Method of dynamic visualization of geographic and heterogeneous information in a geographic information system and a computer-readable medium |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20050144196A1 (en) * | 2003-11-21 | 2005-06-30 | Jan Kok | Computer memory for storing an n-dimensional object |
US20130138682A1 (en) * | 2011-11-29 | 2013-05-30 | Oracle International Corporation | Hierarchical grid for spatial querying |
Family Cites Families (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5461712A (en) * | 1994-04-18 | 1995-10-24 | International Business Machines Corporation | Quadrant-based two-dimensional memory manager |
US6895104B2 (en) * | 2001-02-16 | 2005-05-17 | Sac Technologies, Inc. | Image identification system |
US7002571B2 (en) * | 2002-06-04 | 2006-02-21 | Intel Corporation | Grid-based loose octree for spatial partitioning |
US8169434B2 (en) * | 2008-09-29 | 2012-05-01 | Microsoft Corporation | Octree construction on graphics processing units |
US8732139B2 (en) * | 2008-12-18 | 2014-05-20 | Sap Ag | Method and system for dynamically partitioning very large database indices on write-once tables |
GB0900700D0 (en) * | 2009-01-15 | 2009-03-04 | Advanced Risc Mach Ltd | Methods of and apparatus for processing graphics |
US9047175B2 (en) * | 2010-05-19 | 2015-06-02 | Gandhi Kamlesh | System and method for storing and modifying data objects |
US20130046793A1 (en) * | 2011-08-19 | 2013-02-21 | Qualcomm Incorporated | Fast matching of image features using multi-dimensional tree data structures |
US9529835B2 (en) * | 2014-02-28 | 2016-12-27 | Red Hat Israel, Ltd. | Online compression for limited sequence length radix tree |
US20150293971A1 (en) * | 2014-04-10 | 2015-10-15 | Spacecurve, Inc. | Distributed queries over geometric objects |
-
2014
- 2014-09-16 RU RU2014137333A patent/RU2610587C2/en active IP Right Revival
- 2014-11-04 WO PCT/IB2014/065793 patent/WO2016042368A1/en active Application Filing
-
2015
- 2015-05-04 US US14/703,257 patent/US9519667B2/en active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20050144196A1 (en) * | 2003-11-21 | 2005-06-30 | Jan Kok | Computer memory for storing an n-dimensional object |
US20130138682A1 (en) * | 2011-11-29 | 2013-05-30 | Oracle International Corporation | Hierarchical grid for spatial querying |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20190122427A1 (en) * | 2016-07-26 | 2019-04-25 | Hewlett-Packard Development Company, L.P. | Indexing voxels for 3d printing |
US10839598B2 (en) * | 2016-07-26 | 2020-11-17 | Hewlett-Packard Development Company, L.P. | Indexing voxels for 3D printing |
US20220292708A1 (en) * | 2019-08-26 | 2022-09-15 | Kawasaki Jukogyo Kabushiki Kaisha | Information processing device, setting apparatus, image recognition system, robot system, setting method, learning device, and method of generating learned model |
US12293536B2 (en) * | 2019-08-26 | 2025-05-06 | Kawasaki Jukogyo Kabushiki Kaisha | Information processing device, setting apparatus, image recognition system, robot system, setting method, learning device, and method of generating learned model |
Also Published As
Publication number | Publication date |
---|---|
WO2016042368A1 (en) | 2016-03-24 |
RU2610587C2 (en) | 2017-02-13 |
US9519667B2 (en) | 2016-12-13 |
RU2014137333A (en) | 2016-04-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8352480B2 (en) | Methods, apparatuses and computer program products for converting a geographical database into a map tile database | |
KR102196401B1 (en) | Electronic map interface | |
CN103927933B (en) | A kind of magnanimity moves method and the device that target renders | |
TWI500905B (en) | Method , computer-readable storage medium and computing device for 3d layering of map metadata | |
CN108731692B (en) | Apparatus and method for providing map data and system thereof | |
EP3175331B1 (en) | Presenting hierarchies of map data at different zoom levels | |
WO2009137967A1 (en) | Provisioning a geographical image for retrieval | |
US20240200965A1 (en) | Dynamic scaling of geospatial data on maps | |
US9355484B2 (en) | System and method of tile management | |
US20130159825A1 (en) | Search results with maps | |
US8996551B2 (en) | Managing geographic region information | |
EP3410315B1 (en) | Systems and methods for using tiled data | |
WO2019137369A1 (en) | Poi retrieving method and device based on geographic locations | |
US9519667B2 (en) | Method of spatial storage of an object by means of a flexible hierarchical structure, and a non-transient storage medium | |
KR101756802B1 (en) | Method of providing 3d gis web service | |
US10318504B2 (en) | Apparatus and method for processing map data by real-time index creation and system thereof | |
KR20060095444A (en) | Entity search system | |
KR102136855B1 (en) | Method and apparatus for providing street view, and computer program for executing the method | |
CN112632338B (en) | Point cloud data retrieval method, device, equipment and storage medium | |
JP5959478B2 (en) | Determination device, determination method, determination program, and map display system | |
US10713795B2 (en) | Method and electronic device for generating an index of segments of polygons | |
KR102713877B1 (en) | Method for structuring system using 1m grid unit Address of Thing(AoT) | |
KR102091172B1 (en) | Method and apparatus for providing street view | |
JP2005338496A (en) | Display system of map or the like adopting method for quickly retrieving two-dimensional space data | |
KR101877739B1 (en) | Method of providing 3d gis web service |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
AS | Assignment |
Owner name: YANDEX EUROPE AG, SWITZERLAND Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:YANDEX LLC;REEL/FRAME:035584/0437 Effective date: 20140915 Owner name: YANDEX LLC, RUSSIAN FEDERATION Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:KORZUNOV, ANTON VASILYEVICH;REEL/FRAME:035603/0330 Effective date: 20140915 |
|
STCF | Information on status: patent grant |
Free format text: PATENTED CASE |
|
MAFP | Maintenance fee payment |
Free format text: PAYMENT OF MAINTENANCE FEE, 4TH YEAR, LARGE ENTITY (ORIGINAL EVENT CODE: M1551); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY Year of fee payment: 4 |
|
AS | Assignment |
Owner name: DIRECT CURSUS TECHNOLOGY L.L.C, UNITED ARAB EMIRATES Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:YANDEX EUROPE AG;REEL/FRAME:065692/0720 Effective date: 20230912 |
|
MAFP | Maintenance fee payment |
Free format text: PAYMENT OF MAINTENANCE FEE, 8TH YEAR, LARGE ENTITY (ORIGINAL EVENT CODE: M1552); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY Year of fee payment: 8 |
|
AS | Assignment |
Owner name: Y.E. HUB ARMENIA LLC, ARMENIA Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:DIRECT CURSUS TECHNOLOGY L.L.C;REEL/FRAME:068524/0925 Effective date: 20240721 |