METHOD OF AND SYSTEM FOR STORING TWO-DIMENSIONAL OBJECTS
20170249531 · 2017-08-31
Assignee
Inventors
Cpc classification
G06T3/20
PHYSICS
G09G1/08
PHYSICS
G06T3/40
PHYSICS
G09G1/14
PHYSICS
International classification
G09G1/08
PHYSICS
G06T3/40
PHYSICS
G09G1/14
PHYSICS
Abstract
A system for and method of storing two two-dimensional objects on an information storage medium, the method comprising: acquiring a first two-dimensional object and a second, a first perimeter of the first two-dimensional object comprising a first perimeter portion and a second perimeter portion, and the second two-dimensional object comprising the second perimeter portion and a third perimeter portion; storing, on the information storage medium, the first perimeter as storing the first and the second perimeter portions; storing, on the information storage medium, the second perimeter as storing the third perimeter portion and storing a reference to the second perimeter portion.
Claims
1. A method of storing at least two two-dimensional objects on an information storage medium, the method executed on a computing device, the computing device having access to the information storage medium, the method comprising: acquiring a first two-dimensional object to be stored on the information storage medium, a first perimeter of the first two-dimensional object comprising a first perimeter portion and a second perimeter portion; storing, on the information storage medium, the first perimeter as: (i) storing the first perimeter portion as a first line, connecting two extreme points of the first perimeter portion, wherein a first extreme point of the first perimeter portion is stored as a start extreme point of the first perimeter portion, and a second extreme point of the first perimeter portion is stored as an end extreme point the first perimeter portion, (ii) storing the second perimeter portion of the first perimeter as a second line, connecting two extreme points of the second perimeter portion, wherein a first extreme point of the second perimeter portion is stored as a start extreme point of the second perimeter portion, and a second extreme point of the second perimeter portion is stored as an end extreme point of the second perimeter portion, the end extreme point the first perimeter portion being the start extreme point of the second perimeter portion; and acquiring a second two-dimensional object to be stored on the information storage medium, a second perimeter of the second two-dimensional object comprising the second perimeter portion and a third perimeter portion, the second perimeter portion being a first common perimeter portion of the first two-dimensional object and of the second two-dimensional object; verifying logical hierarchy of the second two-dimensional object and the first two-dimensional object, and (i) responsive to the second two-dimensional object being encompassed by the first two-dimensional object, storing, on the information storage medium, the second perimeter as: storing the third perimeter portion as a third line, connecting two extreme points of the third perimeter portion, wherein a first extreme point of the third perimeter portion is stored as a start extreme point of the third perimeter portion, and wherein a second extreme point of the third perimeter portion is stored as an end extreme point of the third perimeter portion, and storing a reference to the second perimeter portion of the first perimeter; (ii) responsive to the second two-dimensional object and the first two-dimensional object being neighboring two-dimensional objects, storing, on the information storage medium, the second perimeter as: storing the third perimeter portion as a third line, connecting two extreme points of the third perimeter portion, wherein a first extreme point of the third perimeter portion is stored as a start extreme point of the third perimeter portion, and wherein a second extreme point of the third perimeter portion is stored as an end extreme point of the third perimeter portion, and storing a reference to the second perimeter portion of the first perimeter, the reference including an instruction to interpret the start extreme point of the second perimeter portion of the first perimeter as an end extreme point of the second perimeter portion of the second perimeter, and to interpret the end extreme point of the second perimeter portion of the first perimeter as a start extreme point of the second perimeter portion of the second perimeter.
2. The method of claim 1, wherein extreme points of a respective perimeter are connected by respective lines in a first selected rotational direction, starting from an extreme point and finishing by the same extreme point, and wherein the first rotational direction is selected from: (a) a clockwise direction and (b) a counter-clockwise direction.
3. The method of claim 1, wherein at least one of (a) the first two-dimensional object and (b) the second two-dimensional object is a polygonal object.
4. The method of claim 1, wherein each of the first two-dimensional object and the second two-dimensional object is a part of a plurality of two-dimensional objects, and wherein the plurality of two two-dimensional objects is a plurality of map objects.
5. The method of claim 1, wherein storing, on the information storage medium, at least one, selected from: the first perimeter portion, the second perimeter portion, and the third perimeter portion, is storing in an at least one database.
6. The method of claim 1, wherein acquiring at least one selected from: the first two-dimensional object and the second two-dimensional object is converting the corresponding at least one selected from: first two-dimensional object and the second two-dimensional object from raster format of representation into a vector format of representation.
7. A server comprising: an information storage medium; a processor operationally connected to the information storage medium, the processor configured to store objects, on the information storage medium, the processor being further configured to: acquire a first two-dimensional object to be stored on the information storage medium, a first perimeter of the first two-dimensional object comprising a first perimeter portion and a second perimeter portion; store, on the information storage medium, the first perimeter by: (i) storing the first perimeter portion as a first line, connecting two extreme points of the first perimeter portion, wherein a first extreme point of the first perimeter portion is stored as a start extreme point of the first perimeter portion, and a second extreme point of the first perimeter portion is stored as an end extreme point the first perimeter portion, (ii) storing the second perimeter portion of the first perimeter as a second line, connecting two extreme points of the second perimeter portion, wherein a first extreme point of the second perimeter portion is stored as a start extreme point of the second perimeter portion, and a second extreme point of the second perimeter portion is stored as an end extreme point of the second perimeter portion, the end extreme point the first perimeter portion being the start extreme point of the second perimeter portion; and acquire a second two-dimensional object to be stored on the information storage medium, a second perimeter of the second two-dimensional object comprising the second perimeter portion and a third perimeter portion, the second perimeter portion being a first common perimeter portion of the first two-dimensional object and of the second two-dimensional object; verify logical hierarchy of the second two-dimensional object and the first two-dimensional object, and (i) responsive to the second two-dimensional object being encompassed by the first two-dimensional object, store, on the information storage medium, the second perimeter by: storing the third perimeter portion as a third line, connecting two extreme points of the third perimeter portion, wherein a first extreme point of the third perimeter portion is stored as a start extreme point of the third perimeter portion, and wherein a second extreme point of the third perimeter portion is stored as an end extreme point of the third perimeter portion, and storing a reference to the second perimeter portion of the first perimeter; (ii) responsive to the second two-dimensional object and the first two-dimensional object being neighboring two-dimensional objects, store, on the information storage medium, the second perimeter by: storing the third perimeter portion as a third line, connecting two extreme points of the third perimeter portion, wherein a first extreme point of the third perimeter portion is stored as a start extreme point of the third perimeter portion, and wherein a second extreme point of the third perimeter portion is stored as an end extreme point of the third perimeter portion, and by storing a reference to the second perimeter portion of the first perimeter, the reference including an instruction to interpret the start extreme point of the second perimeter portion of the first perimeter as an end extreme point of the second perimeter portion of the second perimeter, and to interpret the end extreme point of the second perimeter portion of the first perimeter as a start extreme point of the second perimeter portion of the second perimeter.
8. The server of claim 7, wherein extreme points of a respective perimeter are connected by respective lines in a first selected rotational direction, starting from an extreme point and finishing by the same extreme point, and wherein the first rotational direction is selected from: (a) a clockwise direction and (b) a counter-clockwise direction.
9. The server of claim 7, wherein at least one of (a) the first two-dimensional object and (b) the second two-dimensional object is a polygonal object.
10. The server of claim 7, wherein each of the first two-dimensional object and the second two-dimensional object is a part of a plurality of two-dimensional objects, and wherein the plurality of two two-dimensional objects is a plurality of map objects.
11. The server of claim 7, wherein storing, on the information storage medium, at least one, selected from: the first perimeter portion, the second perimeter portion, and the third perimeter portion, is storing in an at least one database.
12. The server of claim 7, wherein acquiring at least one selected from: the first two-dimensional object and the second two-dimensional object is converting the corresponding at least one selected from: first two-dimensional object and the second two-dimensional object from raster format of representation into a vector format of representation.
Description
BRIEF DESCRIPTION OF THE DRAWINGS
[0045] For a better understanding of the present technology, as well as other aspects and further features thereof, reference is made to the following description which is to be used in conjunction with the accompanying drawings, where:
[0046]
[0047]
[0048]
[0049]
[0050]
[0051]
[0052]
[0053]
[0054]
[0055]
[0056]
[0057]
[0058]
DETAILED DESCRIPTION
[0059] Referring to
[0060] System 100 includes a server 102. The server 102 may be implemented as a conventional computer server. In an example of an embodiment of the present technology, the server 102 may be implemented as a Dell™ PowerEdge™ Server running the Microsoft™ Windows Server™ operating system. Needless to say, the server 102 may be implemented in any other suitable hardware and/or software and/or firmware or a combination thereof. In the depicted non-limiting embodiment of present technology, the server 102 is a single server. In alternative non-limiting embodiments of the present technology, the functionality of the server 102 may be distributed and may be implemented via multiple servers.
[0061] In some implementations of the present technology, the server 102 can be under control and/or management of a map service provider, for example, provider of Maps.Yandex™. In alternative implementations the server 102 can access the map service provided by a third-party provider.
[0062] The server 102 includes an information storage medium 104 that may be used by the server 102. Generally, the information storage medium 104 may be implemented as a medium of any nature and kind whatsoever, including RAM, ROM, disks (CD-ROMs, DVDs, floppy disks, hard drivers, etc.), USB keys, solid state-drives, tape drives, etc. and also the combinations thereof.
[0063] The implementations of the server 102 are well known in the art. So, suffice it to state, that the server 102 comprises inter alia a network communication interface 109 (such as a modem, a network card and the like) (not depicted) for two-way communication over the communication network 110; and a processor 108 coupled to the network communication interface 109 and the information storage medium 104, the processor 108 being configured to execute various routines, including those described herein below. To that end the processor 108 may have access to computer readable instructions stored on the information storage medium 104, which instructions, when executed, cause the processor 108 to execute the various routines described herein.
[0064] In some non-limiting embodiments of the present technology, the communication network 110 can be implemented as the Internet. In other embodiments of the present technology, the communication network 110 can be implemented differently, such as any wide-area communication network, local-area communication network, a private communication network and so on.
[0065] The information storage medium 104 is configured to store data, including computer-readable instructions and other data, including map data. In some implementations of the present technology, the information storage medium 104 can store at least part of the data in a database 106.
[0066] The information storage medium 104 can store computer-readable instructions that manage control, updates, populating and modifications of the database 106. More specifically, computer-readable instructions stored on the information storage medium 104 allow the server 102 to receive (to update) information in respect of two-dimensional objects via the communication network 110, to store information in respect of the two-dimensional objects, including the information in respect of their respective perimeters in the database 106,
[0067] Map data stored on the information storage medium 104 (and, more specifically, in the database 106) can comprise two-dimensional objects of any kind. As a non-limiting example, a two-dimensional object can be a map object to be displayed on an electronic device associated with a user (both not depicted). As another non-limiting example, a two-dimensional object can be a picture or any other graphical object to be displayed on an electronic device associated with a user (both not depicted).
[0068] In some implementations of the present technology, two-dimensional objects can be polygonal objects, as depicted in
[0069] Two-dimensional objects, stored on the information storage medium 104, can have mutual hierarchical relations. As a non-limiting example, as it is depicted in
[0070] Borders of two-dimensional objects, stored on the information storage medium 104, can be defined by perimeters of respective two-dimensional objects. A perimeter of a two-dimensional object can comprise perimeter portions. A perimeter portion can be stored as a line, connecting two extreme points of respective perimeter portion, which extreme points of respective perimeter portion can also be stored on the information storage medium 104. The line can be straight or curved. In respect to a perimeter portion, one of its two extreme points can be stored by the server 102 on the on the information storage medium 104 as a start extreme point, and another one can be stored as an end extreme point.
[0071] In some implementations of the present technology, computer-readable instructions, stored on the information storage medium 104, when executed, can cause the processor 108 to acquire two-dimensional objects from the information storage medium 104 (for example, from the database 106), or from an external source (for example, from an external provider of map data).
[0072] In some implementations of the present technology, computer-readable instructions, stored on the information storage medium 104, when executed, can cause the processor 108 to convert a two-dimensional object from raster format of representation into a vector format of representation.
[0073] In some implementations of the present technology, computer-readable instructions can further cause the processor 108 to store, on the information storage medium 104, the first perimeter by: (i) storing the first perimeter portion as a first line, connecting two extreme points of the first perimeter portion, wherein a first extreme point of the first perimeter portion is stored as a start extreme point of the first perimeter portion, and a second extreme point of the first perimeter portion is stored as an end extreme point the first perimeter portion, and (ii) storing the second perimeter portion of the first perimeter as a second line, connecting two extreme points of the second perimeter portion, wherein a first extreme point of the second perimeter portion is stored as a start extreme point of the second perimeter portion, and a second extreme point of the second perimeter portion is stored as an end extreme point of the second perimeter portion, the end extreme point the first perimeter portion being the start extreme point of the second perimeter portion. Computer-readable instructions can cause the processor 108 to store extreme points of a respective perimeter as connected by respective lines in the same selected rotational direction, starting from an extreme point and finishing by the same extreme point. The selected rotational direction can be either the clockwise direction for all two-dimensional objects, or the counter-clockwise direction for all two-dimensional objects.
[0074] In some implementations of the present technology, the first perimeter of the first two-dimensional object can comprise more than two perimeter portions. In that case, more that two perimeter portions can be stored on the information storage medium 104.
[0075] For example, referring to
[0076] The first line 206 connects two extreme points 2042 and 2062 in the clockwise direction 250, so that extreme point 2042 becomes a start extreme point of the first perimeter portion 206, and the extreme point 2062 becomes an end extreme point of the first perimeter portion 206. The second line 208 connects two extreme points 2062 and 2082 also in the clockwise direction 250, so that the extreme point 2062 becomes a start extreme point of the second perimeter portion 208, and the extreme point 2082 becomes the end extreme point of the second perimeter portion 208. Thus, as we can see from this example, extreme point 2062 is at the very same time acts as the end extreme point of the first perimeter portion 206, and the start extreme point of the second perimeter portion 208.
[0077] Extreme points of the first perimeter are connected by respective lines in the same selected rotational direction (i.e. the clockwise direction 250, in this example), starting from the extreme point 2042 and finishing by the same extreme point 2042. Extreme point 2042 is the start extreme point of the first perimeter portion 206 of the first perimeter, and extreme point 2042 is also the end extreme point of the seventh perimeter portion 204 of the first perimeter. As it is shown in
[0078] In some implementations of the present technology, computer-readable instructions, stored on the information storage medium 104, when executed, can cause the processor 108 to acquire a second two-dimensional object to be stored on the information storage medium 104, a second perimeter of the second two-dimensional object comprising the second perimeter portion and a third perimeter portion, the second perimeter portion being a first common perimeter portion of the first two-dimensional object and of the second two-dimensional object.
[0079]
[0080]
[0081] Thus, as it is shown on
[0082] In alternative embodiments, extreme points of perimeters can be connected by respective lines in the same (the second) selected rotational direction, namely in the counter-clockwise direction 650, as it is shown for illustrative purposes on
[0083] In some implementations of the present technology, computer-readable instructions, stored on the information storage medium 104, when executed, can further cause the processor 108 to verify logical hierarchy of the second two-dimensional object 300 or 400, and the first two-dimensional object 200.
[0084] In some implementations of the present technology, computer-readable instructions can further cause the processor 108, responsive to the second two-dimensional object 300 depicted on
[0085] In some implementations of the present technology, computer-readable instructions can further cause the processor 108, responsive to the first two-dimensional object 200 and the second two-dimensional object 400, depicted on
[0086] In other words, as a result of connection of extreme points in the same rotational direction (in the clockwise direction 250, in this example), the start extreme point of the second perimeter portion 208, in respect to the first two-dimensional object 200, is extreme point 2062, and the end extreme point of the second perimeter portion 208 is extreme point 2082. Therefore, when the first two-dimensional object 200 encompasses the second two-dimensional object 300, as it is shown on
[0087] In some implementations of the present technology, computer-readable instructions can cause the processor 108 to acquire two-dimensional objects. In some implementations of the present technology, computer-readable instructions can cause the processor 108 to acquire two-dimensional objects from the information storage medium 104 and, in some implementations, from the database 106. For example, computer-readable instructions can cause the processor 108 to acquire the first two-dimensional object 200 and the second two-dimensional object 300, depicted on
[0088] In some implementations of the present technology, computer-readable instructions can cause the processor 108 to determine if the first two-dimensional object and the second two-dimensional object have a first common perimeter portion. For example, referring to
[0089] It is possible, that two two-dimensional objects not to have a common perimeter portion. For example, if one two-dimensional object is a map Spain (not depicted), and another two-dimensional object is a map Poland (not depicted), they would have no common perimeter portion. As another non-limiting example, if one two-dimensional object, depicted on a picture, is a front wheel of a car, and another two-dimensional object is a rear wheel, they would not have a common perimeter portion either.
[0090] In some implementations of the present technology, computer-readable instructions can cause the processor 108, responsive to determining that the first two-dimensional object and the second two-dimensional object do have the first common perimeter portion, to determine if the first common perimeter portion, in respect of both the first two-dimensional object and the second two-dimensional object, are connected in a same direction of connection.
[0091] For example, in respect to the two-dimensional objects 200, 300, depicted in
[0092] In respect to the two-dimensional objects, depicted on
[0093] In some implementations of the present technology, computer-readable instructions can further cause the processor 108, in response to the sequence of two extreme points of the first common perimeter portion, in respect of both the first two-dimensional object and the second two-dimensional object, being connected in the same direction of connection, (i) to determine sizes of the first two-dimensional object and the second two-dimensional object, and (ii) to determine that a smaller two-dimensional object, selected from: the first two-dimensional object 200 and the second two-dimensional object 300, is encompassed by a larger two-dimensional object, selected from the other one of: the first two-dimensional object 200 and the second two-dimensional object 300. For example, referring to
[0094] In some implementations of the present technology, computer-readable instructions can further cause the processor 108, in response to the sequence of two extreme points of the first common perimeter portion, in respect of both the first two-dimensional object and the second two-dimensional object, being connected in opposing directions of connection, determining, that the first two-dimensional object and the second two-dimensional object are neighbors. Such detection would take place, for example, if two two-dimensional objects 200 and 400, depicted on
[0095]
[0096] Step 702—Acquiring a First Two-Dimensional Object 200 to be Stored on the Information Storage Medium 104, a First Perimeter of the First Two-Dimensional Object 200 Comprising a First Perimeter Portion 206 and a Second Perimeter Portion 208
[0097] The method 700 starts at step 702, where a computing device, being in this implementation of the present technology the server 102, acquires the first two-dimensional object 200 to be stored on the information storage medium 104, the first perimeter of the first two-dimensional object 200 comprising the first perimeter portion 206 and the second perimeter portion 208.
[0098] In this implementation of the present technology, the server 102 acquires first two-dimensional object 200 from an external resource, which can be a provider of map data. In other implementations of the present technology, the source of the first two-dimensional picture can be any suitable source, for example, any device that optically scans images and converts them to a digital image. Further, the server 102 can convert a two-dimensional object from raster format of representation into a vector format of representation, and vice versa.
[0099] In this implementation of the present technology, the first two-dimensional object 200 is a cadastral plan of a land plot. The first two-dimensional object 200 comprises a polygonal object.
[0100] In other embodiments, the first two-dimensional object 200 can be a picture, or any other graphical two-dimensional object.
[0101] In other embodiments, the first two-dimensional object 200 also can be a polygonal object, or it can be a two-dimensional object of any shape.
[0102] Then, the method 700 proceeds to the step 704.
[0103] Step 704—Storing, on the Information Storage Medium 104, the First Perimeter of the First Two-Dimensional Object 200
[0104] Next, at step 704, the server 102 stores, on the information storage medium 104, the first perimeter of the first two-dimensional object 200, depicted in any one
[0105] In this implementation of the present technology, the server 102 stores the first perimeter in database 106, which database 106 is stored itself on the information storage medium 104 of the server 102.
[0106] The server 102 stores the first perimeter by storing perimeter portions of the first perimeter: the first perimeter portion 206 of the first perimeter, being the first line 206, the second perimeter portion 208 of the first perimeter, being the second line 208; the eight perimeter portion 210 of the first perimeter, being the eight line 210; the fourth perimeter portion 212 of the first perimeter, being the fourth line 212; the fifth perimeter portion 214 of the first perimeter, being the fifth line 214; the sixth perimeter portion 202 of the first perimeter, being the sixth line 202; the seventh perimeter portion 204 of the first perimeter, being the seventh line 204.
[0107] The server 102 stores these perimeter portion, respectively, as (1) the first line 206 connecting two extreme points 2042 and 2062 in the clockwise direction 250, so that extreme point 2042 becomes the start extreme point of the first perimeter portion 206, and the extreme point 2062 becomes the end extreme point of the first perimeter portion 206; (2) the second line 208 connecting two extreme points 2062 and 2082 also in the clockwise direction 250, so that extreme point 2062 becomes the start extreme point of the second perimeter portion 208, and the extreme point 2082 becomes the end extreme point of the second perimeter portion 208; (3) the eight line 210 connecting two extreme points 2082 and 2102 also in the clockwise direction 250, so that extreme point 2082 becomes the start extreme point of the eight perimeter portion 210, and the extreme point 2102 becomes the end extreme point of the eight perimeter portion 210; (4) the fourth line 212 connecting two extreme points 2102 and 2122 also in the clockwise direction 250, so that extreme point 2102 becomes the start extreme point of the fourth perimeter portion 212, and the extreme point 2122 becomes the end extreme point of the fourth perimeter portion 212; (5) the fifth line 214 connecting two extreme points 2122 and 2020 also in the clockwise direction 250, so that extreme point 2122 becomes the start extreme point of the fifth perimeter portion 214, and the extreme point 2020 becomes the end extreme point of the fifth perimeter portion 214; (6) the sixth line 202 connecting two extreme points 2020 and 2022 also in the clockwise direction 250, so that extreme point 2020 becomes the start extreme point of the sixth perimeter portion 202, and the extreme point 2022 becomes the end extreme point of the sixth perimeter portion 202; (7) the seventh line 204 connecting two extreme points 2022 and 2042 also in the clockwise direction 250, so that extreme point 2022 becomes the start extreme point of the seventh perimeter portion 204, and the extreme point 2042 becomes the end extreme point of the seventh perimeter portion 204. The end extreme point 2042 of the seventh perimeter portion 204 is also the start extreme point 2042 of the first line 206.
[0108] Thus, as can be seen from this example, end extreme point of each perimeter portion of a given perimeter is the start extreme point of the next perimeter portion of the same perimeter. All extreme points of a given perimeter are connected by respective lines in the same selected rotational direction 250. Extreme point 2042 is the start extreme point of the first perimeter portion 206 of the first perimeter, and extreme point 2042 is also the end extreme point of the seventh perimeter portion 204 of the first perimeter. Once selected, the same selected rotational direction 250 will be used at step 708 or 712, as applicable.
[0109] In alternative embodiments, all extreme points of the first perimeter can be connected by respective lines in the same selected rotational direction 650, being counter-clockwise direction 650. Once selected, the same selected rotational direction 650 will be used for step 708 or 712, as applicable.
[0110] Then, the method 700 proceeds to step 706
[0111] Step 706—Acquiring a Second Two-Dimensional Object 300 or 400 to be Stored on the Information Storage Medium 104, a Second Perimeter of the Second Two-Dimensional Object 300 or 400 Comprising the Second Perimeter Portion and a Third Perimeter Portion, the Second Perimeter Portion being a First Common Perimeter Portion of the First Two-Dimensional Object and of the Second Two-Dimensional Object
[0112] Next, at step 706, the server 102 acquires a second two-dimensional object to be stored on the information storage medium 104.
[0113] The second two-dimensional object can be any two-dimensional object having a common perimeter portion with the first two-dimensional object 200. The second two-dimensional object can be the second two-dimensional object 400 being a neighboring object to the first two-dimensional object 200, or it can be a second two-dimensional object 300 being encompassed by the first two-dimensional object 200.
[0114] In this implementation of the present technology, the server 102 acquires the second two-dimensional object 300/400 from an external resource, which is provider of map data. In other implementations of the present technology, the source of the second two-dimensional object 300/400 can be any suitable source, for example, any device that optically scans images and converts them to a digital image.
[0115] In this implementation of the present technology, the second two-dimensional object 300/400 is a polygonal object which is a land plot plan.
[0116] In the case of the second two-dimensional object 300, the second two-dimensional object 300 is a land plot being a part of a larger land plot, the larger land plot being the first two-dimensional object 200. For example, the first two-dimensional object 200 can represent the whole land plot 200, and the second two-dimensional object 300 can represent a part of the land plot 200, where construction of buildings is permitted by cadastral zoning.
[0117] In the case of the second two-dimensional object 400, the second two-dimensional object 400 and the first two-dimensional object 200 are neighboring land plots.
[0118] In other embodiments, the second two-dimensional object 300/400 can be a picture, or any other graphical two-dimensional object.
[0119] In this implementation of the present technology, the second two-dimensional object 300/400 is a polygonal object. In other embodiments, the second two-dimensional object 300/400 also can be a polygonal object, or it can be a two-dimensional object of any shape.
[0120] In alternative implementations of the present technology, the server 102 can acquire more than two two-dimensional objects. For example, the server can acquire a third two-dimensional object 900, depicted on
[0121] Then, the method 700 proceeds to the step 708.
[0122] Step 708—Verifying Logical Hierarchy of the Second Two-Dimensional Object 300, 400 and the First Two-Dimensional Object 200
[0123] Next, at step 708, the server 102 verifies logical hierarchy of the second two-dimensional object 300, 400 and the first two-dimensional object 200.
[0124] If, with regard to a second two-dimensional object, the server 102 will determine that the second two-dimensional object is encompassed by the first two-dimensional object 200, then the method 700 proceeds to step 710.
[0125] If, with regard to a second two-dimensional object, the server 102 will determine that the second two-dimensional object and the first two-dimensional object 200 are neighboring two-dimensional objects, then the method 700 proceeds to step 712.
[0126] For example, with regard to the second two-dimensional object 300, the server 102 will determine that the second two-dimensional object 300 is encompassed by the first two-dimensional object 200, as it is shown on
[0127] In alternative implementations of the present technology, when server 102 acquires more than two two-dimensional objects, the server 102 can verify logical hierarchy of all these two-dimensional objects, or of at least some of them. For example, when the server 102 acquires a third two-dimensional object 900, depicted in
[0128] Step 710—Responsive to the Second Two-Dimensional Object 300 being Encompassed by the First Two-Dimensional Object 200, Storing the Second Perimeter as a Reference to the Second Perimeter Portion 208 of the First Perimeter, and Storing Other Perimeter Portions of the Second Two-Dimensional Object 300
[0129] As it was mentioned above, method 700 proceeds to step 710 only if a second two-dimensional object is encompassed by the first two-dimensional object 200. This scenario is represented on
[0130] At step 710, the server 102, responsive to the second two-dimensional object being encompassed by the first two-dimensional object, stores, on the information storage medium 104 in the database 106, a reference to the second perimeter portion 208 of the first perimeter, which second perimeter portion 208 was previously stored as a line connecting the start extreme point 2062 and the end extreme point 2082. Server 102 does not store the second perimeter portion 208 itself, which is already stored during storing of perimeter portions of the first perimeter of the first two-dimensional object 200.
[0131] Further, server 102 stores other perimeter portions of the second two-dimensional object 300 which has not been yet stored: the third perimeter portion 302 of the second perimeter, a ninth perimeter portion 304 of the second perimeter, and a tenth perimeter portion 306 of the second perimeter. Extreme points of the second perimeter are connected by respective lines in the same selected rotational direction: as it is shown on
[0132] In this implementation of the present technology, the server 102 stores a reference to the second perimeter portion 208 of the first perimeter, and perimeter portions 302, 304, 306 of the second perimeter, in database 106, which database 106 is stored itself on the information storage medium 104 of the server 102. In other implementations of the present technology, the second perimeter can be stored on the information storage medium 104 in any other convenient way.
[0133] The server 102 stores these perimeter portion, respectively, as (1) the third line 302 connecting two extreme points 3020 and 2062 in the clockwise direction 250, so that extreme point 3020 becomes the start extreme point of the third perimeter portion 302 of the second perimeter, and the extreme point 2062 becomes the end extreme point of the third perimeter portion 302 of the second perimeter; (2) the ninth line 304 connecting two extreme points 2082 and 3042 in the clockwise direction 250, so that extreme point 2082 becomes the start extreme point of the ninth perimeter portion 304 of the second perimeter, and the extreme point 3042 becomes the end extreme point of the ninth perimeter portion 304 of the second perimeter; (3) the tenth line 306 connecting two extreme points 3042 and 3020 in the clockwise direction 250, so that extreme point 3042 becomes the start extreme point of the tenth perimeter portion 306 of the second perimeter, and the extreme point 3020 becomes the end extreme point of the tenth perimeter portion 306 of the second perimeter.
[0134] Thus, as can be seen from this example, end extreme point of each perimeter portion of a given perimeter is the start extreme point of the next perimeter portion of the same perimeter. All extreme points of a given perimeter are connected by respective lines in the same selected rotational direction 250.
[0135] Then, the method 700 ends.
[0136] Step 712—Responsive to the Second Two-Dimensional Object 400 and the First Two-Dimensional Object 200 being Neighboring Two-Dimensional Objects, Storing Perimeter Portions of the Second Two-Dimensional Object 400, Except the Second Perimeter Portion 208, and Storing a Reference to the Second Perimeter Portion 208 of the First Perimeter, the Reference Including an Instruction how to Interpret Start and End Points of the Second Perimeter Portion 208 with Respect to the Second Two-Dimensional Object 400
[0137] As it was mentioned above, method 700 proceeds to step 712 only if a second two-dimensional object and the first two-dimensional object 200 are neighboring two-dimensional objects. This scenario is represented on
[0138] At step 712, the server 102, responsive to the second two-dimensional object 400 and the first two-dimensional object 200 being neighboring two-dimensional objects, stores, on the information storage medium 104 in the database 106, a reference to the second perimeter portion 208 of the first perimeter, which second perimeter portion 208 was previously stored as a line connecting the start extreme point 2062 and the end extreme point 2082. The reference to the second perimeter portion 208 of the first perimeter includes an instruction to interpret the start extreme point 2062 of the second perimeter portion 208 of the first perimeter as an end extreme point 2062 of the second perimeter portion 208 of the second perimeter, and to interpret the end extreme point 2082 of the second perimeter portion 208 of the first perimeter as a start extreme point 2082 of the second perimeter portion 208 of the second perimeter. In other words, if the second perimeter portion 208, in respect of the first two-dimensional object 200 is interpreted as a line 208 being “2062-2082”, so the second perimeter portion 208, in respect of the second two-dimensional object 400 is interpreted as a line 208 being “2082-2062”.
[0139] Further, server 102 stores other perimeter portions of the second two-dimensional object 400 which has not been yet stored: a third perimeter portion 402 of the second perimeter, a second perimeter portion 208 of the second perimeter, a ninth perimeter portion 404 of the second perimeter, and a tenth perimeter portion 406 of the second perimeter. Extreme points of the second perimeter are connected by respective lines in the same selected rotational direction: as it is shown on
[0140] In this implementation of the present technology, the server 102 stores a reference to the second perimeter portion 208 of the first perimeter, and perimeter portions 402, 404, 406 of the second perimeter, in database 106, which database 106 is stored itself on the information storage medium 104 of the server 102.
[0141] The server 102 stores these perimeter portion, respectively, as (1) the third line 402 connecting two extreme points 2062 and 4022 in the clockwise direction 250, so that extreme point 2062 becomes the start extreme point of the third perimeter portion 402 of the second perimeter, and the extreme point 4022 becomes the end extreme point of the third perimeter portion 402 of the second perimeter; (2) the ninth line 404 connecting two extreme points 4022 and 4042 in the clockwise direction 250, so that extreme point 4022 becomes the start extreme point of the ninth perimeter portion 404 of the second perimeter, and the extreme point 4042 becomes the end extreme point of the ninth perimeter portion 404 of the second perimeter; (3) the tenth line 406 connecting two extreme points 4042 and 2082 in the clockwise direction 250, so that extreme point 4042 becomes the start extreme point of the tenth perimeter portion 406 of the second perimeter, and the extreme point 2082 becomes the end extreme point of the tenth perimeter portion 406 of the second perimeter.
[0142] Thus, as can be seen from this example, end extreme point of each perimeter portion of a given perimeter is the start extreme point of the next perimeter portion of the same perimeter. All extreme points of a given perimeter are connected by respective lines in the same selected rotational direction 250.
[0143] In alternative implementations of the present technology, when server 102 acquires and verifies logical hierarchy of the third two-dimensional object 900, the server 102, responsive to the third two-dimensional object 900 and the second two-dimensional object 300 being neighboring two-dimensional objects, stores, on the information storage medium 104 in the database 106, a reference to the tenth perimeter portion 306 of the second perimeter, which tenth perimeter portion 306 was previously stored as a line connecting the start extreme point 3042 and the end extreme point 3020. The reference to the tenth perimeter portion 306 of the second perimeter includes an instruction to interpret the start extreme point 3042 of the tenth perimeter portion 306 of the second perimeter as an end extreme point 3042 of the tenth perimeter portion 306 of the third perimeter, and to interpret the end extreme point 3020 of the tenth perimeter portion 306 of the second perimeter as a start extreme point 3020 of the tenth perimeter portion 306 of the third perimeter. In other words, if the tenth perimeter portion 306, in respect of the second two-dimensional object 300 is interpreted as a line 306 being “3042-3020”, so the tenth perimeter portion 306, in respect of the third two-dimensional object 900 is interpreted as a line 306 being “3020-3042”.
[0144] Further, server 102 stores other perimeter portions of the third two-dimensional object 900 which has not been yet stored: an eleventh perimeter portion 902 of the third perimeter, and a twelfth perimeter portion 904 of the third perimeter. Extreme points of the third perimeter are connected by respective lines in the same selected rotational direction: as it is shown on
[0145] Then, the method 700 ends.
[0146]
[0147] Step 802—Acquiring the First Two-Dimensional Object 200 and the Second Two-Dimensional Object 300/400
[0148] The method 800 starts at step 802, where the server 102, retrieves the first two-dimensional object 200 and the second two-dimensional object 300/400 from a database 106.
[0149] In this implementation of the present technology, the first two-dimensional object 200 and the second two-dimensional object 300/400 were stored on the information storage medium 104 in the database 106. The first two-dimensional object 200 and the second two-dimensional object 300/400 were previously stored on the information storage medium 104 in the database 106 according to the method 700.
[0150] In alternative implementation of the present technology, the first two-dimensional object 200 and the second two-dimensional object 300/400 were stored on other information storage medium, to which server 102 has access.
[0151] In this implementation of the present technology, the first two-dimensional object 200 and the second two-dimensional object 300/400 are plans of land plots. The first two-dimensional object 200 and the second two-dimensional object 300/400 are a polygonal objects.
[0152] In other embodiments, the first two-dimensional object 200 and the second two-dimensional object 300/400 can be a picture, or any other graphical two-dimensional objects.
[0153] In other embodiments, the first two-dimensional object 200 and the second two-dimensional object 300/400 also can be a polygonal objects, or they can be two-dimensional objects of any shape.
[0154] Then, the method 800 proceeds to the step 804.
[0155] Step 804—Determining if the First Two-Dimensional Object 200 and the Second Two-Dimensional Object 300, 400 have a First Common Perimeter Portion
[0156] Next, at step 804, the server 102 determines if the first two-dimensional object 200 and the second two-dimensional object 300/400 have a first common perimeter portion.
[0157] At this step, the server 102 determines that the database 106 stores the second perimeter portion 208 as one of perimeter portions of a first perimeter of the first two-dimensional object 200. At the same time, the database 106 stores a second perimeter of the second two dimensional object 300/400 as a reference to the second perimeter portion 208 of the first perimeter, and as perimeter portions 302/402, 304/404, 306/406 of the second perimeter. Said reference to the second perimeter portion 208 of the first perimeter can be used by the server 102 as an indicator that the second perimeter portion 208 is the first common perimeter portion 208.
[0158] Then, the method 800 proceeds to the step 806.
[0159] If there is no common perimeter portion, the method 800 ends.
[0160] Step 806—Responsive to Determining that the First Two-Dimensional Object 200 and the Second Two-Dimensional Object 300, 400 have the First Common Perimeter Portion 208, Determining if the First Common Perimeter Portion 208, in Respect of Both the First Two-Dimensional Object 200 and the Second Two-Dimensional Object 300, 400, is Connected in a Same Direction of Connection, and Restoring Logical Hierarchy of at Least Two Two-Dimensional Objects
[0161] Next, at step 806, responsive to determining that the first two-dimensional object and the second two-dimensional object have the first common perimeter portion, determining if the first common perimeter portion, in respect of both the first two-dimensional object and the second two-dimensional object, is connected in a same direction of connection.
[0162] At this step, the server 102 can retrieve the information about the second perimeter portion 208 of the first perimeter from the database 106. The server will determine that the second perimeter portion 208 of the first perimeter was stored in the database 106 as two extreme points 2062 and 2082 of the second perimeter portion 208 of the first perimeter in the first rotational direction 250, and two extreme points 2062 and 2082 are connected as a sequence “2062-2082”, so that extreme point 2062 is the start extreme point for the first two-dimensional object 200, and extreme point 2082 is the end extreme point for the first two-dimensional object 200.
[0163] Further, the server 102 can retrieve the information about how the second perimeter was stored in the database 106.
[0164] In respect to the second two-dimensional object 300/400, the server 102 will retrieve information that the second two-dimensional object 300/400 was stored as a reference to the second perimeter portion 208 of the first perimeter, and as perimeter portions 302/402, 304/404, 306/406 of the second perimeter.
[0165] The reference to the second perimeter portion 208, in respect to the second two-dimensional object 400, includes an instruction to interpret the start extreme point 2062 of the second perimeter portion 208 of the first perimeter as an end extreme point 2062 of the second perimeter portion 208 of the second perimeter, and to interpret the end extreme point 2082 of the second perimeter portion 208 of the first perimeter as a start extreme point 2082 of the second perimeter portion 208 of the second perimeter. In other words, if the second perimeter portion 208, in respect of the first two-dimensional object 200 is interpreted as a line 208 being “2062-2082”, so the second perimeter portion 208, in respect of the second two-dimensional object 400 is interpreted as a line 208 being “2082-2062”. In response to the sequence of two extreme points of the first common perimeter portion 208, in respect of both the first two-dimensional object 200 and the second two-dimensional object 400, being connected in opposing directions of connection, determining, that the first two-dimensional object 200 and the second two-dimensional object 400 are neighbors.
[0166] The reference to the second perimeter portion 208, in respect to the second two-dimensional object 300, however, does not include any instructions how to interpret the start extreme point 2062 of the second perimeter portion 208 of the first perimeter and how to interpret the end extreme point 2082 of the second perimeter portion 208 of the first perimeter. Based on absence of instructions to the contrary, the server 102 determines that the sequence of two extreme points of the first common perimeter portion 208, in respect of both the first two-dimensional object 200 and the second two-dimensional object 300, are connected in the same direction of connection “2082-2062”. In response to the sequence of two extreme points 2082 and 2062 of the first common perimeter portion 208, in respect of both the first two-dimensional object 200 and the second two-dimensional object 300, being connected in the same direction of connection “2082-2062”, the server 102 determining sizes of the first two-dimensional object 200 and the second two-dimensional object 300. The server 102 can determine sizes of the first two-dimensional object 200 and the second two-dimensional object 300 mathematically. Thus, the server 102 can determine, that the first two dimensional object 200 is larger than the second two dimensional object 300. Based on this information, the server 102 determines that the larger two-dimensional object, which is the first two-dimensional object 200, encompasses the smaller two-dimensional object, which is the second two-dimensional object 300.
[0167] Then, the server 102 can determine rank of each the first two-dimensional object and the second two-dimensional object, wherein a rank of a corresponding two-dimensional object is inversely related to a number of two-dimensional objects encompassing said one of: the first two-dimensional object and the second two-dimensional object. As it was described above in respect to
[0168] Then, the method 800 ends.
[0169]
[0170] Step 1002—Retrieving the Third Two-Dimensional Object 900
[0171] The variation of the method 800 starts at step 1002, where the server 102 further retrieves the third two-dimensional object 900 from a database 106.
[0172] In this implementation of the present technology, the server 102 retrieves the third two-dimensional object 900 using substantially same procedure as it was described in step 802 of the method 800.
[0173] Then, the variation 1000 of the method 800 proceeds to the step 1004.
[0174] Step 1004—Determining if the Second Common Perimeter Portion 306, in Respect of Both the Third Two-Dimensional Object 900 and the Second Two-Dimensional Object 300, is Connected in a Same Direction of Connection
[0175] At step 1004, the server 102 determines if the second common perimeter portion 306, in respect of both the third two-dimensional object 900 and the second two-dimensional object 300, is connected in a same direction of connection. This step is substantially similar to the step 806 of the method 800. The server 102 determines, with regard to the second two-dimensional object 300 and the third two-dimensional object 900, that the second common perimeter portion 306, in respect of the third two-dimensional object 900 and the second two-dimensional object 300, is connected in opposing directions of connection (“3042-3020” for the second two-dimensional object 300, and “3020-3042” for the third two-dimensional object 900).
[0176] Then, the variation 1000 of the method 800 proceeds to the step 1006.
[0177] Step 1006—in Response to the Sequence of Two Extreme Points 3020, 3042 of the Second Common Perimeter Portion 306, in Respect of Both the Third Two-Dimensional Object 900 and the Second Two-Dimensional Object 300, being Connected in Opposing Directions of Connection, Determining that the Third Two-Dimensional Object 900 and the Second Two-Dimensional Object 300 are Neighbors, and Determining that the Third Two-Dimensional Object 900 is Encompassed by the First Two-Dimensional Object 200
[0178] At step 1006, the server 102 can retrieve the information about how the third perimeter was stored in the database 106.
[0179] In respect to the third two-dimensional object 900, the server 102 retrieves information that the third two-dimensional object 900 was stored as a reference to the tenth perimeter portion 306 of the second perimeter, and as perimeter portions 902, 904 of the third perimeter.
[0180] The reference to the tenth perimeter portion 306, in respect to the third two-dimensional object 900, includes an instruction to interpret the start extreme point 3042 of the tenth perimeter portion 306 of the second perimeter as an end extreme point 3042 of the tenth perimeter portion 306 of the third perimeter, and to interpret the end extreme point 3020 of the tenth perimeter portion 306 of the second perimeter as a start extreme point 3020 of the tenth perimeter portion 306 of the third perimeter. In response to the sequence of two extreme points of the second common perimeter portion 306, in respect of both the third two-dimensional object 900 and the second two-dimensional object 300, being connected in different directions of connection, the server 102 determines that the third two-dimensional object 900 and the second two-dimensional object 300 are neighbors.
[0181] Based on the established facts that (1) the second two-dimensional object 300 is encompassed by the first two-dimensional object 200, and (2) the second two-dimensional object 300 and the third two-dimensional object 900 are neighboring objects, the server 102 determines that the third two-dimensional object 900 is also encompassed by the first two-dimensional object 200.
[0182] Then, the variation 1000 of the method 800 proceeds to the step 1008.
[0183] Step 1008—Determining Rank of Each Two-Dimensional Object
[0184] At step 1010, the server 102 determines rank of each the first two-dimensional object 200, the second two-dimensional object 300, and the third two-dimensional object 900, wherein a rank of a corresponding two-dimensional object is inversely related to a number of two-dimensional objects encompassing said one of: the first two-dimensional object and the second two-dimensional object. As it was described above in respect to
[0185] Then, the Variation 1000 of the Method 800 Ends.
[0186] Some of these steps and signal sending-receiving are well known in the art and, as such, have been omitted in certain portions of this description for the sake of simplicity. The signals can be sent-received using optical means (such as a fibre-optic connection), electronic means (such as using wired or wireless connection), and mechanical means (such as pressure-based, temperature based or any other suitable physical parameter based).
[0187] Modifications and improvements to the above-described implementations of the present technology may become apparent to those skilled in the art. The foregoing description is intended to be exemplary rather than limiting. The scope of the present technology is therefore intended to be limited solely by the scope of the appended claims.
[0188] From a certain perspective, embodiments of the present technology can be summarized as follows, structured in numbered clauses: [0189] 1. A method (700) of storing at least two two-dimensional objects on an information storage medium (104), the method (700) executed on a computing device, the computing device having access to the information storage medium (104), the method (700) comprising: [0190] acquiring (702) a first two-dimensional object (200) to be stored on the information storage medium (104), a first perimeter of the first two-dimensional object (200) comprising a first perimeter portion (206) and a second perimeter portion (208); [0191] storing (704), on the information storage medium (104), the first perimeter as: [0192] (i) storing the first perimeter portion (206) as a first line (206), connecting two extreme points (2042, 2062) of the first perimeter portion (206), wherein a first extreme point (2042) of the first perimeter portion (206) is stored as a start extreme point (2042) of the first perimeter portion (206), and a second extreme point (2062) of the first perimeter portion (206) is stored as an end extreme point (2062) the first perimeter portion (206), [0193] (ii) storing the second perimeter portion (208) of the first perimeter as a second line (208), connecting two extreme points (2062, 2082) of the second perimeter portion (208), wherein a first extreme point (2062) of the second perimeter portion (208) is stored as a start extreme point (2062) of the second perimeter portion (208), and a second extreme point (2082) of the second perimeter portion (208) is stored as an end extreme point (2082) of the second perimeter portion (208), the end extreme point (2062) of the first perimeter portion (206) being the start extreme point (2062) of the second perimeter portion (208); and [0194] acquiring (706) a second two-dimensional object (300, 400) to be stored on the information storage medium (104), a second perimeter of the second two-dimensional object (300, 400) comprising the second perimeter portion (208) and a third perimeter portion (302, 402), the second perimeter portion (208) being a first common perimeter portion (208) of the first two-dimensional object (200) and of the second two-dimensional object (300, 400); [0195] verifying (708) logical hierarchy of the second two-dimensional object (300, 400) and the first two-dimensional object (200), and [0196] (i) responsive to the second two-dimensional object (300) being encompassed by the first two-dimensional object (200), storing (710), on the information storage medium (104), the second perimeter as: [0197] storing the third perimeter portion (302) as a third line (302), connecting two extreme points (3020, 2062) of the third perimeter portion (302), wherein a first extreme point (3020) of the third perimeter portion (302) is stored as a start extreme point (3020) of the third perimeter portion (302), and wherein a second extreme point (2062) of the third perimeter portion (302) is stored as an end extreme point (2062) of the third perimeter portion (302), and storing a reference to the second perimeter portion (208) of the first perimeter; [0198] (ii) responsive to the second two-dimensional object (400) and the first two-dimensional object (200) being neighboring two-dimensional objects, storing (712), on the information storage medium (104), the second perimeter as: [0199] storing the third perimeter portion (402) as a third line (402), connecting two extreme points (2062, 4022) of the third perimeter portion (402), wherein a first extreme point (2062) of the third perimeter portion (402) is stored as a start extreme point (2062) of the third perimeter portion (402), and wherein a second extreme point (4022) of the third perimeter portion (402) is stored as an end extreme point (4022) of the third perimeter portion (402), and [0200] storing a reference to the second perimeter portion (208) of the first perimeter, the reference including an instruction to interpret the start extreme point (2062) of the second perimeter portion (208) of the first perimeter as an end extreme point (2062) of the second perimeter portion (208) of the second perimeter, and to interpret the end extreme point (2082) of the second perimeter portion (208) of the first perimeter as a start extreme point (2082) of the second perimeter portion (208) of the second perimeter. [0201] 2. The method (700) of clause 1, wherein [0202] extreme points of a respective perimeter are connected by respective lines in a first selected rotational direction, starting from an extreme point and finishing by the same extreme point, and wherein [0203] the first rotational direction is selected from: (a) a clockwise direction (250) and (b) a counter-clockwise direction (650). [0204] 3. The method (700) of any one of clauses 1 to 2, wherein at least one of (a) the first two-dimensional object (200) and (b) the second two-dimensional object (300, 400) is a polygonal object. [0205] 4. The method (700) of any one of clauses 1 to 3, wherein each of the first two-dimensional object (200) and the second two-dimensional object (300, 400) is a part of a plurality of two-dimensional objects, and wherein the plurality of two two-dimensional objects is a plurality of map objects. [0206] 5. The method (700) of any one of clauses 1 to 4, wherein storing, on the information storage medium (104), at least one, selected from: the first perimeter portion (206), the second perimeter portion (208), and the third perimeter portion (302, 402), is storing in an at least one database (106). [0207] 6. The method (700) of any one of clauses 1 to 5, wherein acquiring at least one selected from: the first two-dimensional object (200) and the second two-dimensional object (300, 400) is converting the corresponding at least one selected from: first two-dimensional object (200) and the second two-dimensional object (300, 400) from raster format of representation into a vector format of representation. [0208] 7. A server (102) comprising: [0209] an information storage medium (104); [0210] a processor (108) operationally connected to the information storage medium (104), the processor (108) configured to store objects, on the information storage medium (104), the processor (108) being further configured to: [0211] acquire a first two-dimensional object (200) to be stored on the information storage medium (104), a first perimeter of the first two-dimensional object (200) comprising a first perimeter portion (206) and a second perimeter portion (208); [0212] store, on the information storage medium (104), the first perimeter by: [0213] (i) storing the first perimeter portion (206) as a first line (206), connecting two extreme points (2042, 2062) of the first perimeter portion (206), wherein a first extreme point (2042) of the first perimeter portion (206) is stored as a start extreme point (2042) of the first perimeter portion (206), and a second extreme point (2062) of the first perimeter portion (206) is stored as an end extreme point (2062) the first perimeter portion (206), [0214] (ii) storing the second perimeter portion (208) of the first perimeter as a second line (208), connecting two extreme points (2062, 2082) of the second perimeter portion (208), wherein a first extreme point (2062) of the second perimeter portion (208) is stored as a start extreme point (2062) of the second perimeter portion (208), and a second extreme point (2082) of the second perimeter portion (208) is stored as an end extreme point (2082) of the second perimeter portion (208), the end extreme point (2062) of the first perimeter portion (206) being the start extreme point (2062) of the second perimeter portion (208); and [0215] acquire a second two-dimensional object (300, 400) to be stored on the information storage medium (104), a second perimeter of the second two-dimensional object (300, 400) comprising the second perimeter portion (208) and a third perimeter portion (302, 402), the second perimeter portion (208) being a first common perimeter portion (208) of the first two-dimensional object (200) and of the second two-dimensional object (300, 400); [0216] verify logical hierarchy of the second two-dimensional object (300, 400) and the first two-dimensional object (200), and [0217] (i) responsive to the second two-dimensional object (300) being encompassed by the first two-dimensional object (200), store, on the information storage medium (104), the second perimeter by: [0218] storing the third perimeter portion (302) as a third line (302), connecting two extreme points of the third perimeter portion (302), wherein a first extreme point of the third perimeter portion (302) is stored as a start extreme point of the third perimeter portion (302), and wherein a second extreme point of the third perimeter portion (302) is stored as an end extreme point of the third perimeter portion (302), and storing a reference to the second perimeter portion (208) of the first perimeter; [0219] (ii) responsive to the second two-dimensional object (400) and the first two-dimensional object (200) being neighboring two-dimensional objects, store, on the information storage medium (104), the second perimeter by: [0220] storing the third perimeter portion (402) as a third line (402), connecting two extreme points (2062, 4022) of the third perimeter portion (402), wherein a first extreme point (2062) of the third perimeter portion (402) is stored as a start extreme point (2062) of the third perimeter portion (402), and wherein a second extreme point (4022) of the third perimeter portion (402) is stored as an end extreme point (4022) of the third perimeter portion (402), and by [0221] storing a reference to the second perimeter portion (208) of the first perimeter, the reference including an instruction to interpret the start extreme point (2062) of the second perimeter portion (208) of the first perimeter as an end extreme point (2062) of the second perimeter portion (208) of the second perimeter, and to interpret the end extreme point (2082) of the second perimeter portion (208) of the first perimeter as a start extreme point (2082) of the second perimeter portion (208) of the second perimeter. [0222] 8. The server (102) of clause 7, wherein [0223] extreme points of a respective perimeter are connected by respective lines in a first selected rotational direction, starting from an extreme point and finishing by the same extreme point, and wherein [0224] the first rotational direction is selected from: (a) a clockwise direction (250) and (b) a counter-clockwise direction (650). [0225] 9. The server (102) of any one of clauses 7 to 8, wherein at least one of (a) the first two-dimensional object (200) and (b) the second two-dimensional object (300, 400) is a polygonal object. [0226] 10. The server (102) of any one of clauses 7 to 9, wherein each of the first two-dimensional object (200) and the second two-dimensional object (300, 400) is a part of a plurality of two-dimensional objects, and wherein the plurality of two two-dimensional objects is a plurality of map objects. [0227] 11. The server (102) of any one of clauses 7 to 10, wherein storing, on the information storage medium (104), at least one, selected from: the first perimeter portion (206), the second perimeter portion (208), and the third perimeter portion (302, 402), is storing in an at least one database (106). [0228] 12. The server (102) of any one of clauses 7 to 11, wherein acquiring at least one selected from: the first two-dimensional object (200) and the second two-dimensional object (300, 400) is converting the corresponding at least one selected from: first two-dimensional object (200) and the second two-dimensional object (300, 400) from raster format of representation into a vector format of representation.
[0229] From another certain perspective, embodiments of the present technology can be summarized as follows, structured in numbered clauses: [0230] 1. A method (800, 1000) of restoring of logical hierarchy of at least two two-dimensional objects (200, 300, 400), a first two-dimensional object (200) having a first perimeter, a second two-dimensional object (300, 400) having a second perimeter, the first perimeter and the second perimeter comprising perimeter portions, each perimeter portion being a line connecting two extreme points of a respective perimeter portion, extreme points in the first perimeter being connected by respective lines in a first selected rotational direction, extreme points of the second perimeter being connected by respective lines in the first selected rotational direction, the method (800, 1000) executed on a computing device, the method (800, 1000) comprising: [0231] retrieving the first two-dimensional object (200) and the second two-dimensional object (300, 400); [0232] determining if the first two-dimensional object (200) and the second two-dimensional object (300, 400) have a first common perimeter portion; [0233] responsive to determining that the first two-dimensional object (200) and the second two-dimensional object (300, 400) having the first common perimeter portion (208), determining if the first common perimeter portion (208), in respect of both the first two-dimensional object (200) and the second two-dimensional object (300/400), is connected in a same direction of connection; [0234] in response to the sequence of two extreme points (2062, 2082) of the first common perimeter portion (208), in respect of both the first two-dimensional object (200) and the second two-dimensional object (300), being connected in the same direction of connection (2062-2082 and 2062-2082), [0235] (i) determining sizes of the first two-dimensional object (200) and the second two-dimensional object (300), and [0236] (ii) determining that a smaller two-dimensional object, selected from: the first two-dimensional object (200) and the second two-dimensional object (300), is encompassed by a larger two-dimensional object, selected from other one of: the first two-dimensional object (200) and the second two-dimensional object (300); and [0237] in response to the sequence of two extreme points (2062, 2082) of the first common perimeter portion (208), in respect of both the first two-dimensional object (200) and the second two-dimensional object (400), being connected in opposing directions of connection (2062-2082 and 2082-2062), determining, that the first two-dimensional object (200) and the second two-dimensional object (400) are neighbors. [0238] 2. The method (800, 1000) of clause 1, wherein the second two-dimensional object (300) is encompassed by the first two-dimensional object (200), the method (800, 1000) further comprising retrieving a third two-dimensional object (900), the third two-dimensional object (900) having a second common perimeter portion (306) with the second two-dimensional object (300), the third two-dimensional object (900) having no common perimeter portion with the first two-dimensional object (200), the method (800, 1000) further comprising: [0239] determining if the second common perimeter portion (306), in respect of both the third two-dimensional object (900) and the second two-dimensional object (300), is connected in a same direction of connection, and [0240] in response to the sequence of two extreme points (3020, 3042) of the second common perimeter portion (306), in respect of both the third two-dimensional object (900) and the second two-dimensional object (300), being connected in opposing directions (3020-3042 and 3042-3020) of connection: [0241] determining that the third two-dimensional object (900) and the second two-dimensional object (300) are neighbors, and [0242] determining that the third two-dimensional object (900) is encompassed by the first two-dimensional object (200). [0243] 3. The method (800, 1000) of any one of clauses 1 to 2, wherein the first two-dimensional object (200) and the second two-dimensional object (300, 400) are a part of a plurality of two-dimensional objects, the method (800, 1000) further comprising determining logical hierarchy of at least two two-dimensional objects from the plurality of two-dimensional objects, wherein a rank of a corresponding two-dimensional object is inversely related to a number of other two-dimensional objects encompassing said corresponding two-dimensional object. [0244] 4. The method (800, 1000) of any one of clauses 1 to 3, wherein rotational direction is selected from: (a) a clockwise direction (250) and (b) a counter clockwise direction (650). [0245] 5. The method (800, 1000) of any one of clauses 1 to 4, wherein at least one of (a) the first two-dimensional object (200) and (b) the second two-dimensional object (300, 400) is a polygonal object. [0246] 6. The method (800, 1000) of any one of clauses 1 to 5, wherein the first two-dimensional object (200) and the second two-dimensional object (300, 400) are the part of a plurality of two-dimensional objects, and wherein the plurality of two two-dimensional objects is a plurality of map objects. [0247] 7. The method (800, 1000) of any one of clauses 1 to 6, prior to the retrieving the first perimeter, the second perimeter, and determining if the first two-dimensional object (200) and the second two-dimensional object (300, 400) have the first common perimeter portion (208), the method (800, 1000) further comprising: [0248] acquiring (702) the first two-dimensional object (200) to be stored on the information storage medium (104), the first perimeter of the first two-dimensional object (200) comprising a first perimeter portion (206) and a second perimeter portion (208); [0249] storing (704), on the information storage medium (104), the first perimeter as: [0250] (i) storing the first perimeter portion (206) as a first line (206), connecting two extreme points (2042, 2062) of the first perimeter portion (206), wherein a first extreme point (2042) of the first perimeter portion (206) is stored as a start extreme point (2042) of the first perimeter portion (206), and a second extreme point (2062) of the first perimeter portion (206) is stored as an end extreme point (2062) the first perimeter portion (206), [0251] (ii) storing the second perimeter portion (208) of the first perimeter as a second line (208), connecting two extreme points (2062, 2082) of the second perimeter portion (208), wherein a first extreme point (2062) of the second perimeter portion (208) is stored as a start extreme point (2062) of the second perimeter portion (208), and a second extreme point (2082) of the second perimeter portion (208) is stored as an end extreme point (2082) of the second perimeter portion (208), the end extreme point (2062) of the first perimeter portion (206) being the start extreme point (2062) of the second perimeter portion (208); and [0252] acquiring (706) the second two-dimensional object (300, 400) to be stored on the information storage medium (104), the second perimeter of the second two-dimensional object (300, 400) comprising the second perimeter portion (208) and a third perimeter portion (302, 402), the second perimeter portion (208) being the first common perimeter portion (208) of the first two-dimensional object (200) and of the second two-dimensional object (300, 400); [0253] verifying (708) logical hierarchy of the second two-dimensional object (300, 400) and the first two-dimensional object (200), and [0254] (i) responsive to the second two-dimensional object (300) being encompassed by the first two-dimensional object (200), storing (710), on the information storage medium (104), the second perimeter as: [0255] storing the third perimeter portion (302) as a third line (302), connecting two extreme points (3020, 2062) of the third perimeter portion (302), wherein a first extreme point (3020) of the third perimeter portion (302) is stored as a start extreme point (3020) of the third perimeter portion (302), and wherein a second extreme point (2062) of the third perimeter portion (302) is stored as an end extreme point (2062) of the third perimeter portion (302), and [0256] storing a reference to the second perimeter portion (208) of the first perimeter; [0257] (ii) responsive to the second two-dimensional object (400) and the first two-dimensional object (200) being neighboring two-dimensional objects, storing (712), on the information storage medium (104), the second perimeter as: [0258] storing the third perimeter portion (402) as a third line (402), connecting two extreme points (2062, 4022) of the third perimeter portion (402), wherein a first extreme point (2062) of the third perimeter portion (402) is stored as a start extreme point (2062) of the third perimeter portion (402), and wherein a second extreme point (4022) of the third perimeter portion (402) is stored as an end extreme point (4022) of the third perimeter portion (402), and [0259] storing a reference to the second perimeter portion (208) of the first perimeter, the reference including an instruction to interpret the start extreme point (2062) of the second perimeter portion (208) of the first perimeter as an end extreme point (2062) of the second perimeter portion (208) of the second perimeter, and to interpret the end extreme point (2082) of the second perimeter portion (208) of the first perimeter as a start extreme point (2082) of the second perimeter portion (208) of the second perimeter. [0260] 8. A server (102) comprising: [0261] an information storage medium (104); [0262] a processor (108) operationally connected to the information storage medium (104), the processor (108) configured to store objects, on the information storage medium (104), the processor (108) being further configured to: [0263] retrieve the first two-dimensional object (200) and the second two-dimensional object (300, 400); [0264] determine if the first two-dimensional object (200) and the second two-dimensional object (300, 400) have a first common perimeter portion (208); [0265] responsive to determining that the first two-dimensional object (200) and the second two-dimensional object (300, 400) having the first common perimeter portion (208), determine if the first common perimeter portion (208), in respect of both the first two-dimensional object (200) and the second two-dimensional object (300, 400), is connected in a same direction of connection; [0266] in response to the sequence of two extreme points of the first common perimeter portion (208), in respect of both the first two-dimensional object (200) and the second two-dimensional object (300), being connected in the same direction of connection (2062-2082 and 2062-2082), [0267] (i) determine sizes of the first two-dimensional object (200) and the second two-dimensional object (300), and [0268] (ii) determine that a smaller two-dimensional object, selected from: the first two-dimensional object (200) and the second two-dimensional object (300), is encompassed by a larger two-dimensional object, selected from other one of: the first two-dimensional object (200) and the second two-dimensional object (300); and [0269] in response to the sequence of two extreme points (2062, 2082) of the first common perimeter portion (208), in respect of both the first two-dimensional object (200) and the second two-dimensional object (400), being connected in opposing directions of connection (2062-2082 and 2082-2062), determining, that the first two-dimensional object (200) and the second two-dimensional object (400) are neighbors. [0270] 9. The server (102) of clause 8, wherein the second two-dimensional object (300) is encompassed by the first two-dimensional object (200), the processor (108) being further configured to retrieve a third two-dimensional object (900), the third two-dimensional object (900) having a second common perimeter portion (306) with the second two-dimensional object (300), the third two-dimensional object (900) having no common perimeter portion with the first two-dimensional object (200), the processor (108) being further configured to: [0271] determine if the second common perimeter portion (306), in respect of both the third two-dimensional object (900) and the second two-dimensional object (300), is connected in a same direction of connection, and [0272] in response to the sequence of two extreme points (3020, 3042) of the second common perimeter portion (306), in respect of both the third two-dimensional object (900) and the second two-dimensional object (300), being connected in opposing directions of connection: [0273] determine that the third two-dimensional object (900) and the second two-dimensional object (300) are neighbors, and [0274] determine that the third two-dimensional object (900) is encompassed by the first two-dimensional object (200). [0275] 10. The server (102) of any one of clauses 8 to 9, the processor (108) being further configured to determine logical hierarchy of at least two two-dimensional objects, being a part of a plurality of two-dimensional objects, wherein a rank of a corresponding two-dimensional object is inversely related to a number of other two-dimensional objects encompassing said corresponding two-dimensional object. [0276] 11. The server (102) of any one of clauses 8 to 10, wherein rotational direction is selected from: [0277] (a) a clockwise direction (250) and (b) a counter clockwise direction (650). [0278] 12. The server (102) of any one of clauses 8 to 11, wherein at least one of (a) the first two-dimensional object (200) and (b) the second two-dimensional object (300, 400) is a polygonal object. [0279] 13. The server (102) of any one of clauses 8 to 12, wherein the first two-dimensional object (200) and the second two-dimensional object (300, 400) are a part of a plurality of two-dimensional objects, and wherein the plurality of two two-dimensional objects is a plurality of map objects. [0280] 14. The server (102) of any one of clauses 8 to 13, the processor (108) being further configured to: [0281] acquire the first two-dimensional object (200) to be stored on the information storage medium (104), a first perimeter of the first two-dimensional object (200) comprising a first perimeter portion (206) and a second perimeter portion (208); [0282] store, on the information storage medium (104), the first perimeter by: [0283] (i) storing the first perimeter portion (206) as a first line (206), connecting two extreme points (2042, 2062) of the first perimeter portion (206), wherein a first extreme point (2042) of the first perimeter portion (206) is stored as a start extreme point (2042) of the first perimeter portion (206), and a second extreme point (2062) of the first perimeter portion (206) is stored as an end extreme point (2062) the first perimeter portion (206), [0284] (ii) storing the second perimeter portion (208) of the first perimeter as a second line (208), connecting two extreme points (2062, 2082) of the second perimeter portion (208), wherein a first extreme point (2062) of the second perimeter portion (208) is stored as a start extreme point (2062) of the second perimeter portion (208), and a second extreme point (2082) of the second perimeter portion (208) is stored as an end extreme point (2082) of the second perimeter portion (208), the end extreme point (2062) of the first perimeter portion (206) being the start extreme point (2062) of the second perimeter portion (208); and [0285] acquire the second two-dimensional object (300, 400) to be stored on the information storage medium (104), the second perimeter of the second two-dimensional object (300, 400) comprising the second perimeter portion (208) and a third perimeter portion (302, 402), the second perimeter portion (208) being the first common perimeter portion (208) of the first two-dimensional object (200) and of the second two-dimensional object (300, 400); [0286] verify logical hierarchy of the second two-dimensional object (300, 400) and the first two-dimensional object (200), and [0287] (i) responsive to the second two-dimensional object (300) being encompassed by the first two-dimensional object (200), store, on the information storage medium (104), the second perimeter by: [0288] storing the third perimeter portion (302) as a third line (302), connecting two extreme points (3020, 2062) of the third perimeter portion (302), wherein a first extreme point (3020) of the third perimeter portion (302) is stored as a start extreme point (3020) of the third perimeter portion (302), and wherein a second extreme point (2062) of the third perimeter portion (302) is stored as an end extreme point (2062) of the third perimeter portion (302), and [0289] storing a reference to the second perimeter portion (208) of the first perimeter; [0290] (ii) responsive to the second two-dimensional object (400) and the first two-dimensional object (200) being neighboring two-dimensional objects, store, on the information storage medium (104), the second perimeter by: [0291] storing the third perimeter portion (402) as a third line (402), connecting two extreme points (2062, 4022) of the third perimeter portion (402), wherein a first extreme point (2062) of the third perimeter portion (402) is stored as a start extreme point (2062) of the third perimeter portion (402), and wherein a second extreme point (4022) of the third perimeter portion (402) is stored as an end extreme point (4022) of the third perimeter portion (402), and storing a reference to the second perimeter portion (208) of the first perimeter, the reference including an instruction to interpret the start extreme point (2062) of the second perimeter portion (208) of the first perimeter as an end extreme point (2062) of the second perimeter portion (208) of the second perimeter, and to interpret the end extreme point (2082) of the second perimeter portion (208) of the first perimeter as a start extreme point (2082) of the second perimeter portion (208) of the second perimeter.