The present invention relates to geographic databases and more particularly, the present invention relates to an index that is useful for accessing and using data in geographic database.
Geographic data are used for various purposes in various different kinds of computing platforms. Geographic data are used in in-vehicle navigation systems to provide drivers of the vehicles with various useful navigation-related and map-related features. Geographic data are also used by navigation-related and map-related services on the Internet.
When using geographic data there is often a need to access the data spatially, i.e., to find data based on the locations of the geographic features represented thereby. One way to access geographic data spatially is to use a spatial index, such as a k-d-tree index. A k-d-tree index has a tree structure, having a root node, leaf nodes and intermediate nodes between the root node and the leaf nodes. Each node in a k-d-tree structure is part of a parent-child relationship. Each parent node includes control information from which one (of two or more) child nodes associated with the parent node can be distinguished based on a search key.
When a k-d-tree is used as a spatial index, the root node and intermediate nodes include two dimensional spatial boundary information (e.g., latitude and longitude) that relate to the indexed item of data. The indexed item of data can be an item of data that represents a single geographic feature. Alternatively, the indexed item of data can be a collection of data items that represent geographic features encompassed within a bounded area. As an example, a k-d-tree can be used as an index to collections (i.e., parcels) of data that represent geographic features located within separate rectangular areas. The nodes of a k-d-tree used for this purpose include the boundary information (i.e., maximum latitude, maximum longitude, minimum latitude, minimum longitude) that define the separate rectangular areas that contain the geographic features represented by the data in the respective parcels.
A k-d-tree used for organizing geographic data is described in U.S. Pat. No. 5,953,722, the entire disclosure of which is incorporated by reference herein.
When using geographic data, it is sometimes useful to access the data at different levels of detail (or granularity). Map display and route calculation are examples of two applications in which geographic data are sometimes used at different levels of detail. For example, when using geographic data with a map display application to display a map of an area, a greater level of detail is used for relatively larger scale maps and a lesser level of detail is used for relatively smaller scale maps. Similarly, when performing route calculation, it is often preferable not to consider smaller, low volume roads when determining a route between an origin and a destination.
In order to facilitate navigation functions that access and use geographic data at different levels of detail, data that represent geographic features are sometimes organized into layers based on a rank associated with the represented features. The lowest rank (e.g., 0) is associated with those features that are represented only when the finest level of detail is desired. In the case of roads, the lowest rank may be associated with side streets and alleys. On the other hand, the highest rank (e.g., 4) is associated with the most important features, i.e., those that would be displayed even at the coarsest level of detail. In the case of roads, the highest rank may be associated with expressways and major arterial roads.
When data representing geographic features are organized into layers, the lowest layer (e.g., 0) includes data representing geographic features of all ranks (e.g., 0-4). A highest layer (e.g., 4) includes data representing geographic features of only the highest rank (e.g., 4). Each other layer includes only those data that represent those geographic features of the associated rank and higher ranks. For example, layer 2 includes data that represent geographic features having ranks 2, 3 and 4. Layer 2 excludes data that represents geographic features of ranks 0 and 1. When data representing geographic features are organized into layers in this manner, a lowest layer has the greatest granularity and the highest layer has the least granularity.
These layers can exist as separate collections of the geographic data. When a navigation function requires the geographic data with a high level of detail, a lower layer is accessed and used. On the other hand, when a navigation function requires the geographic data with a low level of detail, a higher layer is accessed and used.
When data representing geographic features are organized into separate layers of granularity, a k-d-tree can be used to access the data spatially. A separate k-d-tree is used for each layer.
An index for data can be implemented as either homogeneous or non-homogeneous. A homogeneous index appends the control information about related items of data to each indexed item of data. The k-d-tree structure in
A non-homogeneous spatial index maintains the indexing data in a collection of small records that are separate from the indexed items of data. A non-homogeneous index is useful with relatively large data sets, i.e., those that exceed a given computer's memory. A non-homogeneous index has the benefits of being constructed and maintained separate from the indexed objects and of requiring relatively little space.
A homogeneous index and a non-homogeneous may be used together in a single database. A single database can include a non-homogeneous index maintained separate from the data being indexed and can also contain homogeneous index information appended to items of data.
A k-d-tree index (either homogeneous or non-homogeneous) used with a layered database works well for many applications. However, there is room for improvement. For example, it may be desired to provide more granularity, i.e., more layers or ranks of data. Further, it may be desired to make the indexing structure more flexible. Still further, it may be desired to index on additional properties of the data or the represented features.
To address these and other objectives, the present invention comprises a multi-dimensional spatial index for data that represent geographic features. The multi-dimensional spatial index includes at least two dimensions that define physical boundaries of the geographic features represented by the indexed data. In addition, the multi-dimensional spatial index includes at least one additional dimension that represents another property. The other property is an orthogonal, non-spatial property. The other property may be a property of the geographic features represented by the indexed data or the other property may be a property of the data. The other property represented by the additional dimension may include: granularity, distance, altitude, scale bounds within which each spatial entity is significant, creation date of the data, expiration date of the data or other property. The multi-dimensional spatial index is applicable to the storage, retrieval, visualization and traversal of spatial data sets.
In addition to the two dimensions used to index the data spatially, the multi-dimensional k-d-tree in the embodiment of
In the embodiment of
As mentioned above, an index can be implemented homogeneously or non-homogeneously. In the embodiment of
The granularity indexing information used to represent three ranks of data in the multi-dimensional k-d-tree in the embodiment of
In the embodiment of the multi-dimensional k-d-tree index in
In the embodiment of
Like the homogeneous multi-dimensional k-d-tree index described in
Like the multi-dimensional k-d-tree index in
In the embodiments described in
(1) distance,
(2) altitude,
(3) scale,
(4) rank bounds within which it is contained or significant,
(5) expiration date, and
(6) creation date.
“Altitude” as a property refers to the altitude from which a map generated from the data is viewed. For example, for map views representing 10-70 meters altitude, certain data representing geographic features are used. For map views representing 71-200 meters altitude, certain other data are used.
“Scale” as a property refers to the map scale used by the map display application that uses the data. At a scale of 1:5000, certain data are used to represent geographic features. At a scale of 1:10,000, other data are used to represent the geographic features.
As items (5) and (6) in the above list indicate, the additional property that is added as a dimension does not have to possess a spatial quality per se.
In the embodiments described in
According to one of the alternatives described above, a multi-dimensional k-d-tree is disclosed that has at least six dimensions. According to that alternative, two dimensions are used for each spatial direction (i.e., two for latitude and two for longitude) so that four dimensions are used for spatially indexing the geographic data. In that alternative, the multi-dimensional k-d-tree includes at least two additional dimensions which are used for indexing the data based upon another property, e.g., granularity. If altitude is included as a spatial dimension and if two dimensions are used for each spatial direction, an alternative embodiment of a multi-dimensional k-d-tree has at least eight dimensions. In this alternative, six dimensions are used for spatial indexing (two for latitude, two for longitude and two for altitude). In addition to these six dimensions, the multi-dimensional k-d-tree includes at least two additional dimensions. These additional dimensions are used for indexing the data based upon a property of the data other than latitude, longitude or altitude of the represented feature, e.g., granularity.
As mentioned above, the multi-dimensional k-d-tree index can be implemented as either homogeneous (as in
In the previously described embodiments, the multi-dimensional index is implemented using a k-d-tree structure. In alternative embodiments, the multi-dimensional index may have a structure other than a k-d-tree. As an example, for the multi-dimensional index may have a different hierarchical data structure, such as those from the field of solid modeling, as described by Hanan Samet in The Design and Analysis of Spatial Data Structures, Addison-Wesley, Reading, Mass., 1990, Chapter 5.
In the embodiments described above, one additional property is indexed in the multi-dimensional k-d-tree in addition to the spatial dimensions. In alternative embodiments, the multi-dimensional k-d-tree can include dimensions for more than one additional property. For example, a four dimensional k-d-tree can be used for indexing latitude, longitude, granularity and expiration date of the represented data items.
This section presents examples to illustrate applications in which the advantages of the disclosed embodiments can be realized.
A. Map Storage
The embodiments of the multi-dimensional k-d-tree index, described above, allow infinite granularity within a single spatial data file (subject to the number of bits of resolution allocated to representing the granularity). Only a small percentage of entities in a data set are relevant at the highest layer, however, every entity in a spatial data set is relevant at the lowest layer.
Although three layers 422, 424, and 426 are shown in the embodiment of
B. Map Rendering
The embodiments of the multi-dimensional k-d-tree index, described above, allow precise control over the range of scales at which spatial entities are visualized. Each cartographic feature can possess a specific range of scales at which it is to be visualized. A minor feature might, because of its prominence or location, be visualized at uncharacteristically large map scales. By contrast, with conventional indexing schemes, cartographic features are visualized depending on broad, general criteria.
C. Navigation Routing
The embodiments of the multi-dimensional k-d-tree index, described above, allow for several rank-dependent representations of a navigable road segment, not just in a single spatial index but in a single navigable data set as well. High-ranking roads, for example, might be aggregated into progressively simpler representations as lower-ranking intersections are dropped. At a highest rank, a stretch of highway might be represented as a single line between two major junctions. At a lowest rank, the same stretch of highway might be represented as a string of shorter segments connecting the intersections that lie between the two major junctions.
Embodiments of the multi-dimensional k-d-tree index, described above, allow for several scale-dependent representations of an entity within a single spatial index. A divided highway, for example, might have a different representation for each of the map scales at which the data can be viewed.
Embodiments of the multi-dimensional k-d-tree index, described above, facilitate distance-dependent representations of a three-dimensional entity within a single spatial index. A sphere, for example, might be represented by tessellated polygons of increasing complexity depending on the distances from which it is viewed.
Several advantages follow from embodiments of the disclosed systems.
A. Allows Continuous Rather than Stepped Granularity.
Prior indexing techniques organized spatial data into stepped planes of decreasing granularity (e.g., layers 0, 1, 2 . . . n). The disclosed embodiments index spatial data according to their granularity as well as their physical dimensions, and therefore the granularity values are allowed to fall more precisely within a continuous range rather than a series of steps. For example, a road segment can have a rank of 1.375. A graphic of the road segment can be visualized at map scales up to exactly 1:9,056. A navigable road segment, on the other hand, can fall within a range of (possibly fractional) rank values.
B. Eliminates the Need to Parcelize Spatial Data into Separate but Coincident “Layer” Files.
Conventional indexing techniques require a spatial data set to be distributed among a series of “layer” files, each containing the data relevant to a certain degree of granularity (less granular data is often replicated among several, possibly all, layers). Each layer file then indexes its spatial entities using a traditional two-dimensional spatial index according to their minimum bounding rectangles: minx, miny, maxx, and maxy. The third dimension can further index spatial data by minz and maxz values indicating their bounding layers, eliminating the need to parcel a spatial data set into layers of various granularities.
C. Allows a Single Spatial Data Set to be Visualized at any Granularity.
Visual displays of two-dimensional spatial data face the same granularity issues as the physical storage format. Certain types of spatial entities (points of interest, local streets) lose their significance at higher map scales. Linear or polygonal graphics shrink to invisibility at higher map scales. The third dimension afforded by the Invention can further index spatial data by minz and maxz values indicating the minimum and maximum altitudes or map scales within which each spatial entity should be visualized.
D. Allows Multiple Scale-Dependent Representations of a Spatial Entity in a Single Collection of Graphics.
Visual displays of two-dimensional spatial data often use one of several different graphics to represent a spatial entity, depending on the scale or altitude at which the data is visualized. The third dimension afforded by the multi-dimensional k-d-tree index can index the minimum and maximum altitudes or map scales at which to display each graphic representation, allowing a single collection of graphics to distinguish among several scale-dependent representations of a spatial entity.
E. Eliminates the Need to Parcel Navigable Data into Separate but Coincident “Rank” Files, and Allows Multiple Rank-Dependent Representations of a Navigable Entity.
Navigation databases face the same granularity issue as physical storage formats and visualization. Like the “layer” sets into which a spatial data set is often parceled, navigation data sets are parceled into separate “rank” sets, each containing the data significant at a certain granularity or level of functionality. Like graphics collections, each navigation data set may use multiple rank-dependent representations of a navigable entity. At the lowest rank (most granular), an arterial road might consist of a number of connected segments joined at side-street intersections. At higher ranks (less granular), the arterial road might be aggregated into a single segment connecting other arterial roads. At the highest rank (least granular), the arterial road might not even be represented. Embodiments of the disclosed multi-dimensional index includes a third dimension that facilitates indexing navigable entities by minimum and maximum rank, allowing a single navigable data set to distinguish among several rank-dependent representations of each navigable entity. Embodiments of the disclosed multi-dimensional index also eliminate duplication of entities (points of interest, higher-rank intersections) that are shared among ranks.
It is intended that the foregoing detailed description be regarded as illustrative rather than limiting and that it is understood that the following claims including all equivalents are intended to define the scope of the invention.
| Number | Name | Date | Kind |
|---|---|---|---|
| 4811244 | Shimada et al. | Mar 1989 | A |
| 4873513 | Soults et al. | Oct 1989 | A |
| 5121326 | Moroto et al. | Jun 1992 | A |
| 5168452 | Yamada et al. | Dec 1992 | A |
| 5365451 | Wang et al. | Nov 1994 | A |
| 5475802 | Wescott et al. | Dec 1995 | A |
| 5499366 | Rosenberg et al. | Mar 1996 | A |
| 5544052 | Fujita et al. | Aug 1996 | A |
| 5701467 | Freeston | Dec 1997 | A |
| 5710915 | McElhiney | Jan 1998 | A |
| 5781906 | Aggarwal et al. | Jul 1998 | A |
| 5848131 | Shaffer et al. | Dec 1998 | A |
| 5930474 | Dunworth et al. | Jul 1999 | A |
| 5953722 | Lampert et al. | Sep 1999 | A |
| 5968109 | Israni et al. | Oct 1999 | A |
| 5974419 | Ashby | Oct 1999 | A |
| 6049755 | Lou et al. | Apr 2000 | A |
| 6119065 | Shimada et al. | Sep 2000 | A |
| 6122628 | Castelli et al. | Sep 2000 | A |
| 6125367 | Na | Sep 2000 | A |
| 6134541 | Castelli et al. | Oct 2000 | A |
| 6161105 | Keighan et al. | Dec 2000 | A |
| 6202023 | Hancock et al. | Mar 2001 | B1 |
| 6252605 | Beesley et al. | Jun 2001 | B1 |
| 6256581 | Fujii et al. | Jul 2001 | B1 |
| 6263276 | Yokoyama et al. | Jul 2001 | B1 |
| 6292745 | Robare et al. | Sep 2001 | B1 |
| 6295502 | Hancock et al. | Sep 2001 | B1 |
| 6308177 | Israni et al. | Oct 2001 | B1 |
| 6317741 | Burrows | Nov 2001 | B1 |
| 6327535 | Evans et al. | Dec 2001 | B1 |
| 6335695 | Kawasaki | Jan 2002 | B1 |
| 6381605 | Kothuri et al. | Apr 2002 | B1 |
| 6438269 | Kim et al. | Aug 2002 | B1 |
| 6456299 | Trombley | Sep 2002 | B1 |
| 6460026 | Pasumansky | Oct 2002 | B1 |
| 6470287 | Smartt | Oct 2002 | B1 |
| 6470344 | Kothuri et al. | Oct 2002 | B1 |
| 6484179 | Roccaforte | Nov 2002 | B1 |
| 6487495 | Gale et al. | Nov 2002 | B1 |
| 6600841 | Friederich et al. | Jul 2003 | B1 |
| 6603470 | Deering | Aug 2003 | B1 |
| 6609062 | Hancock | Aug 2003 | B2 |
| 6636802 | Nakano et al. | Oct 2003 | B1 |
| 6650998 | Rutledge et al. | Nov 2003 | B1 |
| 6684219 | Shaw et al. | Jan 2004 | B1 |
| 6703947 | Wallner | Mar 2004 | B1 |
| 6732120 | Du | May 2004 | B1 |
| 6772142 | Kelling et al. | Aug 2004 | B1 |
| 6915289 | Malloy et al. | Jul 2005 | B1 |
| 7151548 | Hirono | Dec 2006 | B1 |
| 7266560 | Lampert et al. | Sep 2007 | B2 |
| 20010011270 | Himmelstein et al. | Aug 2001 | A1 |
| 20010011352 | O'Mahony | Aug 2001 | A1 |
| 20010043745 | Friederich et al. | Nov 2001 | A1 |
| 20010051851 | Suzuki et al. | Dec 2001 | A1 |
| 20020004752 | Kuma | Jan 2002 | A1 |
| 20040205517 | Lampert et al. | Oct 2004 | A1 |
| 20060253481 | Guido et al. | Nov 2006 | A1 |