CA2219043C - Improved system and method for use and storage of geographical data on physical media - Google Patents

Improved system and method for use and storage of geographical data on physical media Download PDF

Info

Publication number
CA2219043C
CA2219043C CA002219043A CA2219043A CA2219043C CA 2219043 C CA2219043 C CA 2219043C CA 002219043 A CA002219043 A CA 002219043A CA 2219043 A CA2219043 A CA 2219043A CA 2219043 C CA2219043 C CA 2219043C
Authority
CA
Canada
Prior art keywords
data
parcel
geographic
records
parcels
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Lifetime
Application number
CA002219043A
Other languages
French (fr)
Other versions
CA2219043A1 (en
Inventor
Vijaya Israni
Richard A. Ashby
Paul M. Bouzide
John C. Jasper
Robert P. Fernekes
Gregory M. Nyczak
Nicholas E. Smith
David S. Lampert
James A. Meek
Aaron I. Crane
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Navteq Corp
Original Assignee
Here Global BV
Navigation Technologies Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Here Global BV, Navigation Technologies Corp filed Critical Here Global BV
Publication of CA2219043A1 publication Critical patent/CA2219043A1/en
Application granted granted Critical
Publication of CA2219043C publication Critical patent/CA2219043C/en
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G08SIGNALLING
    • G08GTRAFFIC CONTROL SYSTEMS
    • G08G1/00Traffic control systems for road vehicles
    • G08G1/09Arrangements for giving variable traffic instructions
    • G08G1/0962Arrangements for giving variable traffic instructions having an indicator mounted inside the vehicle, e.g. giving voice messages
    • G08G1/0968Systems involving transmission of navigation instructions to the vehicle
    • G08G1/096805Systems involving transmission of navigation instructions to the vehicle where the transmitted instructions are used to compute a route
    • G08G1/096827Systems involving transmission of navigation instructions to the vehicle where the transmitted instructions are used to compute a route where the route is computed onboard
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01CMEASURING DISTANCES, LEVELS OR BEARINGS; SURVEYING; NAVIGATION; GYROSCOPIC INSTRUMENTS; PHOTOGRAMMETRY OR VIDEOGRAMMETRY
    • G01C21/00Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00
    • G01C21/38Electronic maps specially adapted for navigation; Updating thereof
    • G01C21/3863Structures of map data
    • G01C21/3867Geometry of map features, e.g. shape points, polygons or for simplified maps
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/29Geographical information databases
    • GPHYSICS
    • G08SIGNALLING
    • G08GTRAFFIC CONTROL SYSTEMS
    • G08G1/00Traffic control systems for road vehicles
    • G08G1/09Arrangements for giving variable traffic instructions
    • G08G1/0962Arrangements for giving variable traffic instructions having an indicator mounted inside the vehicle, e.g. giving voice messages
    • G08G1/0968Systems involving transmission of navigation instructions to the vehicle
    • G08G1/0969Systems involving transmission of navigation instructions to the vehicle having a display in the form of a map
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09BEDUCATIONAL OR DEMONSTRATION APPLIANCES; APPLIANCES FOR TEACHING, OR COMMUNICATING WITH, THE BLIND, DEAF OR MUTE; MODELS; PLANETARIA; GLOBES; MAPS; DIAGRAMS
    • G09B29/00Maps; Plans; Charts; Diagrams, e.g. route diagram
    • G09B29/10Map spot or coordinate position indicators; Map reading aids
    • G09B29/106Map spot or coordinate position indicators; Map reading aids using electronic means
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99941Database schema or data structure
    • Y10S707/99943Generating database or data structure, e.g. via user interface

Abstract

An improved method and system for storage of geographic data on physical storage media. The geographic data are stored in a manner that facilitates and enhances use and access of the data by various navigation application functions in navigation systems that use the data. The geographic data includes a parcelization that separates the geographic data into parcels having less than or equal to a maximum parcel size but having at least a desired fill percentage. The parcelization method also provides for a division arrangement that facilitates addressing and identification of the parcels. According to a further aspect, thegeographic data includes special nodal entities that are used to collapse complex intersections, such as roundabouts, cloverleaves, and divided highways, into simpler data representations. The special nodal entities are associated with road segment data entities and used in a route calculation program in place of regular node entities. Further, the geographic data include a normalized attribute array that includes reoccurring combinations of certain selected attributes of the geographic data. Indices to the array are included in place of data corresponding to the selected attributes. When a navigation application program requests data, an entry in the normalized attribute table pointed to by an index in the data is used to return the requested data in the particular combination of attributes from the normalized attribute array. The geographic data is compiled by a method that facilitates access to the data on a physical medium. According to the compilation method, data files to be stored on the medium are organized into parcels. The data records within the data files are identified by the parcel in which they are located. An arrangement of all the data files on the medium is determined and a parcel identification related to the medium is assigned to each parcel. Cross references between data records areupdated to include the assigned parcel identifications and the parcels are stored on the medium.

Description

2 GEOGRAPHIC DATA ON PHYSICAL MEDIA
3
4 s BACKGROUND OF THE INVENTION
9 The present invention relates to a system and method for storage of to geographic information on physical media, and more particularly, the present 11 invention relates to a system and method for providing geographic data on a 12 physical storage medium for use in a computer-based navigation system.
13 Computer-based navigation systems for use on land have become ~4 available in a variety of forms and provide for a variety of useful features. One is exemplary type of navigation system uses (1) a detailed data set (or map) of a 1G geographic area or region, (2) a navigation application program, (3) appropriate o computer hardware, such as a microprocessor and memory, and, optionally, (4) 1g a positioning system. The detailed geographic data set portion of the navigation system is in the form of one or more detailed, organized data files or databases.
2o The detailed geographic data set may include information about the positions of 2t roads and intersections in or related to a specific geographic regional area, and 22 may also include information about attributes, such as one-way streets and turn 2s restrictions, as well as about street addresses, alternative routes, hotels, 24 restaurants, museums, stadiums, offices, automobile dealerships, auto repair 25 shops, etc.
26 The positioning system may employ any of several well-known 2'7 technologies to determine or approximate one's physical location in a 2s geographic regional area. For example, the positioning system may employ a 29 GPS-type system (global positioning system), a "dead reckoning"-type system, 1 or combinations of these, or other systems, all of which are well-known in the 2 art.
3 The navigation application program portion of the navigation system is a 4 software program that uses the detailed geographic data set and the positioning s system (when employed). The navigation application program may provide the user with a graphical display (e.g. a "map") of his specific location in the geographic area. In addition, the navigation application program may also s provide the user with specific directions to locations in the geographic area from wherever he is located.
to Some navigation systems combine the navigation application program, I1 geographic data set, and optionally, the positioning system into a single unit.
12 Such single unit systems can be installed in vehicles or carried by persons.
13 Alternatively, navigation application programs and geographic datasets may be 14 provided as software products that are sold or licensed to users to load in their 1s own personal computers. Personal computer-based systems may be stand alone t6 systems or may utilize a communication link to a central or regional system.
t'7 Alternatively, the navigation system may be centrally or regionally located and 18 accessible to multiple users on an "as needed" basis, or alternatively, on line via 19 a communications link. Navigation systems may also be used by operators of 2o vehicle fleets such as trucking companies, package delivery services, and so on.
21 Navigation systems may also be used by entities concerned with traffic control 22 and traffic monitoring. In-vehicle navigation systems may use a wireless 23 communication connection. Also, users may access a central navigation system 24 over an on-line service such as the Internet, or over private dial-up services, 25 such as CompuServe, Prodigy, and America Online.
26 Computer-based navigation systems hold the promise of providing high 2'7 levels of navigation assistance to users. Navigation systems can provide 28 detailed instructions for travelling to desired destinations, thereby reducing 29 travel times and expenses. Navigation systems also can provide enhanced so navigation features such as helping travellers avoid construction delays and 31 finding the quickest routes to desired destinations. Navigation systems can also 32 be used to incorporate real-time traffic information.

1 One potential obstacle to providing enhanced features in a navigation 2 system is the need to provide the geographic information on a computer-3 readable storage medium in an efficient, versatile, economic, and flexible 4 manner. In addition, the geographic information should be saved on the storage medium in a manner that facilitates access and use by the navigation application program portion of the navigation system. Accordingly, it is desired to provide '7 an improved computer-readable storage medium product having geographic data stored thereon for use in navigation systems.

to SUIVhVIARY OF THE INVENTION
II To achieve the foregoing and other objectives and in accordance with 12 the purposes of the present invention, an improved method and system provides Is for storage of geographic data on physical storage media. The geographic data 14 are stored in a manner that facilitates and enhances use and access of the data by various navigation application functions in navigation systems that use the 16 data.
I7 According one aspect, there is provided a parcelization method for Is dividing the geographic data into separate parcels. The parcelization method 19 provides for parcels with data contents less than a specified maximum data 2o content but having a desired fill percentage. The parcelization method also z I provides for a division arrangement that facilitates addressing and identification 22 of the parcels.
23 In a further aspect of the parcelization process, a common set of 24 boundaries is used to define all spatial parcels (including types such as data sets parcelized independently), such that for any two spatial parcels of any types, 25 one parcel is completely contained in the other. This reduces the amount of 27 data needed to represent spatial parcel boundaries in a global kd-tree index.
28 According to another aspect, the geographic data stored on a physical 29 storage medium include special nodal entities. Each of special nodal entity 3o represents a selected plurality of regular node entities in the geographic data.
s1 The selected plurality of regular node entities have been identified as related to 32 complex intersections of multiple road segments, such as roundabouts, 1 cloverleaves, and intersections of divided highways. In the geographic data, 2 road segment data entities are associated with the special nodal entities instead of with the regular node entities represented by the special nodal entities.
4 Then, in a route calculation program, the special nodal entities are used instead of the regular node entities. The special nodal entities collapse complex intersections of multiple road segments and regular node entities into simpler data representations thereby facilitating route calculation.
8 According to a still further aspect, a physical storage medium has stored thereon geographic data that includes at least one normalized attribute array.
to The normalized attribute array is provided as a separate table on the storage 1 l medium. The normalized attribute array includes reoccurring combinations of Iz certain selected attributes within the geographic data. Within entity records in 13 the geographic data, indices are included in place of data corresponding to the 14 selected attributes. The indices refer to entries in the normalized attribute array.
When a navigation application program accesses a data entity, the entry in the 16 normalized attribute table pointed to by the index in the data entity is used to m build the entire data record including the particular combination of attributes 18 pointed to by the index. By including combinations of geographic data 19 attributes in a normalized attribute array, storage space on the medium can be 2o conserved and access to the data can be improved.
21 According to yet another aspect, there is provided a compilation method 22 for providing data in a format that facilitates access to the data on a physical 23 medium. According to the compilation method, data files to be stored on the 24 medium are organized into parcels. The data records within the data files are identified by the parcel in which they are located. An arrangement of all the 25 data files on the medium is determined and a parcel identification related to the 27 medium is assigned to each parcel. Cross references between data records are 28 updated to include the assigned parcel identifications. The data files are 29 concatenated while maintaining the parcels and the concatenation is stored on 3o the medium.
31 In another aspect, aggregated segment data are included in some layers 32 of certain types of geographic data, such as data used for routing. These 1 aggregated segments are used to represent a plurality of road segments and 2 include sufficient information about intersections internal of the end points of 3 the aggregated segments to allow a route calculation program to access an 4 aggregated segment internally of its end points.
According to a still further aspect, shape points are generated for data entities that represent segments of roads. In collecting geographic data for use in navigation systems, shape points are determined for segments of roads that s bend or curve so that the position of points along the road segment can be accurately determined. When road segments are straight, shape points are to generally not included. When used in a navigation system, this lack of shape 1 t points for long, straight portions of a road segment may result in difficulty 12 associating the road segment with a particular locality during map display or 13 spatial searches. In this aspect of the disclosed system, shape point data are 14 generated at intervals along straight road segments and associated with the respective road segment thereby providing a means to locate the road segment 16 within the localities along its straight portions.
1~ BRIEF DESCRIPTION OF THE DRAWINGS
is FIG. 1 is a diagram illustrating a navigation system including a storage 19 medium upon which geographic data, and optionally other data, are stored.
2o FIG. 2 is diagram illustrating the software components in the navigation 21 system of FIG. 1.
22 FIG. 3 is a diagram illustrating the types of navigation data files stored 23 on the storage device of FIG. 1.
24 FIGS. 4A -4D are illustrations depicting the parcelization process for organizing the navigation data on the storage device of FIG. 1.
25 FIGS. SA-SE are illustrations depicting the process for including 27 references to related data in parcels that comprise some of the navigation data 2g on the storage device of FIG. 1.
29 FIGS. 6A-6F are illustrations depicting the process for substituting 3o references to supernodes in place of pluralities of regular nodes in a route 31 calculation geographic data set as shown in FIG. 3.
-5-1 FIGS. 7A and 7B are diagrams illustrating the use of normalized 2 attribute arrays to represent certain data attributes in certain data entries in the 3 geographic data set shown in FIG. 3.
4 FIGS. 8A-8D are diagrams illustrating a segment aggregation procedure for use in a route calculation geographic data set as shown in FIG. 3.
FIG. 8E is a diagram illustrating the relation of the aggregated segment in FIG. 8D to other data to which it is associated.
s FIGS. 9A, 9B, and 9C are flow diagrams showing the components of an embodiment of a geographic dataset compiler for producing a geographic 1o database for storage on a storage medium used in the navigation system of FIG.
11 1.
12 FIGS. 10A and lOB are illustrations showing generated shape points 13 produced in a process in the compiler illustrated in FIGS. 9A-9C.
14 FIGS. 11A, 11B, and 11C are illustrations showing subdivision of 1s cartographic data in a process in the compiler illustrated in FIGS. 9A-9C.
t6 DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS
17 I. OVERVIEW
1s Referring to FIG. 1, there is a diagram illustrating an exemplary 19 configuration of a navigation system 10. The navigation system 10 is a 2o combination of hardware and software components. In one embodiment, the 2.1 navigation system 10 includes a processor 12, a drive 14 connected to the 22 processor 12, and a memory storage device 16, such as a ROM, for storing a 23 navigation application program 18. The navigation application program 18 is 24 loaded from the ROM 16 into a memory 20 associated with the processor 12 in 25 order to operate the navigation system. A storage medium 22 is installed in the 26 drive 14. In one present embodiment, the storage medium 22 is a CD-ROM.
27 In another alternative present embodiment, the storage medium 22 is a PC
Card 2g (PCMCIA card) in which case the drive 14 would be substituted with a 29 PCMCIA slot. Various other storage media may be used, including fixed disks, so hard disks, DVD's, as well as storage media that may be developed in the
-6-1 future. The storage medium 22 includes geographic data, as described more 2 fully below.
3 The navigation system 10 may also include a positioning system 24.
4 The positioning system 24 may utilize GPS technology, a dead reckoning-type s system; or combinations of these, or other systems, all of which are known in the art. The positioning system 24 outputs a signal 26 to the processor 12.
The signal 26 may be used by the navigation application program 18 that is run s on the processor 12 to determine the location, direction, speed, etc., of the 9 navigation system 10. The navigation system 10 uses the geographic data 1o stored on the storage medium 22, possibly in conjunction with the output 26 31 from the positioning system 24, to provide various navigation application i2 features. These navigation application features may include, for example, route 13 calculation, map display, vehicle positioning (e.g. map matching), and 14 maneuver generation (wherein detailed directions are provided for reaching a is desired destination). These navigation application features are provided by 15 navigation application programs (i.e. subprograms or functions) that are part of 17 the navigation application 18. The navigation features are provided to the user t8 (e.g., the vehicle driver) by means of a display 27, speakers 29, or other means.
19 Referring to FIG. 2, the navigation application program 18 typically is a 2o software program that includes separate functions (or subprograms) including, 21 for example, a route calculation function 28, a map display function 30, and a 22 maneuver generation function 32. The navigation application program 18 may 23 include other functions or subprograms 34 in addition or alternatively to these.
24 Although these navigation application subprograms are represented as separate 2s functions or applications within the navigation application program 18, these 26 functions may be combined or otherwise provided.
27 In FIG. 2, the storage medium 22 is shown to have geographic data 40 28 stored on it. The geographic data 40 are in the form of one or more computer-29 readable data files or databases. The geographic data 40 may include so information about the positions of roads and intersections in or related to a 31 specific geographical regional area, and may also include information about the s2 attributes of the roads and intersections, such as one-way streets and turn _7_ 1 restrictions, as well as other information, such as street addresses, alternative 2 routes, hotels, restaurants, museums, stadiums, offices, automobile dealerships, auto repair shops, etc. The regional area may include a metropolitan area, such 4 as Chicago and its suburbs, New York and its suburbs, Los Angeles and its s suburbs, or alternatively, the regional area may include an entire state, such as California, an entire country, such as the United States, or combinations of these. More than one region may be stored on a storage medium.
s The various functions 28, 30, 32, and 34, of the navigation application program 18 use portions of the geographic data 40 from the medium 22 in order to provide useful navigation features to the user of the navigation system 11 10. Though not necessary for the present embodiments, it is preferred that the 12 navigation system include an interface layer 41 located between the various 13 application functions 28, 30, 32, and 34 and the geographic data files 40.
The t4 interface layer 41 facilitates the application programs in accessing and reading is the geographic data 40. In one embodiment, the interface layer 41 is a 16 collection of software library functions that isolate the navigation application t~ functions from the details of the geographic data 40. The interface layer 41 is 1~ described in more detail in U.S. Patent No. 6,047,280 issued 4 April, 2000 19 entitled "INTERFACE LAYER FOR NAVIGATION SYSTEM.

22 II. Types of Geographic Data 2~ As mentioned above, the geographic data 40 includes detailed 24 information about roads, intersections, speed limits, street names, location 2s names, turn restrictions, street addresses, alternative routes, hotels, restaurants, 2~ museums, stadiums, offices, automobile dealerships, auto repair shops, etc.
2~ These data may be represented in various different ways. Some ways may be 2~ proprietary whereas other ways may be in the form of industry or de facto 29 standards.
so One format used for geographic data is the GDF (Geographic Data File) s l format. Other formats are available and are understood to be encompassed _g_ t within the present embodiment. The GDF 3.0 format is described in a 2 document issued by the CEN (European Committee for Standardization) on 3 October 12, 1995.
4 The GDF format also is being considered for adoption outside of s Europe by the ISO (International Standards Organization). The GDF format is an interchange format for geographic databases. The GDF format is especially suitable for transferring geographic data sets from another format or to another A format. In order to use a geographic data set in a navigation system, the geographic data set may need to be converted from the GDF format into a more to specialized format. This conversion process is discussed in more detail below.
t 1 For purposes of the discussion of the embodiments herein, the following t2 terminology is used. It is understood that other terminology may be used t3 without departing from the scope of the present disclosure.
t4 For purposes of this embodiment, the terms "feature", "attribute", and 1s "relationship" with respect to a geographic data set may have the definitions set t6 forth in the CEN GDF standard, mentioned above. Specifically, the term 1~ "feature" may refer to a database representation of a real world object, the term "attribute" may refer to a property of a feature which is independent of other t9 features, and the term "relationship" may refer to a property of a feature 2o involving other features. In other data models, different terms may be used, but 2~ the similar concepts would be applied in a similar manner.
22 In the geographic data set, nodes and segments are features.
23 A node is a point representing the intersection of two or more roads, the 24 end of a road, or a point along a road where the road attributes change.
2s A segment is a representation of a section of a navigable road. A
26 segment has a node at each end and may have one or more shape points along 2~ its length.
2R The following attributes are associated with a segment:
20 (1 ) A shape point is a point along a segment where the segment so bends, or where the segments cross each other at a different 31 grades.

1 (2) A landmark is the intersection of a segment with a cartographic 2 feature that is considered significant for explication purposes 3 such as a river or railroad.
4 (3) A rank specifies the highest routing data layer in which the s segment appears and may also correspond to a functional class of the segment.
(4) The speed category classifies the segment based upon average s speed.
(5) The lane category classifies the segment based upon the number of lanes available for travel in a single direction.
11 (6) The route type specifies the type of route, for example, t2 European, Autobahn, Bundesstrassen, Landesstrassen, or 13 Kreisstrassen in Germany, or Federal, Interstate, State, or County 14 in the USA.
(7) The access characteristics specify restrictions on the types of 16 traffic that are permitted to travel on the segment.
17 A POI (point-of interest) is a feature such as a hotel, a restaurant, 1g museum, etc. A facility type is an attribute of a POI and identifies the 19 functional category of a POI, such as a hotel, restaurant, museum, etc.
2o A cartographic point is a representation of any point feature, such as a 2t landmark.
22 A polygon is the border of some two dimensional area or cartographic 23 feature, such as a lake.
24 A polyline is a representation of a linear cartographic feature, either non-navigable or navigable.
26 An administrative area is the region of a governmental entity, such as a 27 city or county 2s A zone is the region of a non-governmental name for an area, such as a 29 neighborhood or an unincorporated village.
3o A Place can be an administrative area or zone.
31 Third party data (TPD) is information about additional points-of interest.
32 These additional points-of interest data may be provided by a third party data 1 vendor or may be otherwise provided in a manner such that they are not fully 2 integrated with the rest of the geographic data.
3 In addition to the types of information described above, there may be 4 additional types of data included on the storage medium. For example, s soundex-type data may be included. This type of data provides for the identification of entities by words or phrases that sound like, or have a similar pattern to, a requested item. The data may be returned to the end-user in the s form of a list of possible matches for a requested item.

1 III. Organization of geographic data 2 Referring again to FIG. 2, the geographic data 40 are organized and 3 arranged in a manner that facilitates and/or enhances the performance of the 4 various navigation application functions 28, 30, 32, and 34. Some of the s aspects of the organization and arrangement of the geographic data 40 are specific to the particular physical medium used, but other aspects facilitate and 7 enhance the performance of the navigation functions independent and regardless of the particular storage medium. The aspects of the organization of the geographic data that facilitate the navigation functions include parcelization and m parcel identification of the geographic data, and the inclusion of normalized 11 attributes, supernodes, and segment aggregation in the geographic data.
Each of 12 these aspects is described in more detail below.
13 Each navigation function application or subprogram 28, 30, 32, and 34, 14 typically uses only a specific subset of the entire geographic data 40.
Where 1s the subsets overlap, the different applications making use of the same data may 1~ access them by different paths, in different orders, or may have different 1~ performance requirements.
18 Referring to FIG. 3, in a preferred embodiment, the geographic data 40 19 are organized as separate groups or subsets of the geographic data. Each of the 2o groups includes different portions or collections of the data. The portion of the 21 data included in each of the groups of the geographic data is related to the 22 navigation application function that utilizes the specific collection of the data.
23 In general, each of the functions 28, 30, 32, and 34 has its own subset or 24 collection of the entire geographic dataset. Arrangement of the data in this 2s manner may result in some duplication of portions of the entire collection of 26 geographic data. However, the navigation application functions will generally 2~ run faster if each navigation application function accesses only a subset of the 28 entire geographic data and if that subset includes only that portion of the entire 29 geographic data set that the particular application needs. In general, the portion 3U of the data used and associated with one function is grouped separately from 31 the portions of the data associated with and used by the other functions.
32 Further, in general, the data used by each one of the functions are collected together into physical proximity. At the same time, the subsets of data may 2 share overall parcelization boundaries and other organizational structure, which structural similarities further enhance the efficiency and performance of the 4 application programs.
s Each of the groups of geographic data used by each of the functions is organized into parcels, as explained more fully below. Parcels are collections '7 or groupings of data into similar or regularly-sized (though not necessarily s equal) amounts. When stored on a storage medium, parcels may correspond to physically distinct locations existing on the storage medium. In one present to embodiment, a parcel also represents the smallest quantity of data that is 11 retrieved from the storage medium.
12 The size of parcels (i.e. the maximum amount of data to be included in 13 a parcel) is predetermined taking into account several factors. One factor used 14 to determine the parcel size includes the access characteristics of the storage is medium upon which the data will be stored. These access characteristics t6 include transfer speed and latencies. For indexed data, there is a balance 1'7 between the average number of index parcel retrievals required to search for a Is specified record of data and the average size of the index parcels. To minimize t9 average search time for a specified record of data, single-speed CD-ROM
2o characteristics may determine an optimal parcel size of 4-16 sectors (8-32 21 KBytes), and furthermore that an index parcel should contain an amount of data 22 equal to the average of the data contents of the parcels that it indexes.
Indexes 23 can include kd-trees for spatial data and B-trees for ordered (e.g.
alphanumeric) 24 data.
2s Another factor used to determine the size of parcels relates to spatial 26 types of geometric data (such as routing and cartographic). For these types of 2~ data, special considerations, such as special types of data, may be needed to 2g account for parcel boundaries. Therefore, smaller parcel data content implies 29 larger total special parcel boundary data, thereby resulting in larger total 3o database data content and potentially less efficient access.
3 t Another factor used to determine parcel size includes the memory 32 constraints of the navigation system that will use the data. Many navigation 1 systems have limited memory, or memory that is optimized for use with 2 certain-sized blocks of data. Accordingly, to the extent possible, these types of 3 hardware requirements are also considered in determining the size of a data parcel.
The geographic data 40 includes one separate group 48 of parcels of data used by the route calculation function 28, another separate group SO of parcels of data for the cartographic function (i.e. map display) 30, still another separate group 52 of parcels of data for the maneuver function 32, another group 53 of data for cartographic cross-references, yet another separate group 54 of parcels of data for points-of interest geographic data. In one present t t embodiment, all of these groups of parcels are in one file, although there may 12 be more than one file.
t3 The subsets of geographic data for each of the functions are cross-14 referenced (and may include pointers) to provide interoperability among the is functions. The physical organization represented in FIG. 3 is independent of t6 the type of media used, and it is recognized that the implementation of the 1~ organization represented in FIG. 3 will take into account the specific features 1g associated with various different types of physical media, such as CD-ROM
t9 disc, PC card, etc.
2o Some of the subsets of geographic data are organized spatially.
2t Spatially-organized data are arranged so that the data that represent 22 geographically proximate features are located physically proximate in the data 23 set 40 and on the medium 22. For some of the navigation application 24 functions, spatial organization of their respective data provides for reading 25 closely related geographic data from the medium more quickly and loading 26 related geographic data into memory where it can be used. This kind of 27 organization minimizes accessing of the storage medium 22 and speeds up 28 operation of certain of the navigation functions.
29 The subsets of the geographic data that are organized spatially include 3o the route calculation data 48, the cartographic data (map display) 50, the 31 maneuver data 52, the cartographic cross-reference data 53, the points-of 1 interest data 54. Other of the data are organized and accessed non-spatially.
2 The non-spatially organized data 60 include navigable features 62 (e.g., street 3 names), places 63 (e.g. administrative areas and zones), postal codes 64, 4 crossroads/junctions 65 and cartographic features 66. Third-party data 61 are s not organized spatially. Each record of the third-party data 61 is associated with a record in the points-of interest (POI) data 54. Since points-of interest data 54 are organized spatially, spatial access to third-party data 61 can be achieved via their associated points-of interest data 54.
In a preferred embodiment, both the route calculation portion 48 of the to data and the cartographic portion 50 of the data are layered. Each layer within 11 each data type extends to cover the same geographic region. However, higher t2 layers of a data type contain less detail than lower layers. For example, layer 0 m of the route calculation portion of the data generally will be the most detailed 14 and will include all the streets and intersections in the geographical region to Is which the geographic data set 40 corresponds. Layer 1 of the route calculation 16 data generally will omit the slower or less important streets in the geographical 1'7 region, layer 2 generally will omit the next most slower or less important t8 streets, and so on. (The inclusion of streets in given layers can be defined by 19 the rank attribute. For example, assuming the street segments are given ranks 20 of I to IV depending on the street type (e.g. alley or interstate), Layer 0 can be 21 defined to include all ranks I-IV, Layer 1 can be defined to include only ranks 22 II-IV (omitting rank I streets), and so on.) The route calculation function may 23 be performed by using combinations of the layers, using the higher layers to the 24 extent possible.
2s The map display function 30 also benefits from having its subset 50 of 25 the geographic data organized to facilitate rapid panning and zooming. For 27 example, zooming may be done more efficiently if the subset 50 of geographic 28 data is organized into layers, with greater detail at the lower layers and less 29 detail at the higher layers. Furthermore, in the subset 50 of geographic data 3o used by the map display function 30, if each of the data parcels contains an 31 index of its neighboring parcels at the same layer, as well as at layers above 32 and below it, then panning and zooming can be done more efficiently by the -ls-t map display function 30 without further looking up in a separate index file.
2 The internal index of the parcel's neighbors at the same and other layers can be 3 generated efficiently if parcel boundaries are established using the parcelization 4 method described below.
The route calculation function 28 benefits from having its portion 48 of 5 the geographic data 40 organized to facilitate searches for an optimal route between two points. Also, the route calculation function 28 can run more rapidly where as much of the geographic search data as possible is kept in 9 memory 20, especially if access to the storage medium 22 is relatively slow, to such as with a CD-ROM. Accordingly, the subset 48 of the geographic data 40 ~ 1 used by the route calculation function 28 is preferably organized so that each 12 parcel covers a maximum possible physical geographic area (within the 13 constraints of a fixed buffer size or a limited number of buffer sizes).
This 14 objective can be met by limiting the data or information in route calculation data parcels to only that information specifically relevant to route calculation, 16 and including as little irrelevant information as possible. For example, in the subset 48 of the geographic data used for route calculation, the names of streets m may be omitted.
19 Information such as street names is used instead by the maneuver 2o function in order to generate directions to an end-user for route guidance.
21 Thus, street names and additional information used for the maneuver function 22 32 are included in separate spatial and non-spatial data parcels 52 .
However, 23 street name information is not included in the route calculation subset 48 or 24 cartographic subset 50.
2s The points-of interest geographic data 54 are parcelized spatially and may be interleaved with the cartographic data 50 to facilitate both the display 2~ of points-of interest on the screen, and point-and-click selection of points-of 2s interests by users mostly Yo obtain points-of interest "nearby" the vehicle or the 29 route.
so As mentioned above, to facilitate access to all types of map data in all 3 t contexts, the different types of spatially organized parcels (route calculation, 32 cartographic, maneuver, points-of interest and cartographic cross reference) each 1 contain pointers to the other types of parcels covering the same geographic 2 area. For example, a route calculation parcel contains pointers to cartographic 3 parcels with data pertaining to coextensive or overlapping coverage areas.
In 4 addition, a number of indices or cross-references on important keys or attributes s allows access to map data by various paths For instance, a point-of interest could be located by its "name", by its "facility type" (type of points-of interest), 7 or by its chain ID (e.g. "McDonald's" restaurants). This location could be s further qualified to be within a city, or within a specified distance of the current location. A destination could be specified as a crossroads, a street address, or 1o by point-of interest name, possibly being qualified as being within a particular 11 city or town or other geographical indicator.
12 IV. Physical Storage Format 13 A. ' Parcelization 14 1. Overview 15 As mentioned above, the data 40 on the storage medium 22 are 16 parcelized, that is, most or all of the data are organized into smaller portions 17 with each parcel including a plurality of data records and other information.
1g Parcels also correlate to physical subdivisions for storage of the data on the 19 storage medium. In general, the full collection of data pertaining to an entire 2o geographic region is too large to be loaded into memory at one time.
21 Therefore, the data is organized into smaller groupings or parcels. For some 22 map data, the parcels are spatially-organized, i.e. each parcel represents 23 geographic data encompassed with a geographic rectangular area (including 24 ' square areas) of the physical region.
25 The groupings of data into parcels are made for several purposes. First, 26 data are organized into parcels in an attempt to group into one parcel, or as few 27 parcels as possible, most or all of the data that any one of the navigation 2s functions may require in order to perform an operation for the user. If the user 29 wants to display a map of his location, it would be preferable that the data 3o relating to the geographic area immediately around the user are organized so 31 that all the necessary data could be accessed and loaded into memory quickly.

1 The parcels including all the data needed to display a map of the user's area 2 should therefore be grouped together into one or as few parcels as possible.
In 3 general, the larger the parcel the better. Each parcel should ideally cover as 4 much geographical area as possible so as many operations pertaining to that s geographical area can be handled. Another reason that data are parcelized is so that data are grouped into parcels with each parcel having a size that can be readily used by the navigation system applications. These sizes relate to
8 hardware and memory constraints and may be regular multiples of 2Kbytes, 4Kbytes, 8Kbytes, or l6Kbytes, for example.
to In a preferred embodiment, parcels for all types of data are constructed 11 using the same method. As mentioned above, it is desired that each parcel Iz contain as much data as possible. If, for example, a rectangle encompassing the 13 entire geographic area were merely bisected again and again until all the 14 smaller rectangles formed therefrom contained no greater than a desired Is maximum amount of data, it is likely that many parcels formed from such t6 rectangles would be considerably less than full. This results from the fact that 1'7 a geographic area typically does not have a uniform density of geographic data.
is Having a considerable portion of parcels that are substantially less than full results in waste of space and poorer performance. The parcelization method 2o described below provides for maximizing the number of parcels that are 2t relatively full. The method described below also provides for a parcelization 22 arrangement that expedites identification and retrieval of the parcels.
23 As mentioned above, each of the navigation functions is provided with a 24 subset of the entire geographic data set suitable for that function.
Accordingly, 2s starting with a version of the entire geographic data set, separate subsets of the 26 entire geographic data set are generated for each of the separate functions. For 2~ example, from the entire geographic data set including all the geographic data 28 for a particular geographic region, separate subsets of the geographic data are 29 generated including a route calculation data subset, a cartographic data subset, a so maneuver data subset, a points-of interest data subset, a cartographic feature 31 data subset, a navigable feature data subset, a crossroad/junction data subset, a 32 third party data subset, a place data subset, a postal zone data subset, and so on.

t After, or as part of, the generation of the separate subsets, parcelization of each 2 of the subsets is performed. The subsets can be parcelized in any order, but in a preferred embodiment, for the spatially organized data (i.e., routing, 4 cartographic, maneuver, and so on), the type of data that is expected, in s general, to be the densest set, i.e., the subset of data expected to be divided into the largest number of parcels, is parcelized first to generate a global kd-tree.
For example, the route calculation data may be the densest, and accordingly, s parcelization is performed on that subset of the geographic data first.
9 2. Determination of initial parcel boundaries to Although it is possible to establish an initial parcel boundary at any location, in a preferred embodiment, initial placement of parcels boundaries is 12 chosen as follows. First, the geographic data are examined to determine their 13 outer geographic boundaries. Referring to FIG. 4A, there is an illustration of a 14 map of a geographic area 100. The geographic data 40 to be stored on the 15 storage medium 22 relates to the geographic area 100. Shown on the map of 16 the geographic area 100 are a plurality of points 101. As mentioned above, m parcelization is first performed on one of the subsets of data, for example the 1g route calculation subset. Included in the route calculation subset of data are 19 individual data records that identify nodes. The node records correspond to 2o specific physical locations in the geographic area 100. Each of the nodes has a 21 specific latitude, longitude, and relative elevation ("Z-level"). The route 22 calculation subset of data also includes data records that identify segments. The 23 segment records correspond to physical features that have a length, such as 24 portions of roadways in the geographic area. Each of the segment records 25 refers to and can be identified by nodes located at the end points of the 25 segment. In addition, a segment may include one or more shape points between 27 its end points that are used to identify a bend (or physical position) in the 2s segment. Accordingly, all of the spatially-related geographic data may be 29 identified by nodes that have a unique latitude and longitude in the geographic 3o area 100. The points 101 shown in FIG. 4A correspond to the nodes in the 3 t geographic dataset. Each of the points 101 is shown on the map of the 1 geographic area 100 at the location corresponding to the latitude and longitude 2 of the node to which it corresponds in the route calculation subset of the geographic data set. FIG. 4A is used for illustration purposes only, and in a 4 preferred embodiment, the parcelization procedures described herein are s performed by a computer program operating on the appropriate subset of the data.
7 Referring again to FIG. 4A, the outermost nodes are identified. For example, node 102W is the node in the route calculation portion of the geographic data set that has the maximum longitude, node 102E is the node in 1o the route calculation portion of the geographic data set that has the minimum n longitude, node 1025 is the node in the route calculation portion of the 12 geographic data set that has the minimum latitude, and node 102N is the node 13 in the route calculation portion of the geographic data set that has the maximum 14 latitude. The nodes 102N, 1025, 102E, and 102W define a minimum bounding is rectangle ("MBR") 106, as represented by dashed lines in FIG. 4B. A
16 minimum bounding rectangle is the smallest rectangle that contains all of the m geographic data.
18 In a preferred embodiment, dimensions of latitude and longitude are 19 expressed in navigation dimensional units equal to 1/100,000 of a degree.
Like 2o degrees, navigation units may be absolute or may refer to a coordinate position 2t on the surface of the earth. Furthermore, in a preferred embodiment, the 22 dimensional units are integers. Thus, the smallest unit of measurement is "1"
23 which represents 1/100,000 of a degree. In alternative embodiments, other-24 than-degree values can be choosen as units to represent dimensions, and 25 measurement units can be chosen that include fractions.
26 In a preferred embodiment, the minimum bounding rectangle is adjusted 2'7 outwardly at its eastern and northern edges by one additional dimensional unit 28 from those defined by nodes 102N and 102E. For example, if 102N had a 29 latitude of 282, then the northern side of the minimum bounding rectangle 3o would be at the latitude 283, i.e. 282+1. Likewise, if 102E had a longitude of 31 90,000, then the eastern side of the minimum bounding rectangle would be at 32 the longitude 90,001. This is illustrated in FIG. 4C.

1 The data set defined by such an adjusted minimum bounding rectangle 2 can be regarded to include all data encompassed within the minimum bounding 3 rectangle, as well as any data that intersects the western and southern edges (but 4 not the northern and eastern edges) of the minimum bounding rectangle. The s advantage of using such an adjusted minimum bounding rectangle is that each minimum bounding rectangle will consequently encompass a unique data set.
In other words, a node will be found in only one minimum bounding rectangle.
g This holds true even where the longitude of the eastern edge of a given 9 minimum bounding rectangle (equal to longitude + 1 of 102E) is the same as to the longitude of the western edge of the minimum bounding rectangle to the 11 immediate east.
12 The former minimum bounding rectangle only includes data 13 encompassed by such shared edge (but not data intersecting the shared edge), 14 whereas the latter minimum bounding rectangle may include data intersecting 1 s the shared edge.
16 In a preferred embodiment, a minimum enclosing dividable-tile (or 1'7 "di-tile") 107 is determined that encompasses the minimum bounding rectangle is 106. A dividable tile ("di-tile") refers to an area of dimensions 2Ix2' that 19 includes all map data between latitudes M x 2I navigation units and (M+1) x 2o navigation units and between longitudes N x 2' navigation units and (N+1) x 2' 21 navigation units, where M and N are integers, and I and J are positive integers).
22 One way of determining a minimum enclosing di-tile is to define 23 acceptable intervals and to require that the minimum enclosing di-tile have as 24 its sides only acceptable intervals. Acceptable intervals are defined in both 2s directions of latitude and longitude. (Any arbitrary starting location may be 2~ chosen, but in a preferred embodiment, acceptable intervals conform to 27 conventional latitude and longitude starting locations, i.e. the equator and 2s Greenwich). Acceptable intervals may be defined to include only powers of 2, 29 for example: 0-1, 2-3, 4-5, 6-7, ... , 0-3, 4-7, 8-11, 12-15, ... , 0-7, 8-15, 30 16-23, 24-31, ... , 0-15, 16-31, 32-47, 48-63, ... , and so on (in navigation 31 units).

1 Referring to FIG. 4D, examples of acceptable intervals are represented.
2 In FIG. 4D, "0" may represent either Greenwich or equator. The units 1, 2, ...
3 an so on, may represent navigation units equal to 1/100,000th of a degree.
4 Accordingly, starting from Greenwich (longitude 0), acceptable intervals include any of those represented by lines in the figure. For example, if the minimum 6 bounding rectangle has a west coordinate of 5 and an east coordinate of 12, the '7 acceptable interval would be the interval I(0,16). A similar set of acceptable intervals relative to the equator are defined for north-south coordinates.
As mentioned above, in a present preferred embodiment, the sides of the to minimum enclosing di-tile for the minimum enclosing rectangle are required to n be acceptable intervals. Therefore, in a present embodiment, the east-west 12 coordinates of the initial di-tile are multiples of 2I units, and the north-south t3 coordinates of the initial di-tile are multiples of 2J units. (I and J are integers 14 so that the east-west length of the initial di-tile may have a dimension in unit's of l, 2, 4, 8, 16, 32, 64, 128, 256, S 12, or 1024, and so on, and the north-south 16 length of the initial di-tile may have a dimension in units of 1, 2, 4, 8, 16, 32, t'7 64, 128, 256, 512, or 1024 and so on, for example).
1s One advantage of forming the minimum enclosing di-tile in this manner 19 is that di-tiles for different map coverage areas can be merged together more 2o easily, since the boundaries for different map coverage areas are established 21 using the same approach.
22 It is appreciated that in map coverage areas including both negative and 23 positive navigation units (i.e. coverage areas in which the minimum bounding 24 rectangle includes either the equator or Greenwich), additional acceptable intervals are required and accordingly, intervals of length 2'g starting at 26 coordinates which are multiples of 2", intervals of length 2'9 starting at 27 coordinates which are multiples of 2'g, etc. are acceptable; some of these 28 intervals overlap 0° longitude (Greenwich) and 0° latitude (the equator).
29 3. Establishing initial parcel sizes 3o Once the minimum enclosing di-tile is established, the data can be 3t parcelized. In one alternative, the parcelization process can begin by applying 32 the regular division procedure, described below, to the minimum enclosing t di-tile 107. However, in a preferred embodiment, the data in the coverage area 2 are first examined based upon an organization of the data into a regular grid of 3 rectangles formed from the minimum enclosing di-tile. This is equivalent to 4 bisecting the minimum enclosing di-tile and then the rectangular (or squares) s formed therefrom a number of times until a regular grid of rectangles results.
6 Each of the rectangles in this grid may be referred to as an "initial tile."
The initial tile size is determined to be the largest geographic area allowed to be s represented by one parcel at any layer of any of the types of data in the geographic data set. In one embodiment, one fixed initial tile size is defined 1o for all regions throughout the country so that regions can be more easily 11 merged. In one present preferred embodiment, each of the initial tiles is of a Iz fixed, predetermined size of 2" navigation units by 2" navigation units.
13 Such initial tiles are shown as the grid 108 in FIG. 4B. The initial tiles t4 may alternatively be defined by simply overlaying the geographic area 100 with 1 s a regular grid having the same pattern as grid 108. In either event, the grid 108 16 is made up of initial rectangular tiles (e.g. tiles 110a,b, tile 110$+1,6, ...
1'7 tile 110m,").
1s The placement of the boundaries of the grid 108 is determined in order 19 to enclose the minimum bounding rectangle 106, (that is, the minimum 20 longitude (corresponding to node 102E), the minimum latitude (corresponding z1 to node 102S), the maximum latitude (corresponding to node 102N), and the z2 maximum longitude (corresponding to node 102W)). The grid boundaries are 23 defined so that when the grid is overlaid on the region 100, as shown in FIG.
24 4B, all the spatial data are encompassed and the initial tiles have a size as 2s described above. In a preferred embodiment, the placement of the grid 26 boundaries also conforms to the acceptable intervals, described above.

1 Example 2 An example for implementing the above procedure for determining the grid boundaries is as follows:
4 1. Start by setting MinLat, MaxLat, MinLong and MaxLong to the minimum and maximum latitudes and longitudes of the minimum bounding 6 rectangle 106. These values are in units of 1/100,000 of a degree, so that they 7 are in the range -18000000 to 18000000 for the longitudes and -9000000 to 9000000 for the latitudes.
2. For K=1 to 25 in increments of l:
to (a) Divide MaxLat by 2K.
11 (b) Multiply MaxLat by 2K. Since MaxLat is an integer, these two 12 operations have the effect of truncating the K low-order binary 13 digits of MaxLat. Actually, this is done by right-shifting and 14 left-shifting MaxLat, which is more efficient than division and is multiplication.
16 (c) If the minimum bounding rectangle's maximum latitude is m greater than MaxLat, add 2~ to MaxLat.
18 (d) Divide MinLat by 2K.
19 (e) Multiply MinLat by 2K.
20 (f) If the minimum bounding rectangle's minimum latitude is less 2 t than MinLat, subtract 2K from MinLat.
22 (g) If MinLat + 2K is equal to MaxLat, stop. Otherwise repeat at 23 step (a) for the next higher value of K.
24 3. Perform the operations of Step 2 on MinLong and MaxLong.
25 - At this point MinLat, MaxLat, MinLong and MaxLong define the 26 boundaries of grid 108, i.e., the di-tile, enclosing the minimum bounding 27 rectangle 106.
2s 4. Establishing parcels 29 As mentioned above, a purpose of parcelizing the data is to include in 3o each parcel an amount of data that is close as possible to, but not in excess of, 1 a predetermined maximum parcel amount. For example, the predetermined 2 maximum amount may be 16 Kilobytes.
Each one of the initial tiles in the grid 108 of FIG. 4B is examined as a 4 "trial parcel" to see if the amount of data in it fits into a single parcel.
If the data within the "trial parcel", including any parcel overhead (such as index information and headers), would (accounting for data compression, if used) be less than or equal to the maximum parcel amount, then a parcel is constructed with that initial tile and no division of that initial tile for that particular data type is performed. On the other hand, any "trial parcel" that includes an 1o amount of data that exceeds the predetermined maximum parcel amount is n divided using one of the two following procedures as a function of the amount t2 by which the data in the "trial parcel" exceeds the desired maximum amount.
13 (In a preferred embodiment, an estimation technique, described below, is used t4 in determining trial parcels. The estimation technique takes into account parcel overhead and compression without actually performing all the steps necessary to 16 form a parcel.) 17 Regular dividing procedure. If the amount of data in a "trial parcel"
1 s exceeds the maximum parcel amount by a predetermined multiple, the "trial t9 parcel" is divided into two rectangles. In a preferred embodiment, the division of the "trial parcel" into two rectangles is carried out by first determining the 21 minimum enclosing di-tile for the trial parcel (in the manner described above 22 with the initial tile), bisecting the enclosing di-tile, and then dividing the "trial 23 parcel" where the line of bisection of the di-tile intersects the trial parcel.
24 Alternatively the "trial parcel" may itself simply be bisected. (It is noted that a 2s bisection of the enclosing di-tile will not always bisect the trial parcel, but 2~ instead may divide the trial parcel at an off-center location. For case of 2'7 reference herein, such division of the trial parcel will nonetheless be referred to 28 as "bisection"). In either event, the line of bisection of the di-tile will be in 29 either the longitudinal or latitudinal direction. In a present preferred so embodiment, the di-tile is bisected in whichever of the longitudinal or 31 latitudinal divisions minimizes the maximum aspect ratio (~1) of the two 32 resulting rectangles of the trial parcel. Each of these resulting rectangles is then 1 examined as a "trial parcel", as described above, and bisected if the data 2 contained in it exceeds the predetermined multiple of the maximum parcel 3 amount. Each of these sub-rectangles is also then examined as a "trial parcel", 4 as described above, and the process continues until the amount of data in a s rectangle or sub-rectangle is less than the predetermined multiple of the maximum parcel amount. In a present embodiment, the maximum parcel amount is predetermined to be 16 Kilobytes of data, and therefore the s predetermined multiple is 3.2. (In alternative embodiments, the maximum amount may be predetermined to be another amount greater than or less than 16K, such as 8K or 32K, or even amounts greater or less than these). Thus, 11 "trial parcels" are bisected according to the current procedure where their data ~2 content exceeds 51.2 kilobytes. The predetermined multiple is chosen based 13 upon a desired minimum fill percentage for each parcel. In the present 14 embodiment, the desired minimum fill percentage is 80%. When the amount of data in any trial parcel is less than the predetermined amount, further 16 subdivisions of the trial parcel follow the "Custom division procedure", 1~ described below.
1s Custom division pt~ocedure. If the amount of data in any "trial parcel"
19 exceeds the maximum parcel amount, but is less than the predetermined 2o multiple of the maximum parcel amount (e.g., l6Kb < x 51.2Kb), the 2t following custom division procedure is used: Further divisions of the "trial 22 parcel" are not necessarily bisections, but rather are made in a manner that 23 tends to minimize the number of parcels created. This has the effect of 24 minimizing both the space needed to store the parcels and wasted space within 2s the parcels.
26 For example, given a trial parcel that contains data equal to 3.6 times 2~ the maximum parcel size or amount, it should be possible to fit this data into 28 four parcels. However, bisection of the trial parcel may divide it into two 29 rectangles of 1.2 times the maximum parcel size and 2.4 times the maximum 3o parcel size, respectively, which would then end up in a minimum of five 31 parcels if bisection were used to divide each of the rectangles. Therefore, 32 subdivisions of the rectangle at this stage are made with the goal of minimizing t the number of parcels created, but with the restriction that the division line not 2 be arbitrary. More particularly, where a "trial parcel" has a data content that is 3 greater than the maximum parcel size, but not in excess of the predetermined 4 multiple thereof the "trial parcel" is divided at a division of 2-X along one of its s dimensions. In a present preferred embodiment, X={1,2,3,4,5}. Thus, the trial 6 parcel is divided at 1/2 or 1/4 or 1/3 or 1/16 or 1/32 divisions of its width. For 7 example, a trial parcel may be divided into two rectangles with widths equal to s 5/8 and 3/8, respectively, of the width of the trial parcel. This custom division may be applied directly to the dimensions of the trial parcel, or, in a present 1o preferred embodiment, it may be applied to the dimensions of, a minimum 11 enclosing di-tile of the trial parcel. In the latter case, the trial parcel is divided 12 where the division line of the di-tile intersects the trial parcel. In either event, 13 the division line will be in either the longitudinal or latitudinal direction.
14 Candidate division lines are examined as follows: First, divisions are t5 made at each of the specified 2-" divisions along both the longitudinal and t6 latitudinal widths of the trial parcel. For each such division, the aspect ratios 17 (defined as the ratio of the larger dimension to the smaller dimension) of each 1g of the two resulting rectangles are determined, and the greater of the two is 19 identified. The greatest aspect ratios identified for each of the candidate 2o division lines are then compared, and the candidate division lines are ordered 2t from smallest to greatest of such aspect ratios. The rectangles resulting from 22 the candidate division lines are then examined, beginning with the first 23 candidate line in the ordered list. The candidate division line chosen for 24 dividing the trial parcel is the first one in the list encountered where the data 2s content in one of its two resulting rectangles is greater than the maximum 25 parcel size but less than or equal to a multiple (such as two times) of a 2'7 minimum fill percentage times the maximum parcel amount and the maximum 28 parcel amount. For example, the division line is chosen to include in one of 29 the resultant rectangles an amount between 1.6 and 2.0 times the maximum 3o parcel amount. This should enable making one more division of the rectangle 31 to form two further sub-rectangles each with a fill percentage greater than 80%
32 (.8) of the maximum parcel amount. Each of these resultant sub-rectangles 1 with a fill percentage between 80% and 100% of the maximum parcel amount 2 is formed into parcels. If no candidate division line meets this criterion, then the first candidate division line (i.e. the one with the smallest maximum aspect 4 ratio) is used to divide the given rectangle.
Example The following describes how, during parcelization, a determination is 7 made of when to stop bisecting trial parcels, and to start the custom procedure 8 of evaluating candidate divisions of 1/32, 1/16, 3/32, 1/8, 5/32, 3/16, 7/32, 1/4, 9/32, 5/16, 11/32, 3/8, 13/32, 7/16, 15/32, 17/32, 9/16, 19/32, 5/8, 21/32, 11/16, l0 23/32, 3/4, 25/32, 13/16, 27/32, 7/8, 29/32, 15/16, and 31/32 along both the t t longitudinal and latitudinal widths of the trial parcel.
12 A target parcel fill percentage F is chosen. For the sake of example, let 13 F be 0.8 (80 percent). As mentioned above, a maximum parcel size P is also 14 determined. P is expressed in bytes and is the maximum amount of data that can be put into a parcel. Optimally, therefore, it is desired to create parcels in 16 the range of F x P bytes and P bytes in size.
t~ If a trial parcel having a data size D is in the range P < D < 1.6 x P, Ig then it is not possible for parcels to be created therefrom whose data sizes fall t9 in the target range. If the trial parcel is divided such that one resulting 2o rectangle has a data size greater than or equal to 0.8 x P, then the other one has 21 a data size less than 0.8 x P.
22 This process can be extended to give the following list of non-acceptable 23 data sizes:
24 Unacceptable Data Sizes D:
0<D<0.8xP
26 P<D<l.6xP
27 2xP<D<2.4xP
2s 3 xP<D<3.2xP
29 The list stops at this point, because the next entry would be 4xP<D<4xP.

1 From the above list a complementary list of acceptable data sizes can be 2 generated:
3 Acceptable Data Sizes D:
4 0.8xP<_D<_P
s l.6xP<D<2xP
6 2.4xP<_D<_3 xP
7 3.2xP<_D
8 The above list corresponds to a fill percentage F equal to 0.8. Other fill percentages generate different lists of acceptable or unacceptable data sizes.
In to general, the list of unacceptable data sizes is in the following form:
11 Unacc~table Data Sizes D:
12 0<D<FxP
13 P<D<2xFxP
14 . . .
1s nxP<D(n+1)xFxP
16 . . .
17 continuing until an empty range is reached.
18 The above is used as follows in the custom procedure for forming the 19 parcels: The data sizes of each of the two rectangles resulting from a trial 2o parcel division should fall within one of the acceptable ranges (whenever 21 possible). In practice, this means that as long as the data size in a rectangle is 22 somewhat larger than the high end of the highest unacceptable range (3.2 x P, 23 in the example), the rectangle can be divided according to the above-described 24 bisection procedure. Once the high end of the highest unacceptable range is 25 approached, custom divisions (i.e., divisions of 1/32, 1/16, 3/32, 1/8, etc. in this 26 example) are considered.
27 Candidate division lines are examined and compared in the manner 28 described above, and the one selected for division is where the following 29 criterion is met: The amount of data falling into each of the two subrectangles 30 of the trial parcel is of a size such that it is theoretically capable of, in turn, 31 being subdivided into rectangles that, on the average, achieve a specified 1 minimum parcel data fill percentage. Some cases may occur in which the 2 above criterion cannot be met.
The data are divided at the division line chosen in the custom division procedure, and, for each of the two subrectangles created, the custom division s process is repeated as necessary. As mentioned above, the bisection and custom division procedure can be applied either directly to the trial parcel or to the minimum enclosing di-tile of the trial parcel, although the latter is preferred. It g is noted that in some cases the minimum enclosing di-tiles are exactly equal to trial parcel boundaries. This most notably may occur with respect to the initial to tiles 108. The utility of defining the divisions in terms of the minimum 11 enclosing tiles is that a tile can be repeatedly divided in half evenly, whereas a 12 trial parcel rectangle of arbitrary dimensions cannot. Another advantage is that t3 this procedure facilitates processing at boundaries between different databases.
14 The custom division of a trial parcel at a 2-x division of the tile's side is 15 equivalent to a sequence of from 1 to X bisections. Consequently, the division 15 lines, and therefore the resulting subrectangles, can be represented in a minimal n7 number of bits (5 bits for '/3Z divisions, as opposed to up to eight or sixteen 1s bytes to define an arbitrary rectangle).
t9 (In examining amounts of data included in rectangles, a convention is 2o established that any data entity that is located exactly on a dividing line is 2t included with the data in the rectangle "to the right" ("east") of the line, if the 22 dividing line is a north-south line, and with the data "above" ("north of') the 23 line, if the dividing line is an east-west line.) 24 The above procedure is performed on all the initial tiles 110 (and, where 2s necessary, all resulting rectangles) in the grid 108.
26 5. Subsequent parcelizations 27 As mentioned above, each subset or type of geographic data is 2s maintained separately from subsets of other types. For example, route 29 calculation data are located separately from cartographic data. Further, within a so single subset of data, the data may be further separated into layers.

1 After the parcelization procedure described above is performed on one 2 layer of one type of geographic data (i.e., the layer and type estimated to be the densest, such as layer 0 of the route calculation data), parcelization of the other layers of the same data type and other data types are performed. These other s parcelizations (i.e. parcelizations of other layers of the same data type and of other data types) begin with exactly the same initial tiling grid 108 as was used 7 in the initial parcelization. At each recursive level in each subsequent parcelization of different data types, when subdivision of a rectangle is necessary it is required to be performed at exactly the same division line to (whether accomplished through bisection or custom division) that was used 11 during the parcelization of the initial data type (or any previous parcelization).
12 Since higher layers are less dense, it may not be necessary to divide the 13 data into as many parcels in order that each parcel be within the maximum t4 parcel size. Accordingly, at higher levels of a particular data type, there may Is be fewer parcels and some of the parcels may represent a larger geographic area m than at the lower layers. However, as mentioned above, the divisions of the m data of the higher levels are made along the same dividing lines that were made 18 in the lower levels and divisions at the higher levels proceed as far as needed t9 until an amount of data not greater than the maximum parcel size is reached.
2o During a subsequent parcelization, it may be necessary for the division 21 process to proceed further than in a prior parcelization. This occurs if the data 22 of the subsequent data type located in any of the initial tiles or rectangles 23 formed therefrom is more dense than the data type used during a prior 24 parcelization. In this case, the original parcelization may not have divided the 2s initial tile into small enough sub-rectangles so that each contains less than the z~ maximum parcel amount of the subsequent data type. In this case, a division 2'7 line is determined as it would have been in the initial parcelization procedure.
28 This requirement means that, for parcels A and B of different layers or types, it 29 is always the case either that the geographic area covered by parcel A is 3o contained in that covered by parcel B, or the geographic area covered by parcel 31 B is contained in that covered by parcel A.

t In other words, after the type of data with the greatest expected data 2 density (e.g., layer 0 of the route calculation data) has been parcelized, other layers of the same data type (e.g. layer 1 of the route calculation data) or other data types (e.g., layer 0 of the cartographic data) are parcelized in parallel to the initial parcelization, as follows:
1. The subdivision of data into initial rectangles begins with exactly the same set of tiles.
2. Whenever data in a particular rectangle exceed the maximum parcel size, and therefore has to be subdivided, one of two procedures is used to (1) If that rectangle was subdivided in the initial parcelization, or in any n previous parcelization, then exactly the same division line is used as was used m in the previous parcelization. (2) If that rectangle was not previously divided, 13 then its division line is determined in the manner described above for the initial t4 parcelization.
Advantages 16 The parcelization method and organization described above has several 1'7 advantages, including the minimizing the creation of parcels that are less than Is optimally-filled, and thereby maximizing storage efficiency on the storage 19 medium. This allows more data to be kept in memory buffers at one time, 2o given buffers of one or a few fixed sizes. In addition, the parcelization method 2t and organization make it easy to navigate between neighboring parcels of the 22 same type and layer, without having to include the bounding rectangles of these 23 neighbor parcels in each parcel, or having to read a separate spatial index.
24 Because of the regularity in the method of defining parcel boundaries, a minimally-sized spatial index of nearby parcels can be carried within each 26 parcel. Further, because different layers and different parcel types are 27 parcelized in parallel, this method makes it easy to navigate between parcels of 2g different types or at different layers that cover the same or overlapping 29 geographic areas. Furthermore, the use of di-tiles for dividing panels makes it 3o easy to navigate between bordering but separately stored, geographic database 31 regions.

1 6. Ordering of parcels 2 Once all the parcels for all the data types are established, the parcels are 3 placed in order to facilitate the eventual writing of the parcels to disk.
To 4 minimize seek time in reading data from a storage device, such as a CD-ROM
s disc, each spatial set of parcels is organized in depth-first order with respect to the global kd-tree index (i.e., so that for each division line, all parcels contained in the sub-rectangle with coordinates less than the coordinate of division s precede all parcels contained in the sub-rectangle with coordinates greater than the coordinate of division) so that geographically neighboring parcels are likelier to be close together on a disc. The linear or spatial indices likeliest to 11 be used to access a particular type of data are placed next to and preceding that t2 data. Since the "global kd-tree" indexes all spatial parcels types, it may be 13 redundantly replicated at various locations on the medium (i.e., near to and t4 preceding each data set of spatial parcels).
~s Parcels are stored on disk approximately in Peano key order. The 1~ actual ordering of the parcels is based on the two-dimensional kd-tree 1'7 (representing the entire database region) that is generated during parcelization, is as the initial di-tile is recursively split into sub-rectangles and finally into m parcels. The ordering of the parcels is generated by a depth-first traversal of 2o this kd-tree. Due to the method (described above) by which the region's initial 21 enclosing di-tile is chosen, and by which each division line is chosen during 2z parcelization, this ordering would be identical to Peano key ordering were each 23 rectangle's division line exactly to bisect that rectangle, but differs slightly from z4 Peano key ordering at the lowest level of the kd-tree whenever division lines 25 are not bisections. This ordering, like an exact Peano key ordering, makes 26 geographically neighboring parcels likelier to be stored near each other on disk.
2~ An advantage of this ordering over exact Peano key ordering is that it is 2s generated automatically by the parcelization process, so that an additional sort is 29 not required. An index consisting of a two-dimensional kd-tree (explained in 3o more detail below) can be used to access route calculation parcels spatially (the 3 t two dimensions are the latitudes and longitudes of the division lines used during 32 parcel generation ). This type of indexing is useful for initial location of an 1 arbitrary position, such as when a route guidance application initially locates the 2 map data corresponding to a vehicle's current position. Once a starting position s is known, however, all information about nearby map data can be found in 4 indices internal to a parcel.
s 7. Index Tree Parcelization and the physical storage format 6 Various index trees are used in the physical storage format. These include the 2d "neighboring parcel kd-tree" that is stored in each route calculation, cartographic and points-of interest parcel. Route calculation and cartographic data parcels also include a 2d "internal kd-tree."
to Also used are various global index trees (per database region). In 11 general, each of these trees may not fit into a single index parcel. An index 12 parcel may contain a complete or partial tree (a global tree or subtree), or it 13 may store more than one complete tree (subtrees of a global tree).
Theoretical 14 considerations imply that index parcels should have a size equal to the is (average) size of the record parcels they index in order to minimize search 16 times.
1~ Parcelization of the global tree proceeds as follows. Nodes are stored in 18 breadth first order (to balance search times). If a parcel has been filled so that 19 another node cannot be stored in it, then a new parcel is created and an 2o unstored node is selected as a root for the new parcel and it is recursively 21 stored in breadth first order. An index parcel may contain more than one root 22 only if the complete subtrees at these roots fit into the parcel; that is, if a 23 complete subtree has been parcelized in an index parcel then another highest 24 level unstored node may be stored as another root in that index parcel only if 2s its complete subtree fits into the parcel; this prevents unnecessary cross-parcel 26 index searching.
27 The roots are numbered (by tree identifier) in sequence starting with 0 2g within each index parcel. Thus, an inter-parcel reference to a node is by parcel 29 ID (minus region specifier) plus tree ID. Intra-parcel reference to a node is by 3o byte offset (as with the "neighboring parcel kd-tree" and the "internal kd-tree").
31 Index trees are stored decompressed in the index parcels.

1 The index parcel has the following structure. The first data in the parcel 2 is the IdxPclHdr t header (byte packed). Following the header is the offset array to the roots in the parcel, indexed by tree ID:
4 Ushort 16 root offset[]; /*root offset array*/
Following the offset array are the trees.
8. Global spatial parcelization tree 7 For each region there is a 2D kd-global spatial parcelization index tree.
s The structure of this tree corresponds to the parcelization that is a refinement of all parcelizations for all spatially parcelized data types (which is defined since 1o parcelization proceeds in parallel with previous parcelizations for other data I t types). This tree is used for at least two different kinds of searches.
First, the 12 tree is used to determine in which parcel would contain a point given the 13 point's latitude and longitude coordinates. Another type of search is used to 14 determine the one or more parcels that would intersect with a rectangle givent is the rectangle's boundary coordinates. Both these types of searches may be used 16 in various functions, including queries, map display, route calculation, and so 17 on. A node in this kd-tree refers via its right (resp. left) descriptor identifier is pair list to a data parcel if the rectangle corresponding to the node's right (resp.
19 left) child is the bounding rectangle for that data parcel; it may refer to a data 2o parcel of some type (e.g. layer 1 route calculation) and also have descendant 21 nodes which refer to data parcels of another type (e.g. layer 0 cartographic).
22 Each "neighboring parcel kd-tree" represents a subtree of the global tree 23 (except for the nodes representing external-to-region parcels); note that a node 24 in the global tree may have a child stored in a different index parcel while the 25 corresponding node in a "neighboring kd-tree" and the corresponding child are 26 stored in the same parcel. The data structure for the global tree is similar to 27 that of the "neighboring parcel kd-tree", with the following differences.
First, 2g value O1 for control bits 8-9 or control bits 10-11 mean that the pruned child 29 appears as a root in a different index parcel; in this case the child offset is 4 3o bytes, and the first 2 bytes of the offset (between the index parcels storing the 31 root and the child: all index parcels in the global tree have identical size and t redundancy information, which allows the child parcel's ID to be constructed at 2 runtime from this parcel ID offset), and the second 2 bytes of the offset give the tree ID. Furthermore, both left and right child offsets are required to have 4 the same size (a 4 byte offset for a non-pruned child uses the rightmost, i.e.
s least significant bytes). Second, the descriptor list does not store table indices for parcel ID's but instead stores parcel ID's directly since there is no further reference to the parcel ID in the index parcel; however, these parcel ID's are s not necessarily aligned in storage. Finally, the entire descriptor, identifier pair list is rounded up to a 2-byte-multiple total length because child offsets are in to units of 2-bytes.
11 9. Route calculation parcel internal structure 12 The information in data records can be carried in a compressed form.
13 After decompression, the data are still in a packed form in which there are no 14 padding bytes and generally no unused fields. Each decompressed data record is is therefore in the form of a variable-length character array. This decompressed 16 but packed data is the source from which logical records passed to the m navigation application program software by the interface layer 41 (of FIG.
2) 1g are constructed.
t9 For most records ( notably excluding nodes and segments above the 2o bottom layer), a table of offsets is used to locate the beginning of each block of 21 2K records. This reduces the number of variable-length records that have to be 22 examined (compared with a sequential search for the desired record).
23 Data in the parcel header is used by the navigation application program 24 (specifically, the interface layer 41) to navigate within the parcel. These data 25 are therefore in a form that is immediately useable. For example, data in the 2~ parcel headers are stored in fields defined as two- or four-byte signed or 27 unsigned integers, where applicable, instead of in character array fields like the 2s data records.
29 Within a parcel at the bottom layer, node records are stored in Peano so key order based on latitude and longitude, and segment records are stored in 31 Peano key order based on the latitude and longitude of the segment's "Left"

node. This Peano ordering is followed down to the level of a grid of 2 predetermined size, and within the grid a latitude-longitude ordering is followed. Entity ID's within a bottom layer parcel are then assigned 4 consecutively within a parcel. At higher layers, segment and node records are simply stored in entity identifier order within the parcel.
Condition records are used to store information about restrictions or 7 additional attributes associated with a segment, e.g. "no truck access."
Date-g time records include information associated with a condition that indicates when conditions are in effect, e.g. "no left turn 4:00 PM - 6:00 PM." Condition and to Date-time records are stored in Peano key order based on the Peano key of the 11 primary segment's left node. Storage of records in Peano key order reduces the 12 time spent searching for records within a parcel, since entities in spatial 13 proximity are often represented by records near each other within a parcel.
14 10. Cartographic, points-of interest, and maneuver parcels internal structure 16 Except as noted below, the cartographic, points-of interest, and 17 maneuver parcels may have the same or a similar internal structure as the is routing parcels. The cartographic and points-of interest data may be interleaved 19 within each layer. This is based on the expectation that cartographic data and 2o associated points-of interest data are frequently accessed together.
Interleaving 21 becomes more useful at higher CD-ROM rotational speeds because the 22 rotational delay before the desired data are reached becomes proportionally less 23 at higher speeds in comparison with the time required to move the read head to 24 reach the data in the non-interleaved case. This is particularly true as the 2s volume of data increases, since the distance the head would have to move (and 26 the time it would take) to reach the non-interleaved data would increase as 27 some function of the data volume.
2s The route calculation and maneuver data need not be interleaved, even 29 though the data is parcelized in the same way and are used together for some 3o functions. The reason for this is to make it possible to increase the speed of 31 the route calculation process. Interleaving the maneuver data and the route calculation data would to some extent defeat this purpose, since it could slow 2 down access to route calculation data.
3 B. Redundant data - Neighboring Parcel Information 4 Within each parcel is stored information about certain other parcels of interest, either those that geographically neighbor the parcel (parcels of the 6 same type and at the same layer), or those that overlap the same geographic area (parcels of different types or at different layers). Within a particular type s of parcel, some but not all parcels of other types are of interest. For example, within a route calculation parcel, overlapping maneuver parcels are referenced, to but overlapping points-of interest parcels are not. All parcels of interest are 11 stored together in a single kd-tree structure. This structure contains implicit 12 bounding rectangle information for each parcel - implicit because the 13 parcelization scheme above creates parcel boundaries that can be encoded with 14 a few bits (5 bits per division). Each entry (that is, each internal node or leaf node in the kd-tree) also contains the parcel identifiers of any parcels that t6 correspond to the sub-rectangle defined by the division line at the entry.
1~ The example shown in FIG. 5A includes just one type of parcel (route 18 calculation parcels, for example), and just four layers, so that the drawing can t9 be simplified. The example of FIG. 5A shows the parent, neighbor, and child 2o parcel information for parcel A1.
2t FIGS. 5B and SC show the structure of an entry in the kd-tree 22 describing the geographical area surrounding a parcel. In general, each division 23 in a rectangle is described with a kd-tree entry of two or more bytes: two bytes 24 of control information, and 0-4 bytes to represent offsets to the left and right children (8 or 16 bits per offset). The cut can be at any 1/32 division of a 26 rectangle's minimum enclosing tile, and therefore 5 bits of the control 2'7 information is dedicated to the location of the line that cuts the parent rectangle 2g into left and right subrectangles. Whenever a kd-tree (internal or leaf) node 29 corresponds to a parcel, a parcel descriptor (one byte) is present in the kd-tree, 3o containing the parcel's type and layer, and other information. A parcel s t descriptor is followed by either a one-byte or three-byte index into the parcel 1 identifier table; it is expected that in most cases one byte is sufficient, but when 2 there are more than 254 parcel ID's in the table, the index is expanded. The parcel identifier table contains four-byte entries; the one byte region specifier is 4 not included. When the region specifier is different from that of the parcel containing the parcel identifier table, then the most significant bit of the four-byte parcel identifier in the table is set to 1 to indicate that the full parcel 7 identifier is to be looked up in a separate table of external parcel identifiers.
s Example Referring to FIGS. SD and SE, there is illustrated an example of the 1o structure of a kd-tree table and parcel identifier table. For simplicity, this 11 example includes only a single parcel type and single layer. If multiple parcel t2 types and layers were included in this kd-tree, then any (internal or leaf) node 13 in the kd-tree could correspond to multiple parcel identifiers. This would mean 14 that a given kd-tree entry could be followed by more than a single left parcel 1s descriptor and right parcel descriptor. In this example, both the kd-tree and the parcel ID table are small enough so that all offsets and indices can be contained m in one byte.
1g C. Compression 19 Referring again to FIGS. 1 and 2, in a present embodiment, parcels are 2o maintained in their compressed form in memory 20 after they are read from 21 disk 22, and entities within a parcel are decompressed as they are requested by 22 the navigation application functions 28, 30, 32, and 34. In a present 23 embodiment, the parcels are maintained in their compressed form in the 24 interface layer 41 mentioned in connection with FIG. 2. This provides for 2s reduced memory usage. If fully decompressed parcels were kept in a memory 26 cache, then more cache memory would be required, especially since 27 decompressed parcel records vary in length. For example the route calculation 2s function 28 often accesses only a small fraction of records within a parcel each 29 time the parcel is read from disk. Using this approach therefore reduces 3o processing time for decompression. Since compressed records normally are 1 variable in length, even when the decompressed records are of fixed length, the z following approach can be used to locate a given record within the compressed data.
4 Alignment Considerations:
Compressed data records, as well as the intermediate (packed) form in which data records exist immediately after decompression, are in the form of character arrays (that is, binary byte arrays, not ASCII character arrays).
Therefore, no alignment considerations apply. Data in the header portion of each parcel, used to describe the parcel and navigate within it, contains data to that is often most conveniently stored in the form of C-language long integers, 1 t short integers, structures or unions. Length and alignment for these data types 12 can vary on different platforms. Since the geographic data 40 is designed to be 13 used on a variety of platforms, it is appropriate to define conventions for 14 alignment and length. These conventions apply to data on the medium is containing the map data (e.g. the CD-ROM disc); logical record formats default 16 to alignment and length rules for the hardware platform on which the interface layer software 41 executes. Note that the intermediate (packed) form referred 1s to above should be the same in all physical storage formats, since it is 19 accessible to generic independent components of navigation applications.
2o The following conventions are used for data types in the map data parcel 2~ headers:
z2 Data Tvpe Alignment Len_tg-h 23 short integer 2-byte boundary 2 bytes 24 long integer 4-byte boundary 4 bytes 2s structure/union 4-byte boundary 4 byte multiple 26 Bytes in map data are in Big Endian form (most significant bit first), and both 2~ short integers and long integers in map data are in Big Endian form (most 28 significant byte first).

1 D. Intra-parcel Record Access via Entity Identifier 2 Within a parcel, when each record of a particular type has a unique 3 entity identifier, one of the two methods described below of locating such a record can be used. The first method is used to locate records when entity s identifiers are assigned to records of a given type consecutively within the 6 parcel. For example,the first record within the parcel has entity identifier 0, the second 1, etc., with no gaps. The second method is used to locate records in 8 which gaps do exist, but in which the records are still stored in order by entity identifier. The second method is used to access segment records and node to records in route calculation parcels above the bottom layer, while the first 11 method is used to access most other record types in all parcels.
12 Method 1 13 This method of record access may be used to locate records for which 14 entity identifiers are assigned consecutively within the parcel.
is (1). The parcel header contains the following information about an entity 16 type within the parcel:
m - Offset: Offset to the data from the beginning of the parcel 18 - Count: Record count 19 - Numblks: Number of blocks of compressed records.
20 - Blkcnt: Number of compressed records per block (carried in 21 exponent form, where k implies 2k records).
22 - For those entity types whose identifiers are consecutive within 2s the parcel but do not begin at zero, the first entity identifier in 24 the parcel is carried. This applies to bottom layer node and 2s segment records in the route calculation parcels.
26 (2). Offset points to a table of Numblks + 1 table entries (each of 16 bits), 27 where table entry N points to a block of Blkcrrt records, the first of 28 which is the record with entity ID equal to (N 1) * Blkcnt.
29 (3). The first byte of each record block is the beginning of a Type 1 3o Variable Length Unsigned Value that is an offset to the first data record 31 within that block. Following this field are 2K more Type 1 Variable I Length Unsigned Value fields, each of which is the length of a 2 compressed record in the block. The use of these length fields allows 3 rapid navigation through the records within a block, as in the following 4 example:
Example Blocks are composed of 32 records each, and the length of each record in the block is small enough to be represented by one byte. Then, the first byte s of the block contains a one byte field that contains the value 33, which is the 9 offset from the beginning of the block to the beginning of the first compressed 1o data record in the block. The second byte in the block contains the length of 11 the first compressed record in the block. The third byte contains the length of 12 the second compressed record in the block, etc. The thirty-third byte in the t3 block contains the length of the thirty-second compressed record in the block.
14 To find the beginning of the seventh record in the block, the following are is added together: the address of the beginning of the block, the offset from the 16 beginning of the block to the first compressed record in the block, and the m lengths of the first six records. In this example, the first seven bytes of the 1g block are added to the address of the block.
19 For example, if there are 1500 records of a given entity type in a parcel, 2o and Blkcnt is 32, then a table of 47 16-bit offsets is generated (i.e.
Numblks =
21 46), the first of which points to a block of compressed records with ID's 0-31, 22 the second of which points to a block containing records with ID's 32-63, etc.
23 Then, to find the record with ID 100, 100 is divided by 32 (or right-shift 24 by 5). This results in 3, which is the (0-based) index of the block containing 2s record 100. For different entity types, the best value of Numblks might be 26 influenced by record size, record count, percent of space saved by compression, 27 or other factors, and does not need to be the same in every parcel.
2s Method 2 29 This method of record access is used to locate records that are stored in 30 order by their unique entity identifiers, but for which entity identifiers generally t do not start at 0 and are not assigned consecutively (without gaps) within the 2 parcel.
(1). The parcel header contains the following information about an entity type within the parcel:
s - Offset: Offset to the data from the beginning of the parcel 6 - Count: Record count.
(2). Offset points to a table of Count + 1 table entries (each of 16 bits plus s 24 bits). Twenty-four bits of each entry is a record's entity identifier, and the remaining 16 bits of the entry is the offset from the beginning to of the parcel to the compressed record corresponding to that table n entry's entity identifier. The last table entry does not point to a record;
12 it points to the first byte following the last record.
13 (3). The length of a compressed record is equal to the difference between the 14 offset in its table entry and the offset in the next consecutive table entry is whose offset's high order bit is not equal to 1. A table entry with an 16 offset whose high order bit is equal to 1 is a special entry that does not 1~ point to a record.
Is The decompressed records are variable-length and in packed form. The 19 size of this packed record can be minimized as follows: (1) there can be no 2o padding bytes in this format, since it will be in the form of a byte array rather 2t than a C structure; (2) some fields that take up a limited number of bits can be 22 combined together into one byte; (3) finally, character string data such as street 23 names can be compressed at the data field level using a conventional text-24 oriented compression method.
25 The logical format of a record (the format returned to application 26 software programs 28, 30, 32, and 34 from the interface layer 41) is constructed 2~ from the above decompressed, packed record.
2s E. Supernodes 29 In a present embodiment, the following procedure is used with the route so calculation subset 48 (of FIG. 3) of the geographic data.

1 The route calculation subset of geographic data includes feature entities 2 for nodes, conditions and segments. The node features are in the form of node 3 entities. Some node entities are used to store positional information (i.e., 4 latitude and longitude) about the end points of a segment. (There may also be node entities that relate to positional information other than the end points of 6 segments.) The positional information related to each node is stored in terms of '7 a longitude, latitude, and a relative elevation. This node entity may also s contain attributes which provide additional information about the node.
As mentioned above, the parcelization method used for the route to calculation subset of the data provides for maximizing the amount of relevant 11 route calculation information that can be kept in memory at once thereby t2 minimizing time-consuming memory operations during route calculations.
13 According to this aspect of the present embodiment, the route calculation 14 function 28 (in FIG. 2) may be sped up by including single collapsed nodes (referred to as "supernodes") in the route calculation data set. Each of these 16 collapsed nodes or supernodes represents a plurality of closely-spaced or related 1~ regular nodes and segments. Wherever a supernode is used to represent a 1g plurality of regular nodes, the segments associated with any of the plurality of t9 regular nodes represented by the supernode are associated with the supernode 2o instead of with the regular nodes. Then, when the route calculation application 21 program accesses any of the segments to calculate a route, the supernode is 22 used instead of the plurality of regular nodes. Including the supernodes has the 23 effect of replacing certain complex intersections in the route calculation subset 24 of the geographic data set with simplified intersections. Replacing certain complex intersections with simplified intersections reduces the time and data 26 required for a route calculation application program to navigate through these 27 intersections.
2s For example, referring to FIG. 6A, there is a map illustrating a 29 roundabout 608. In the route calculation dataset, the roundabout 608 is formed of segments 612, 614, 616, and 618, and nodes 622, 624, 628, and 632.
31 According to the present embodiment, the nodes and segments forming the 32 roundabout 608 are collapsed into a single supernode entity represented by 1 supernode 640 in FIG. 6B. The supernode data entity 640 is generated 2 automatically during compiling of the route calculation data set. The segment 3 records for the segments 611, 613, 61 S, and 617 indicate that they connect to 4 the supernode 640 instead of to the actual nodes 622, 624, 628, and 632, respectively. Although the geometry of the segments 611. 613, 615, and 617 appears different in the supernode representation of FIG. 6B, all the segments' attributes, including the segment length, remain the same as they would for the s full representation of the intersection.
The purpose of the supernode is to provide a simplified representation of to the road network which can help to speed up route calculation. For example, 1 ~ without the supernode representation, if the route calculation program 28 is 12 attempting to calculate a route through the roundabout 608 from node 626 to 13 630, it would have to process traveling from node 626 to node 624, node 624 14 to node 628, and node 628 to node 630. With the supernode representation, the route calculation program only has to process traversal from node 626 to node 16 640 and node 640 to node 630.
1~ In a preferred embodiment, even if supernodes are used in a given level 1g of the route calculation data set, the data set at that level also includes the t9 plurality of regular nodes that are represented by a supernode. This allows any 2o information associated with the regular nodes to still be accessible to the 21 navigation application program, if needed. For example, in order to display a 22 map of a calculated route, it would be necessary to obtain the regular nodes 23 represented by the supernode so that all the road segments can be shown.
This 24 can be determined because each of the supernodes provides a reference back to its constituent nodes.
2~ For simple intersections of two or few segments or dead ends, 27 supernodes would not be used and instead, the route calculation data set 2s includes regular nodes since there would be little advantage to using supernodes 29 to represent these relatively simple types of nodes.
3o Because an exact location is unnecessary, a supernode is given a 31 geographic location approximately at the center of the group of nodes it 32 represents. A supernode and the nodes it represents are treated as a unit when 1 parcelizing, so that regular nodes represented by a supernode are placed 2 together in the same parcel.
3 Note also that when the data are organized in layers as in the route 4 calculation subset of data or the cartographic subset of data, any bottom layer regular nodes that make up a supernode are omitted in layers above the bottom layer (i.e. supernodes are included at least in the layer immediately above the bottom layer, but not the regular nodes subordinate to them). Also, supernodes can be defined in any layer.
A function call in the route calculation program of the navigation to application can be used to translate a supernode back into the regular nodes and 11 segments that it represents. Another function call can be used to retrieve an 12 ordered list of the segments inside the supernode to be traversed in order to get t3 from one segment connected to the supernode to another. In a present 14 embodiment, the above function calls may be included in the interface layer of FIG. 2 instead of in the route calculation function 28 of the navigation 16 application.
m A function call can be used to obtain the relative travel cost (or 1g "impedance") of the supernode. The relative cost of a supernode (or of a 19 regular node) is an indication of how much time is required to travel across the 2o node. The relative travel cost of a supernode may be included as an attribute of 21 the supernode entity, or preferably the travel cost of a supernode may be based 22 on the length and/or speed of travel of the segments inside the supernode to be 23 traversed to get from one segment connected to the supernode to another of the 24 segments. In the example of FIGS. 6A and 6B, the relative travel cost to get from the segment 611 to the segment 61 S is based on the lengths of the 26 segments 612 and 614 as well as the two right turns required to travel from 27 segment 611 to segment 615. In a present embodiment, the above function call 2s may be included in the interface layer 41 of FIG. 2 or in the route calculation 29 function 28 of the navigation application.
3o Supernodes may be used to represent any intersection and are 31 particularly useful when representing complex intersections that include more 32 than two roads. For example, a supernode representation 642 may be used for 1 divided highways, 644 (as shown in FIGS. 6C and 6D) and a supernode 2 representation 648 may be used for cloverleaves 650 (as shown in FIGS. 6E
and 6F).
4 In a present embodiment, the determination of when to include a s supernode as a representation of several regular nodes is done at compile time, as discussed below. In one embodiment, supernodes are automatically generated in the compiler based upon a predetermined set of rules. For s example, a candidate supernode is established and examined to determine whether it meets the predetermined set of conditions. For exampe, for forming 1o supernodes for divided highways, the routing data are examined to find all ~ 1 occurrences wherein two multiply-digitized roads intersect. (Multiply-digitized 12 roads are roads in which separate segments are used to represent traffic in each t3 direction.) The intersections of these multiply-digitized roads are examined to 14 determine whether there are exactly four internal nodes at the intersection, is whether there are exactly four segments internal of the intersection, and whether 1~ each of the internal segments connects to two, and only two, other internal 1'7 segments by means of internal nodes. If all these conditions are met, a 1s supernode entity is formed and stored in the layer of routing data.
19 Similarly, supernodes may be automatically generated for roundabouts.
2o The rules for forming a roundabout include no limitation on how many internal 21 nodes and segments are included within the roundabout. As with the multiply-22 digitized roads, a candidate supernode is formed of a grouping of nodes and 23 segments. The nodes and segments used to form the candidate supernode 24 include those havin display characteristic indicating that they are part of a 2s roundabout. (The GDF data may include this type of information with 26 segments and nodes.) Once the candidate supernode is formed, the supernode 2'7 is generated using the segments and nodes identified as being associated with a 28 roundabout.
29 F. Normalized attributes 3U One 'way to speed up operation of some of the navigation applications 3 t that use the geographic data stored on the storage medium is to reduce the 1 amount of data stored on the storage medium thereby enabling the information 2 to be accessed faster. Another way to speed up operation of some of the navigation applications is to store frequently used data in memory. Both these 4 ways of speeding up applications can be employed by storing certain of the geographic data, on the storage medium with normalized attribute arrays (explained below) and by reading some or all of the normalized attribute arrays 7 mto memory.
s For example, the segment data entities in the geographic data set include information that identifies each segment of all roads in a geographical region.
1o Each of these segment data entities includes attribute information about the t 1 characteristics of the segment. For example, in the geographic data set, each 12 segment entity has a segment ID field, and attributes identifying the location of t3 the segment, rank of the segment, route type, lane category (i.e. number of 14 lanes), speed category, speed limit, access characteristics, and so on.
In the present embodiment, instead of including separate entries for each 16 of these attribute fields in the data record for each segment, for certain of the 1'7 attributes, the segment record includes a single index reference to a table of 1s records. This table of records is referred to as a global normalized attribute 19 array. This allows a single index to be carried in the segment record, instead of 2o all the associated attribute values. The use of this normalized attribute array is 21 based on the recognition that attribute values for a specific group of attributes 22 are not completely independent of each other. For example, if the route type 23 attribute of a segment indicated that the segment were an inter-metropolitan 24 highway, then the speed category attribute for the segment would normally indicate the segment to be a high speed category. It has been determined that 26 the number of actual different combinations of certain groups of these attributes z'7 found in the geographic data set is small enough that disk storage space is 28 saved by storing these combinations in one table (referred to as a "normalized 29 attribute array") and storing an index into that table in the segment entity record so instead of the actual separate individual attribute entries.
31 In a preferred embodiment, the normalized attribute array includes the 32 most common combinations of attributes for a particular entity in a particular i set of data. In a present embodiment, the global normalized array includes the 2 256 most common attribute combinations. These combinations of attributes 3 may be different in different geographic regions.
4 Referring to FIG. 7A, there is a representation of the geographic data 40 s stored on the storage medium, including the different types or subsets of data represented in FIG. 3. These types or subsets of data include the route calculation data 48, the cartographic data 50, the maneuver data 52, and the points-of interest data 54. Each of these different subsets of the geographic 9 data 40 is organized into parcels, and each of these subsets includes records to having predefined structures.
I1 In the embodiment shown, the route calculation data 48 includes a 12 segment structure 812 and the cartographic data 806 includes a polyline t3 structure 814. These data structures are partially derived from normalized 14 arrays of attributes. Specifically, the routing data segment structure 812 is 15 partially derived from the route calculation normalized attribute array 816.
16 Similarly, the cartographic data polyline structure 814 is partially derived from 1~ the cartographic normalized attribute array 818. The segment structure 812 1g includes data attribute fields for the following types of data: speed category, 19 lane category, rank, among others. These data are related. Roads with more 20 lanes tend to have higher speed limits, and so on. Accordingly, it is possible to 21 remove these separate data fields --and the data included in them-- from each of 22 the routing data segment records and place them in the normalized array 816.
23 A similar relationship is found in the cartographic data polyline structure. In 24 each structure, an index replaces the combination of attributes that are removed.
25 The index points to an entry in the normalized attribute array that includes the 26 particular combination of attributes that had been replaced 2'7 In a geographic data set in which certain of the attributes are replaced 2g by indexes to a global normalized attribute array, it is possible that some of the 29 records cannot be indexed to the array. These records would include those in 3o which the combination of attributes is uncommon, and therefore would not be 31 represented by the most common (e.g. the 256 most common) occurrences of s2 the particular combinations of attributes included in the global normalized 1 attribute array. Since the attributes for these records are not included in the 2 global normalized array, these records would not include an index to the global normalized attribute array. For records having less common attribute 4 combinations, a separate array is included. This separate array is included as a s local normalized attribute array. The local normalized attribute array is 6 included within the parcel in which the unusual record is located. The local array may be organized like the global array. If multiple records in the parcel have the same unusual combination of attributes not found in the global normalized attribute array, the index in each of the records that has this 1o particular unusual combination of attributes refers to the same combination of 11 attributes in the local array. In a present embodiment, all the records in the 12 parcel include an index to either the global normalized attribute array or to the 13 local normalized attribute array. This feature recognizes that some unusual 14 combinations of attributes are very localized and therefore it is not efficient to 15 load such unusual combinations into memory unless needed by the navigation 15 application when using the particular parcel that includes them.
m For example, referring to FIG. 7B, the route calculation function 28 is is shown to have accessed one of the parcels 820 of route calculation data 48.
19 The segment entities are built up from the segment record data in the route 2o calculation data stored in the parcel 820 using an index in each of the segment 2t entries to either an entry in the global normalized attribute array 816 or a local 22 normalized attribute array 822. In a preferred embodiment, the substitution of 23 the normalized attribute array data from either the global array 816 or the local z4 array 822 into the appropriate data fields of the appropriate data records is 25 performed by the interface layer 41, mentioned above. In order to speed up 26 processing, the global normalized attribute array 816 may be kept in memory.
z~ This global normalized attribute array may be (fully or partially) read into 2s memory from the storage medium and kept in memory during operation of the 29 navigation application.
-SO-1 G. Segment Aggregation 2 1. Overview As mentioned above, a navigable segment include a rank attribute that 4 specifies the highest routing data layer in which the segment appears. The s lowest layer of route calculation data 48 includes all navigable segments (i.e.
segments of all ranks). In each succeeding higher layer, the segments of the lowest-ranked remaining class of segments are dropped. This generally results s in the creation of a number of bivalent nodes, i.e. intersection nodes between exactly two segments. If all attributes for these two segments that are relevant to to navigation are equal, it is possible, as well as beneficial, to drop the bivalent I1 node. This reduces the size of the data, reduces the number of segments that 12 need to be explored during route calculation, and reduces the number of t3 segments making up the final calculated route. Segments formed in this way t4 are called aggregated segments. In a preferred embodiment, aggregated Is segments are included in layers above the lowest layer.
15 The following describes aggregation of segments at higher layers. First, 1'7 the physical representation of the aggregated segment is described.
Second, the 18 criteria for aggregating segments are given. Third, the process for forming 19 aggregated segments is described.
20 2. Physical storage of aggregated segments 21 When aggregation occurs, segment records and node records internal to 22 the aggregated segment are maintained in the given layer in an abbreviated 23 form. Each abbreviated segment contains the segment identifier, length, transit 24 time and bearing. Each abbreviated node contains the node identifier and 2s position. These abbreviated records are accessible through the aggregated 25 segment record, which contains the attributes common to the abbreviated 27 segments. The aggregated segment record contains both a left segment 2s identifier and a right segment identifier, since this segment could be entered 29 from either end during route calculation processing.
3o FIG. 8A is an illustration of a plurality of segments in layer 0. A node st is associated with the two end points of each of the segments. In layer 0 all the 1 segments of all the ranks are represented. FIG. 8B shows the same plurality of 2 segments and nodes shown in FIG. 8B, except that the segments having the 3 lowest rank in the layer are illustrated in dashed lines. FIG. 8C shows the 4 lowest ranked segments removed. (FIGS. 8B and 8C illustrate intermediate stages and are not representative of a layer). FIG. 8D illustrates the segments 6 and nodes in layer 1. In FIG. 8D, the segments S4, S5, S6, S9, and S 1 I
have been aggregated into an aggregated segment AG12. It is noted that the s aggregated segment AG12 includes nodes N109 and N104 that correspond to the end points of the aggregated segment. In addition, the aggregated segment 1o also includes the nodes N106, N107, N108, and N113 that are internal of the t 1 aggregated segment AG12. These internal nodes provide an advantage in route 12 searching by allowing a route calculation program to move from one layer to t3 another layer at any node, even if those nodes are internal of the end points of 14 an aggregated segment. This means that the route calculation program can is access higher layers more quickly thereby potentially providing for faster route 16 calculations.
17 FIG. 8E is a representation showing the relationship between the 18 aggregated segment record of FIG. 8D and the other data entities in layer I.
19 3. Aggregation Criteria 2o In a present embodiment, aggregation of any number of consecutive 21 segments is permitted where each consecutive pair of adjoining segments meet 22 the following criteria:
23 1. Within the layer under consideration, exactly two segments meet 24 at the point (node) of intersection.
2s 2. The two segments are not part of any of the following 26 conditions:
2~ (i) A restricted driving maneuver that extends across 2g the intersecting node;

29 (ii) a vehicle restriction;

30 (iii) a direction of travel restriction;

31 (iv) a gate;

(v) a high-occupancy-vehicle restriction;

2 (vi) a bifurcated roadway;

3 (vii) a toll booth; or 4 (viii) signage.

3. The two segments share exactly the same set of navigable feature names (excluding cartographic feature names).

4. The following attributes are the same for the two segments:

(i) rank, 9 (ii) speed category, to (iii) lane category, 1 t (iv) access characteristics, and 12 (v) the following segment attributes:

t3 (a) segment divided, t4 (b) direction of travel - left, (c) direction of travel - right, 16 private, ramp, to l lway, t9 controlled access, 2o rail ferry, 2t boat ferry.

22 Note that the remainder of the attributes are allowed to differ between 23 two adjoining segments that are aggregated. Generally speaking, these 24 attributes are either combined or dropped in the process of generating a single set of aggregated attributes for the aggregated segment. The criteria set forth 25 above are exemplary only. While they are presently preferred, other criteria or 2~ subsets of the above criteria may be used.
28 4. Process for forming aggregated segments 29, The first step in forming aggregated segments is to identify possible end 3o nodes for aggregated segments. These are known as "aggregated-segment-31 significant" nodes. Every node in the geographic database at each of the layers 32 is evaluated to determine whether it is "aggregated-segment-significant."
The 1 nodes are evaluated one at a time, starting at the highest layer and working 2 down. A node is "aggregated-segment-significant" at a given layer when only 3 one segment, or more than two segments, are connected to it. However, if 4 exactly two segments are connected to a node, the node is not aggregated-s segment-significant. If a node is determined to be aggregated-segment-significant at a given layer, it will be aggregated-segment-significant at all lower layers. Each segment in a layer that has an aggregated-segment-significant node on one end and a non-significant node on the other end is a potential starting end for an aggregated segment.
1o In FIG. 8C, Nodes N102 and N112 are aggregated-segment-significant n since they connect to more than two segments. Nodes N106, N107, N108, 12 N109, and N113 are non-significant since they connect to two and only two 13 segments. Segment S 1 is identified as a potential starting point for an 14 aggregated segment since it has one node, N112, that is aggregated-segment-15 significant, and the other node, N109 that is non-significant. The non-15 significant node N109 is chosen as a potential starting point for forming an 17 aggregated segment. The other segment connected to node N109, S4 in 18 FIG. 8C, is evaluated by (1) determining whether its other node, N108, is 19 aggregated-segment-significant, and (2) checking whether the other aggregation 2o criteria (described above) are met. If it is non-significant, the other segment 21 connected to N108 (i.e., SS) is evaluated in the same manner, and so on.
This 22 process continues until an aggregated-segment-significant node is reached or 23 until a non-significant node is reached that connects two segments that have 24 differing conditions that disqualify them from being aggregated. These 25 conditions are described above. If a non-significant node connects two 2s segments having differing conditions that disqualify them from being 2'7 aggregated, the node is denominated as an aggregated-segment-significant node 2g for that rank and lower.
29 Once a string of segments (between two aggregated-segment-significant 3o nodes) are identified that connect to each other by non-significant nodes, an 31 aggregated segment record is created to represent these segments. The 32 aggregated segment record is provided with a segment ID that identifies it as an 1 aggregated segment. The end nodes of the aggregated segment are the 2 aggregated-segment-significant nodes. The aggregated segment record includes 3 pointers to the abbreviated node and segment records for the nodes) and 4 segments that are represented by the aggregated segment. These abbreviated records are maintained at each layer of the aggregated segment.
The aggregated segment record also stores additional information about the aggregated segment including the length, average speed, and transit time in s the "legal direction" of the aggregated segment (which accounts for all travel costs or impedance to travel the aggregated segment, including node costs). By to "legal direction" it is meant that for any given aggregated segment, travel may 1 t be legal in only one direction. The legal direction of travel is evaluated in one 12 direction first, for example, left-to-right. If acceptable, the transit time is 13 calculated and assumed to be the same for the opposite direction if travel in that 14 direction is also legal. This would not necessarily be true if conditions were not imposed for aggregation. If left-to-right is an unacceptable travel direction, t6 then the transit time is determined from right-to-left.
It is noted that the above method produces an aggregated segment that 18 has aggregated-segment-significant nodes at its ends and at least one non-t9 significant node between the ends. However, not all aggregated-segment-2o significant nodes within a layer are necessarily located at end points of an 21 aggregated segment.
22 The above approach can be used to aggregate segments extending 23 between aggregated-segment-significant nodes or, alternatively, extending only 24 between the non-significant nodes of the left-most and right-most segments between the aggregated-segment-significant nodes (as illustrated in FIG. 8C).
2~ The advantage in the former case is that a route searching program may 2~ undertake fewer steps to determine a route (one step instead of three steps to 2g traverse segments between aggregated-segment-significant nodes). The 29 advantage in the latter case is that, assuming the conditions for qualifying 3U segments for aggregation do not otherwise disqualify segments having certain 31 restrictions (such as no left turn), the route searching program can more quickly 32 determine (i.e., take fewer steps) whether the aggregated segment can form part t of the calculated route. In either case, the use of aggregated segments as 2 described herein provides the significant advantage that a route searching 3 program can jump layers at any node, even one that forms part of an 4 aggregated segment.
Another significant advantage provided by the aggregated segments is that the use of conditions to determine whether segments should be aggregated reduces the possibility of creating aggregated segments that cannot legally be 8 traversed.
V. COMPILING PROCESS FOR FORMING PHYSICAL
to STORAGE FORMAT FILE
11 A Compiler - Overview t2 Described above are various aspects of providing a geographic database 13 on a physical medium to facilitate use and access of the geographic database by t4 a navigation application program in a navigation system. As mentioned above, prior to being organized in a format suitable for storage on the storage medium 16 that is used and accessed in an end user's navigation system, the geographic n7 data likely is provided and organized in another, different format. For example, t8 the geographic data may be initially organized in an interchange format, such as 19 the GDF format or another format. An interchange format may facilitate the 2o exchange of the data or may provide for acquisition and updating of the data.
21 In order to store the geographic data on a storage medium in a manner that 22 facilitates use of the data, the data are converted from this original or 23 interchange format. This conversion process may be accomplished by a 24 geographic dataset compiler, as described herein. In a present embodiment, the z5 compiler is written in the C programming language, although in alternative 26 embodiments any suitable programming language may be used.
z7 FIG. 9A shows a flow diagram of a geographic dataset compiler 900.
2g The compiler 900 accepts several different kinds of data 901. For example, the 29 data 901 may include the map coverage data 902, common auxiliary data 903, 3U and associated third-party data (TPD) 904. The map coverage data 902 may be 31 provided in the GDF interchange format, mentioned above, and the other kinds t of data may be provided in any suitable format. Third party data may also be 2 provided in the GDF format. Auxiliary data may include explication, voice, or icon types of data. In a present embodiment, the compiler 900 accepts the map 4 coverage data 902 in the specification for GDF 3.0, but in alternative embodiments may accept other database formats as well.
The geographic dataset compiler 900 generates an output 905, including a geographic dataset, which is in a compressed, optimized format suitable for storage on storage media, such as the storage medium 22 in FIG. 1, for use in 9 navigation systems. When the output 905 is stored on the storage medium 22, to it includes the database 40 of FIG. 2. In preparing the organized output 905, 11 the geographic dataset compiler 900 takes into account the layout of the 12 database 40 as it is used in the end-user's system, such as an in-vehicle system, 13 including the characteristics of the specific on-board storage medium in the t4 vehicle. The variations in medium characteristics may require correspondingly different layout structures or formats. The output 905, including the database, 15 created by the geographic dataset compiler 900 conforms to the appropriate physical storage format for a given storage medium. This is achieved by Ig isolating media-dependent aspects from the core functionality of the geographic t9 dataset compiler 900.
2o In a present embodiment, the geographic dataset compiler 900 runs on 21 an IBM Model RS6000 computer with 128 MB of RAM and 1 GB of paging 22 space. The RS6000 runs the AIX 4.1 OS and the development environment is 23 IBM's C Set++ Version 3.1. ANSI C and C++ compilers include xlc and xlC
24 respectively and the debugger is xldb. Other computers, operating systems, and development tools would be suitable.
26 The geographic dataset compiler 900 includes a sequence of processes 27 that progressively transforms the data 901 from the GDF format (which is 28 primarily an ASCII interchange format) to an optimized and compressed binary 29 format in the database 905. In order to accomplish this transformation, the 3o geographic dataset compiler 900 provides a framework of routines for this 31 process.

N
1 The geographic dataset compiler 900 generally includes three layers: a 2 data transformation layer 910, a service layer 912, and a physical format isolation layer 914. These layers collectively provide for compiling the input 4 data 901 into the output 905 in the media-specific format suitable for writing onto the desired physical medium.
B. Compiler service layer '7 The compiler service layer 912 includes a library of routines that are available and used for processes within the geographic dataset compiler 900.
The library of routines contains sets of primitives for commonly used functions to within the dataset compiler including specialized functions specially developed t 1 for handling of the geographical data. For example, the service layer includes 12 functions for handling of I/O, file and table management, error handling, t3 memory management and buffering, debugging, and data manipulation. The 14 service layer 912 may include routines for other functions as well.
In a preferred embodiment, the service layer 912 implements a shared t6 memory model to enhance processing and transformation of the data.
1~ Conventional shared memory techniques provide for the sharing of memory 1g between concurrent processes. The service layer 912 implements shared 19 memory across non-concurrent processes. This provides advantages in the 2o various data transformation processes, such as the development of the global 21 kd-tree (described above with respect to data parcelization). The process for 22 developing the global kd-tree uses some of the same data used in other 23 transformation processes, but does not necessarily run concurrently with the 24 other processes. By using a non-concurrent shared memory model, the service layer permits sharing of data between the process that provides for the 25 development of the global kd-tree and the other processes.
27 C. Compiler data transformation layer 2g 1. Overview 29 Referring to FIG. 9B, the data transformation layer 910 of the 3o geographic dataset compiler 900 transforms the geographic map coverage data 1 901 from a generalized interchange format to an intermediate output. The data z transformation layer 910 includes two main steps or stages: In a first stage 923, starting with the data in an interchange format, the data transformation 4 layer 910 converts the data 901 into files 925 in a transfer file format. In a usual scenario, the data 901 are provided to the compiler in a generalized interchange format, such as GDF. An interchange format, such as GDF, 7 organizes the data in a manner from which it would be difficult to convert directly into the physical storage format used on the storage medium in a navigation system. For example, one reason that the GDF would be difficult to to convert directly into the physical storage format is that it would require a very 11 great amount of memory in the compiler to store the all necessary portions of 12 the GDF file to produce the physical storage format output file.
Accordingly, t3 in a preferred embodiment, the geographic data are first converted into the t4 transfer file format, from which further processing of the data is facilitated.
1s After the data are converted into the transfer file format, a second stage 16 928 of the data transformation layer 910 process the files 925 in the transfer 1'7 file format to produce separate intermediate data files 927. In producing these is separate intermediate data files 927, this second process 928 generates the 19 separate collections (e.g. sets 931, 933, and so on) of the data that are 2o ultimately used by the various separate navigation application functions.
As 21 mentioned above, each navigation application function typically uses only 2z certain portions of the entire geographic database. Accordingly, in order to 23 facilitate operation of each of the navigation application functions, the physical 24 storage format provides each of the navigation functions with its own separate 25 collection of geographic data representing only a subset of the entire geographic 26 database. Each subset preferably excludes the portions of the database that its 2~ navigation function does not normally use. At this data transformation stage, 2g the data transformation process creates these separate collections of the 29 geographic data as actual separate files, for example files 941, 943 and 30 (referred to herein as "intermediate data files" or "data file units").
Each of 3 t these intermediate data files includes only a portion, or view, of the entire 32 database.

Y
1 As a further aspect of this data transformation layer process, as part of 2 the process for producing these intermediate data files, certain new items of data, such as supernodes, aggregated segments, and generated shape points, are 4 constructed from the data in the transfer file format. Although these new items s of data are derived from the data in the transfer file format, they do not have 6 direct counterparts in the GDF input file. Further, as these intermediate data 7 files are produced, the data in each of these intermediate files are grouped into s parcels within each intermediate data file. Subsequent to the processes of the 9 data transformation layer, the parcel organization of the data is retained when 1o the separate data files are later recombined into a single larger file in the 11 isolation layer process, described below. If third party data are intended to be 12 included in the physical storage format, they are incorporated into the data 13 transformation process.
14 The processes in the data transformation layer 910 are described in more Is detail as follows:
16 2. Transfer file format 17 The compiler 900 may receive the geographic data in numerous different 1g formats. In one present embodiment, the compiler 900 receives the geographic t9 data in an interchange format, specifically, GDF 3Ø As mentioned above, if 2o the data are initially provided in a format such as GDF, it is preferred to first 21 convert the data from the interchange format into a transfer file format prior to 22 further processing of the data. This conversion is performed because the GDF
23 format does not organize the data in a manner that facilitates handling of 24 portions of the data to produce the physical storage format. This conversion 2s process into the transfer file format may be applied to map coverage data, as 26 well as third party data, if any.
27 Prior to starting the compiler process, a determination is made defining 2s the map coverage areas) to be represented on the storage medium. The map 29 coverage area to be represented on the storage medium may include a 3o metropolitan area, a state, contiguous states, an entire country, or other regions 31 or combinations of regions. Part of this process may take into account the t manner in which the GDF files have been organized. Separate GDF
2 interchange files may exist for different geographical portions of a country.
The desired map coverage area to be stored on the storage medium may not 4 necessarily coincide with the boundaries of a single GDF file. Accordingly, the input to the compiler process may include more than one GDF file, i.e. the 6 GDF input may be physically sectioned into multiple files. A GDF file may also be logically sectioned, i.e., different coverage areas may be separately s included in a single file. After a selection is made of the map coverage area to be represented on the medium, the one or more GDF files corresponding to the to selected map coverage area are used as inputs to the compiler process.
t I The transfer file generation process provides an output in the form of a 12 collection of several logical transfer files 925. The number and types of 13 particular transfer files may be determined based upon the particular types of t4 information that one desires to include in the physical storage format file. In I5 one embodiment, the following different types of transfer files are created.
t6 These transfer files represent different types of geographic entities:
Names, 1'7 Languages, Administrative areas, Postal codes, Linear cartographic features is (Polylines), and Polygonal cartographic features (Polygons), Nodes, Segments, 19 Appendages, Points-of interest, Types of points-of interest, and Chains of 2o points-of interest. In addition, several cross-reference transfer files may be 21 created. These cross-reference files facilitate associating some of the various 22 entities in the other files to each other. In a present embodiment, these cross-23 reference files may include a postal code and administrative area cross reference 24 and a zone and administrative entity cross reference. In addition, a control file 2s may be created that saves information about the generation of these transfer 26 files. These transfer files may be binary type files or ASCII-type files.
In one 2'7 embodiment the Names, Administrative entities, and Languages transfer files 28 are ASCII-type files and the remainder are binary type files. Methods for 2g producing each of these transfer files from the GDF file are presented below.
3o The collection of data into these specific files represents one exemplary 31 embodiment in a part of the process to produce a physical storage format file, s2 and other collections of data and other processes may be used.

1 The Name transfer file and the Language transfer file are created using 2 the data from the Name and Attribute records, respectively, in the GDF file.
3 The Name transfer file includes the names of physical features (e.g. names of 4 roads, places, etc.) and the Language transfer file includes the language of the s names of the features (e.g. French, English, etc.).
The Administrative area transfer file is created in the form of a table '7 that represents the hierarchy of political divisions in the map coverage region 8 (e.g., state, counties, cities). The Administrative area transfer file is created from the GDF Relationship, Name, Attribute, Area, and Complex feature to records. Using these same GDF records, a Postal code transfer file is created 11 that includes the postal codes in the map coverage area. In addition, a Zone Iz transfer file may be created from these same GDF records. The Zone transfer t3 file includes data that identify neighborhoods in the map coverage area.
14 A cross reference transfer file is created that relates the entries in the 1s Administrative area transfer file, the Postal code transfer file, and the Zone 16 transfer file (if available). This cross-reference transfer file is created using the m GDF Relationship records that reference Administrative areas, Postal codes, and 18 Zones.
19 The Polygon transfer file is created from the Area, Face, Edge, Name, 2o Attribute, XYZ, and Knot records in the GDF file. Polygon entities represent 2t areas in the map coverage region, such as parks, lakes, etc. This file is in the 22 form of a table.
23 The Node transfer file is created from the Point Feature, Knot records, 24 XYZ records, and Attribute records in the GDF file.
25 The Segment transfer file and the Appendage transfer file are created 26 from the GDF Line Feature records, Edge records, XYZ records, Attribute 2'7 records, Point Feature records, and the previously-created Administrative area 28 transfer file. (Entities in the Appendage transfer file include road signs, 29 conditions, shape points, blocks, address ranges, overpass information, and so 30 on).
31 The Polyline transfer file is created from the GDF Line records, Feature 32 records, Edge records, XYZ records, Knot records, Attribute records and Name 1 records. Polyline entities include both navigable and non-navigable linear 2 features, such as roads, creeks, and railways. After all the Polyline records are created, the Polygon and Polyline records are merged into a Cartographic data 4 transfer file.
The POI (points-of interest) transfer file, and Type of points-of interest 5 transfer files are created from the GDF Relationship records, Point Feature 7 records, Attribute records, Name records, and the previously-created 8 Administrative area transfer file.
Additionally, other transfer files may be created such as the POI Chain to transfer file. This transfer file may include names of points-of interest chains, n such as McDonald's restaurants, Marriott hotels, and so on.
t2 In creating each of the transfer files, reference is made to GDF Attribute n Definition and Attribute value records to obtain complete information about the 14 attributes of the entities being created. In addition, in creating each of the transfer files, reference is made to GDF External update records to obtain the 16 identification numbers for the transfer file entities.
1'7 As part of this process, counts of the different record types can be 18 generated and maintained in the control file.
19 If it is intended to include third party data in addition to map coverage 2o data in the physical storage format, the third party data may be converted into 2t one or more transfer files at this time. The third party data may include 22 specially generated data relating to special interests, or may relate to additional 23 information in general whether or not the additional data are generated by 24 another party. These third party data may be provided in additional, vendor-specific data formats. The map coverage data file may have pointers to this 26 third party data as additional points-of interest-type data in addition to the 27 regular points-of interest data mentioned above. These pointers between the 28 main data file 902 and the third party data 904 continue to be maintained in the 29 transfer files that are produced.

1 3. Production of intermediate data files and auxiliary files 2 After the geographic data 902 and any third party data 904 are 3 converted to the transfer files 925, the data, now in the transfer file format, are 4 used to produce the various specialized intermediate data files 927 that include s the data that are used ultimately by the various navigation application programs.
These intermediate data files for the different types of navigation functions generally can be produced in any order except where the production of one type s of intermediate data file requires the previous production of another of the types of intermediate data files.
1o These intermediate files may be named in any suitable, convenient I1 manner. For example, level 0 routing data for a coverage area including the t2 Chicago metropolitan area may be called chicago.rt0, and for layer l, 13 chicago.rtl. As these intermediate files are produced, they are also organized 14 into parcels. Auxiliary files 949 (for example, files 951, 953, 955) are 1s produced, one auxiliary file for each intermediate data file. The auxiliary file 16 includes offsets identifying the starting locations of each of the parcels in the m intermediate data file to which it is associated. These auxiliary files may be t8 given any suitable names, such as chicago.rf0 for the auxiliary file for the t9 routing layer 0 data file, chicago.rt0, and so on. The information in the 2o auxiliary files is used in the isolation layer process, described below.
21 4. Routing intermediate data files 22 A data transformation layer process produces a plurality of intermediate 2s routing data files 931. The data in each of these routing intermediate data files 24 are organized spatially for use ultimately by the routing navigation application.
25 As part of this process, separate layers of the routing data are produced.
At this 26 stage, each of the separate layers is created and stored as a separate 27 intermediate data file. In addition, as part of this process, supernodes and 2s aggregated segments, as described above, are produced. Further, in each 29 separate intermediate routing data file corresponding to each separate layer of 3o the routing data, the data are organized into parcels, as described above.
In any 31 given layer of the routing data, a parcel contains segments, nodes, and 1 associated navigable attributes, such as conditions, access characteristics, date-2 time modifiers ("DTM"), etc.
3 The intermediate routing data files 931 are produced from the Segment, 4 Node and Appendage transfer files, described above. The relevant data in these s transfer files are loaded into memory and pointers are constructed to represent the relationships between the various entities. For example, a Segment entity 7 record will have a pointer to the Node entity records for the nodes at the s Segment's end points.
Generated shape points to As part of the data transformation layer process, special shape points 1 t (referred to as "generated" or "artificial" shape points) are created and included t2 as attributes of certain Segment entities in the intermediate routing data files.
13 Accordingly, these generated shape points are created and included as attributes 14 of certain Segment entities as part of the process of creating the routing 15 intermediate data files.
t5 As described above, a Segment data entity may include one or more m Shape point attributes along its length. If the road segment is other than Ig straight, the Shape point attributes provide geographic positions (latitudes, 19 longitudes) along the length of the segment to accurately represent the true 2o physical locations along the segment to assist in vehicle positioning, etc.
FIG.
21 10A illustrates a straight segment S20 and a segment S21 with shape points 22 SP1, SP2, and SP3.
23 In a preferred embodiment, even if a segment is straight and therefore 24 would otherwise not require any shape points located along it, generated shape 2s points are constructed and associated with the Segment entity as Shape point 26 attributes if any portion of the segment exceeds a predetermined threshold of 27 length. Accordingly, as part of the compiler process for constructing the 2s routing layer intermediate data files, each Segment entity is examined to 29 determine whether it contains any portion exceeding a predetermined threshold 30 of length without a Shape point. If so, a generated shape point is created and 31 associated with the segment wherever there is a length within the segment that 1 exceeds the predetermined threshold without a shape point. In one 2 embodiment, the predetermined threshold is 512 navigation units 3 (512/100,000ths of a degree) in an east-west or north south direction. Like any 4 other shape point, these generated shape points represent true positions (latitude, s longitude) along the segment. The positions of these generated shape points can be relatively easily derived since the portion of the segment for which a 7 generated shape point is included is straight. Inclusion of generated shape points ensures that there are no portions of a segment greater than 512 navigation units without a shape point. The inclusion of generated shape points to associated with segment S20 is shown in FIG. lOB at GSP1, GSP2.
11 This feature provides the advantage of increasing the likelihood that a 12 segment will be associated with all the parcels through which it passes even 13 though the segment may not otherwise have its end points or any regular shape.
t4 points within each of the parcels through which it passes. For example, a 1s straight length of a segment may pass through a corner of a parcel, e.g.
parcel t6 P34 in FIG. 10A. Since the end points of segment S20 (and regular shape m points, if any) would be located outside of the parcel, there might not otherwise 18 be any data associating the segment S20 with the parcel. This could have the 19 result that the segment might not be represented as being located in the parcel 2o even though a portion of it crosses the parcel. The inclusion of generated shape 21 points at regular intervals along an otherwise straight segment provides a means 22 of locating points of the segment in parcels that would otherwise not be 23 associated with the segment, as illustrated in FIG IOB.
24 In a preferred embodiment, a generated shape point may also be 2s calculated and included with a segment whenever any portion of a segment 26 crosses a portion of a parcel and the segment does not otherwise have any 2'7 shape points or end points (nodes) in the parcel, regardless of whether the 28 portion of the segment that crosses the parcel is at least 512 navigation units.
29 A list of all the parcels that a segment crosses can be generated and compared 3o to a list of the parcels associated with the all the segment's nodes and shape 31 points. Based on this comparison, it can be determined whether a generated 32 shape point is required to be added to any portion of the segment to associate 1 the segment with a particular parcel. The location of the generated shape point 2 may be anywhere within the parcel and is not necessarily on the parcel 3 boundary.
4 Routing intermediate data files (continued) The bearing attributes for Segment entities are computed from the shape 5 points of the segment entity. Two bearings are computed for each segment, one for each end of the segment. The bearing attribute represents the direction "going into" the segment. The bearing is calculated as an angle of displace relative to due north. In order to calculate a bearing for each end of a segment, to one or more shape points within a segment are used. These shape points 11 include those adjacent to, or within approximately 100 navigation units (or 12 approximately 300 feet) of each of the nodes at the end points of the segment.
13 An imaginary line is generated using the node at the end point and the shape 14 points adjacent to it. The direction of this imaginary line is compared relative to due north in order to calculated a value for the bearing. In a preferred 16 embodiment, the calculated bearing is normalized to a value between 0 and m to facilitate storage. The bearings are stored as attributes for each Segment 1 g entity.
19 Ranks of Node entities are defined and aggregated segments and 2o supernodes are constructed in the manner previously described. In connection 2t with the determination of aggregated segments, Node entities in all layers 22 include an attribute that indicates whether the node is "aggregated-segment-23 significant", that is, if the node is an end node of an aggregated segment for 24 that layer. Also at this stage, Segment entities that include combinations of attributes that correspond to entries in the normalized attribute table are 2~ assigned pointers to the normalized attribute table. The positional data for the 2~ Nodes and Shape points (including the generated shape points) are used to build 2s a Peano-key array.
29 The data in each of the layers are parcelized starting with the lowest layer (most dense), in the manner previously described. In a preferred 1 embodiment, in forming the parcels, an estimate is made of the ultimate size of 2 the parcel.
' 3 Estimation technique 4 In the parcelization process described above, there are numerous instances in which amounts of data are evaluated. For example, during the 5 regular division procedure, described above, amounts of data are evaluated for the purpose of determining whether to continue to divide the data into portions s representing smaller rectangular areas. In the custom division procedure, described above, amounts of data are evaluated for the purpose of determining to the desired splitting line for forming parcels. In these instances, these t 1 evaluations take into account the fact that several factors can affect the ultimate 12 size of a parcel formed from an amount of geographic data. For example, in t3 addition to the geographic data, most, if not all, parcels include overhead, such 14 as a parcel header, and index information, such as kd-trees. Some of these additional kinds of information included in parcels are fixed in size and others 16 may vary with the amount or content of data. These types of overhead occupy space within a parcel so that in evaluating whether a given amount of data can be formed into a parcel, it is required to take these additional items of 19 information into account. On the other hand, compression techniques can be 2o used to reduce the size of certain types of data. It is also required to take these 21 compression techniques into account in evaluating whether a given amount of 22 data can be formed into a parcel with a desired fill percentage.
23 One way to make these evaluations is to perform all the steps of 24 forming a parcel from an amount of data whenever an evaluation is required.
Although this process would provide the necessary information to make the 26 evaluation, it is computationally intensive and relatively inefficient requiring the 2'7 generation of many trial parcel results (which are ultimately discarded) in order 2s to arrive at a determination of desired parcel boundaries. Instead, in a preferred 29 embodiment, an estimation technique is used.
3o The estimation technique identifies the variables that exist in a type a 31 geographic data. The variables are identified as the quantities of each of the t different types of entities in a type of geographic data. For example, in the 2 routing data, the variables are identified as the quantities of each of the node, segment, condition, and shape entities that exist in a given amount of 4 geographic data. The quantities of supernodes and aggregated segments are s also identified separately. The estimation technique applies constants to each of these variables to estimate the approximate size of a parcel formed from a given amount of data. The constants to be applied to each of these variables are s derived by a trial process in which each of these variables is caused to vary in a relatively wide range (and relative to each of the other variables) and the to resultant parcel sizes are calculated.
11 Actual parcels are generated for a representative data sample. The 1z estimation constants are given initial values and the resulting parcel size t3 estimates are compared with the actual parcel sizes. One constant is selected 14 and its value is perturbed by small amounts in the direction that improves the Is estimate. When no further improvement is obtained by further changes to the 16 selected constant, the process is repeated for a second selected constant, and 17 subsequently for all remaining estimation constants. This process is then Ig repeated one or more times for all estimation constants, until estimates are t9 within an acceptable range or no further improvements can be obtained.
2o The estimation process allows the resultant parcel to be estimated to 21 within approximately 2%. The estimation technique is used in conjunction with z2 a target parcel size (such as 95%) that allows the estimation technique to 23 provide an estimate that is almost always within the allowable size.
24 The estimation technique can be applied to all types of data, including 2s cartographic, maneuver, points-of interest, and so on. Since each type of data 25 has different entities, each type of data would have its own variables and 2~ constants. However, the constants would be derived in a similar fashion.
2s Routing intermediate data files (continued) 29 A two dimensional kd-tree is constructed for each layer using the 3o aggregated-segment-significant nodes (as described above) for that layer.

1 Layer 0, of course, does not have any aggregated-segment-significant nodes, 2 and accordingly. the regular nodes are used to build a kd-tree for layer 0.
As each routing parcel is defined in the intermediate routing data file for layer zero, the parcel is further divided into cells containing subsets of the parcel data. These cells are defined to have a predetermined size, such as 512 6 navigation units (512/100,000th of a degree). The cells are organized in Peano-key order. The positional data within each cell is organized by latitude s and longitude in ascending order. These cells can be used later to facilitate spatial searches of the data within the parcel.
to As the parcels are generated, temporary parcel identifiers are assigned n (referred to as "parcel reference numbers" or "PRN's"). The parcels are stored t2 in each file in depth-first order from the global kd-tree (which is approximately t3 Peano-key order).
14 It is noted that all entities in the parcelized routing data are assigned new identification numbers relative to those used in the transfer files. It is 1~ further noted that at any time when entities are first generated from the transfer t'7 files, they are assigned such new identification numbers. In such cases, a 1s cross-reference table is created between the old and new identification numbers.
19 Thus, whenever any subsequent steps make reference to entities that have 2o already been assigned new identification numbers, the entities may be obtained 21 from the transfer files (where they still have their old identification numbers) 22 using these cross-reference tables.
23 5. Cartographic intermediate data files .
24 After the routing intermediate data files are generated, the cartographic intermediate data files are generated. The cartographic intermediate data files 25 include polylines and polygons. Polylines are data entities in the cartographic 27 portion of the geographic database that represent linear features. Polygons are 2s data entities in the cartographic portion of the geographic database that 29 represent area features. Polylines and polygons are used by the map display 3o function of the navigation system to produce an image on a visual display in 31 the navigation system.

1 A data transformation layer process creates polylines for both navigable 2 and non-navigable features. Separate polylines are created for each layer of cartographic data. In general, polylines should be represented by the longest 4 possible "strands" of each of the features consistent with certain limitations, s such as the boundaries of a parcel or subdivision of a parcel, as mentioned below.
'7 Using the Polyline transfer file, the node entities for each non-navigable s polyline are ordered in sequence linearly. The length and minimum bounding rectangle of each Polyline entity are computed. This computed length may be to used along with other information to determine whether the Polyline entity 1 t should be included in a given cartographic layer of generalization.
12 The Nodes, Shape points, and Segments from the Segment, Node and t3 Appendage transfer files are used to construct Navigable polyline entities (i.e.
t4 roadways). Navigable Polyline entities are constructed by combining several t5 segments to form longer stands of segments. For navigable polyline entities, 1~ segments are combined to construct polylines that are as long possible provided 17 that certain attributes remain unchanged along the polyline. For example, t8 segments can be combined to form a polyline provided that the segments have 19 any one or more of the same attributes, such as vehicular access, average speed, 2o number of lanes, direction of travel, rank, or type of roadway (e.g. paved, 21 ramp, tollway). After a polyline is constructed, the length and minimum 22 bounding rectangle of the navigable polyline entity are computed. As with 23 non-navigable polylines, the length value may be used to determine whether the 24 polyline should be included in a given cartographic layer of generalization. The 25 minimum bounding rectangle of a navigable polyline is used to determine if the 25 polyline intersects the boundary of a subdivision of a parcel, as explained 27 further below.
28 Using the Polygon transfer file, the node entities for each polygon are 29 organized in sequence so that the node entities associated with each polygon are 30 ordered in a counterclockwise fashion. The perimeter, area, and minimum s 1 bounding rectangle of each polygon entity are computed and stored. These 32 computed values may be used along with other information to determine t priority for overlaying of graphics in a given cartographic layer and to 2 determine whether the entity should be included in a given cartographic layer of generalization.
4 The ordered polygons and non-navigable polylines, as well as the navigable polylines, are then organized into multiple layers. One polygon file and one polyline file are created for each layer. The number of layers of '7 cartographic data may be chosen to correspond to the number of layers of 8 routing data. For example, if there are five layers of routing data, five layers of cartographic data may also be formed. The lowest (most dense) layer of to cartographic data is formed first. (The number of layers of cartographic data 11 may also correspond to the number of different ranks of segments.) 12 As with the routing data, normalized attribute tables may be constructed 13 that include commonly occurring combinations of selected attributes of the 14 cartographic data. If normalized attribute tables are used, pointers are included in selected cartographic data entities that point to the cartographic normalized 16 attribute table.
17 As each layer of cartographic data is formed, the cartographic data 18 within the layer are parcelized. As a preliminary matter, the positional data 19 (e.g. latitude, longitude) for each layer are organized by either the longitudes or latitudes of the positions. For example, keys may be generated for each 21 position, with a pointer to the position and a pointer to the entity to which the 22 position corresponds. The keys are organized according to the longitude of the 23 positions to which they point, in ascending order (left to right).
Alternatively, 24 this can also be done by latitude. Additionally, pointers to the keys are 2s generated, with the pointers organized by latitude, in ascending order.
This 26 positional data is used in the estimation technique for parcelization, as described 2~ above.
28 If the routing data (or other spatially organized data) have not already 29 been parcelized, each layer of the cartographic data may be parcelized in the 3o manner described above. If a global kd-tree has already been generated based 31 upon parcelization of the routing or other spatial data, the same boundaries 32 previously generated are used to parcelize the cartographic data. The 1 cartographic data for a map coverage area should be contained in parcels 2 covering the largest areas consistent with the requirement that the amount of data within any parcel not exceed a maximum parcel amount. Therefore, cartographic data parcels do not necessarily have the same geographic boundaries as the routing data parcels, previously generated. For example if the cartographic data are less dense, the cartographic data may not have to be '7 divided as much as the routing data. However, in dividing the cartographic data to form parcels, the same division lines would be used that were generated in the parcelization of the routing data. This implies that a plurality of routing to data parcels may correspond to the same geographic area as one cartographic 11 parcel (and vice-versa in areas where the Cartographic data happens to be 12 denser than the routing data). If the cartographic data in a given layer is more t3 dense than the routing data, further divisions of the cartographic data may need 14 to be made beyond the divisions that had already been defined in the parcelization of the routing data. Such further divisions of the cartographic 16 data may be made in the manner previously described.
Subdivisions of cartographic parcels is For cartographic data, as each parcel is defined at a given layer, the 19 parcel is further divided into cells containing subsets of the data in the parcel.
2o The cells may be defined by a regular grid pattern overlaid on the parcel.
A
21 header is created in the parcel to identify the parcel cell structure.
22 The cells represent relatively large non-overlapping geographic 23 rectangles within the parcel's coverage area. This facilitates the extraction of 24 data corresponding to a search rectangle that overlaps the parcel's coverage area. The cells are additionally used for managing zooming and panning of a 26 geographic area represented by the cartographic data in the parcel by a map 27 display navigation application function. Although a preferred embodiment of 2s the navigation sysetm may read data only in whole parcels from the medium, 29 the data are compressed. Therefore, by using a cell structure, only a subset of 3o the data in the parcel, i.e., the cell content, needs to be expanded and returned s t to the navigation application to display a map location at a given zoom level.

1 Without such subdivision, it would be necessary to expand and examine an 2 entire parcel to locate data within the search rectangle. Neighboring subsets or 3 cells of the data can be used when the map is zoomed out or panned left, right, ' 4 up or down.
For example, referring to FIG. 11 A, the area needed for map display intersects a small part of a cartographic parcel. Because the data within the parcel are organized into cells, only the data contained in the two cells s intersecting the map display area need be examined. The cells overlapping a given rectangle can be found by searching a kd-tree internal to the cartographic to parcel, each of whose leaf nodes represents a cell. The records of a given type n within a cell are stored contiguously, so that each cell comprises a contiguous 12 interval of polyline records, a contiguous interval of polygon records, and a is contiguous interval of point records.
14 FIG. 11B illustrates an internal kd-tree entry for a cartographic parcel.
Cuts for the kd-tree are defined, as described previously, at any 1/32 division of 15 a rectangle's minimum enclosing 2~c2' tile. Each leaf node in the kd-tree 1'7 represents a cell, and corresponds to a set of intervals of cartographic entity t8 records.
19 Subdivision of parcels also breaks large polygons and long polylines at 2o cell boundaries. In connection with the defining of these parcel cells, polygons 21 and polylines that intersect the cell boundaries may be cropped or clipped to 22 conform to the cell boundaries. For example, if a polygon entity PG10 2s represents a lake that occupies portions of six different cells, CI-C6, as z4 represented in FIG. 11C, the polygon entity representing the lake is replaced by six separate polygon entities (illustrated as PG11-PG16) representing the 2~ portions of the lake located in each of the cells C1-C6. Each of these new 2~ polygon entities is provided with a new entity identification number within the 2s cells so that the appropriate data can be read for map display. In a present z9 embodiment, the polygon entities do not include information indicating in 3o which cell they are located.

1 6. Cross-reference intermediate data files 2 After the routing and cartographic data are parcelized, cross-reference 3 files may be created correlating entities in each of the parcels in each of the 4 layers of cartographic data to the routing entities in the parcels of the routing s data. In one embodiment, the cartographic entities are correlated only to the routing data entities in layer zero of the routing data. These cross-reference files may be used, for example, by a navigation application program to find the appropriate cartographic data to display and highlight a route that corresponds 9 to the segment entities in the routing data that form a route calculated by a 1o route calculation application. Conversely, the cross-reference file can be used 1 t to find a routing segment entity based on a point-and-click of position on the 12 map display.
13 7. Place intermediate data file and place indices 14 Place data refers to administrative areas and zones, e.g. municipalities, Is counties, neighborhoods, etc. A data transformation layer process produces a t6 place intermediate data file and indices using the Administrative areas, 17 Segments Nodes, and Appendage transfer files. These transfer files are loaded I8 into memory, and the places are organized in hierarchical order, e.g., country, t9 state, county, city, etc. In general, at each level of hierarchy, places having the 2o same administrative hierarchical parent place are arranged together and ordered 21 alphabetically. However, if the immediate hierarchical administrative parent of 22 a place is determined to be not "address-significant", then the place is arranged 23 together with other places having the same hierarchical administrative parent 24 place and ordered alphabetically based on the next higher level parent in the 2s hierarchy which is determined to be address-significant. A place is determined 25 to be not "address-significant" where it is not normally used to define addresses.
27 For example, address information in the U.S. typically includes a municipality 2s (e.g. a city, town, village) and the immediate administrative hierarchical parent 29 of a municipality is a county. However, counties are not address-significant in 3o the U.S. because counties are not normally used in addresses. Accordingly, the 31 next higher hierarchical administrative parent, i.e. a state, is used because states 1 are used to define addresses and therefore are address-significant. In this case, 2 both cities and counties will be organized by the state in which they are located.
3 Pointers are generated between related places at different levels of the 4 hierarchy (e.g., a city points to the county in which it is located, and the county points to the state in which it is located, and vice versa). Also, for each place a minimum bounding rectangle may be computed. The minimum bounding '7 rectangle for each place is determined and stored at the lowest level in the s hierarchy. The minimum bounding rectangle of a place may be computed based on the segments that form the place. The minimum bounding rectangle to for each higher level place in the hierarchy may be computed by combining the 11 minimum bounding rectangles for the lower level places contained within that 12 place, and then generating a minimum bounding rectangle for those combined 13 rectangles. The minimum bounding rectangles associated with places are used t4 to facilitate spatial searches by the navigation application program.
Is B-tree index files may be created for names of places. These indexes contain the names of places in order of identification numbers for the places.
n7 Each entry in the index file has a pointer to the place's record in the associated 1g parcel. Place data may be compressed using Huffman encoding or other 19 well-known methods of compression.
2o The place data are stored in a place intermediate data file. Like the 2l other intermediate data files, the place data file is parcelized as it created.
22 However, unlike the spatially-organized data, the place data are not parcelized 23 spatially. Instead, the place data are parcelized based only upon size (in the 24 order that the place entities are arranged) so that parcels of the place 2s intermediate data file are close to, but less than a maximum parcel amount.
z6 8. Postal code intermediate data file and postal code indices 2'7 A data transformation layer process produces postal code intermediate 2s data files and indices using Postal code data from the Postal code and Segment 29 transfer files. These files are loaded into memory and postal codes are 30 organized in alpha-numerical order. For each postal code, a minimum s 1 bounding rectangle is computed based on the segments having the postal code.

Minimum bounding rectangles for postal codes may be used by the navigation 2 application programs to facilitate postal code-based spatial searches.
B-tree index files may be created for postal codes containing pointers to 4 each postal code's associated parcel. Postal code data may be compressed using s Huffman encoding or other well-known methods of compression.
The postal code data are stored in a postal code intermediate data file.
Like the place intermediate data file, the postal code intermediate data file is s parcelized based upon amounts of data.
9. Navigable feature name intermediate data file and indices 1o A data transformation layer process produces a navigation feature name 1 t intermediate data and indices using the Navigable feature name data from the 12 Name transfer file and the Appendage transfer file. These files are loaded into is memory, and the names are organized in alphabetical order. B-tree index files t4 may be created for navigable feature names. These index files contain the 15 name records, each of which contains a pointer to the name's associated parcel.
16 Navigable feature name data may be compressed using Huffman encoding or 17 other well-known methods of compression.
1g The navigable feature name data are sorted in alphabetical order by the t9 base name of the navigable feature name. The sorted navigable feature name 2o data are parcelized and stored in an intermediate data file.
21 10. Navigable features (ordered by place) intermediate data file 22 Navigable feature identification numbers are also organized for each 23 place at the lowest level of the place hierarchy. The place or places with which 24 each navigable feature is associated are determined from the segments that 25 comprise the navigable feature. More specifically, for each such segment, the 25 administrative area in which the segment is located can be determined from the 27 Segment transfer file, and the road name for the segment can be determined 2g from the Appendage transfer file. Thus, an administrative area can be 29 correlated with the road name for a navigable feature. The places are organized 3o by their identification numbers. The navigable feature identification numbers _77_ t for each place are organized in ascending order within those places. In 2 addition, each navigable feature identification number record also contains the 3 identification numbers) of the maneuver parcels in which the navigable feature 4 can be found in the associated place.
This data may be used by the navigation application program to generate lists of roads organized by place, and to identify the segments associated with a road/place combination.
At least two B-tree index files may be created for navigable features ordered-by-place. One index file uses the place identification as a primary key 1o and the navigable feature base name as a secondary key. This index file can be 11 used to locate navigable features that match a base name within a place.
The I2 other index file uses the navigable feature ID as a primary key. This index file 13 is used when the navigable feature ID is already known (from a prior search for 14 example) and it is desired to obtain additional information about the navigable feature, such as its place.
16 11. Maneuver intermediate data file 1~ Maneuver data include segments and their address ranges, navigable 1~ feature identification numbers, road sign information, and cross-references 19 between entities, such as for example between segments and navigable features, 2o and vice versa 2l A data transformation layer process produces a maneuver intermediate 22 data file and indices using the Segment, Node and Appendage transfer files.
z3 Pointers are constructed to establish relationships between the various entities.
24 For example, pointers establish relationships between the segments in the routing data and the names of places in the place data. In another example, a 26 segment will have pointers to the records of the nodes at the segment entity's 27 end points.
2g Generated shape points may be calculated and stored with the maneuver 29 segments, or alternatively, the generated shape points created during the 3o production of the routing intermediate data file may be used.
_78_ t The positional data for nodes, shape points, and artificial shape points 2 (now in memory) are used to build a Peano-key array. Alternatively, the Peano-key array generated for the routing intermediate data file may be used.
4 Some of the data obtained from the transfer files to generate the s maneuver data parcels (such as navigable feature names and places) may have already been assigned new identification numbers in connection with the previous production of intermediate files for other types of data. Therefore, the s old identification numbers for those entities are converted to the new ones using cross-reference tables that are generated during the production of each 1o intermediate file.
11 The maneuver data are parcelized using the global kd-tree previously 1z generated. The maneuver data should be parcelized so as to satisfy the 13 minimum desired fill percentage for each parcel. The maneuver data for a 14 given geographic area should be contained in the parcel covering the greatest Is area where the minimum desired fill percentage is satisfied. If the maneuver 16 data encompassed within a geographic rectangular area corresponding to m previously-defined parcel exceeds the maximum parcel amount, further 1s divisions of that data into groupings corresponding to smaller rectangular areas 19 may be made in the manner previously described in order to achieve the desired 2o parcel amount.
2t For maneuver data, as each parcel is defined, segments may be z2 associated with a cell index internal of the parcel. The cell index may be a z3 combination of latitude and longitude. A parcel is represented as divided into a 24 cells, wherein each cell is defined as a geographical area of a regular size, such 2s as 256/100,000ths of a degree. A minimum bounding rectangle is calculated 25 for each segment in the parcel, and the cells in which the northeast and 2~ southwest corners of the segment's minimum bounding rectangle are located are 2g identified. These cells are then associated with the segment. (It is possible that 29 both the northeast and southwest corners of the minimum bounding rectangle of so a segment are located in the same cell and if so, this information is associated 31 with the segment accordingly.) This arrangement of segment data facilitates 1 spatial searches of the data within the parcel by permitting a rapid examination 2 of the cells that a segment spans.
3 12. Points-of interest and third party intermediate data files 4 Using the points-of interest transfer file 930, another data transformation layer process reads these data and generates a points-of interest intermediate 5 data file. In producing this intermediate file, this process spatially organizes the points-of interest data into parcels having the same boundaries as the parcels of s cartographic data in the cartographic intermediate data file. At this stage, if third party data are included in the transfer file format, these data are also to organized into an intermediate file and associated indices. In the production of a 1 the third party intermediate data file, the data are organized into parcels having 12 boundaries that are the same as those of the cartographic and points-of interest 13 parcels, described above.
14 13. Neighboring kd-tree intermediate data file After all of the spatial data (routing, cartographic, maneuver, and m cartographic cross-reference data) are parcelized, a transformation layer process 1'7 stores neighboring kd-trees within each parcel for each type of spatial data. A
1s neighboring kd-tree within a parcel identifies the parcel, the parcel's parents) 19 (if any), the parcel's children (if any), and the parcel's adjacent parcels (if any).
2o These neighboring kd-trees can be used by the navigation application program 2t for spatial searches and to access one parcel from another.
22 14. Global kd-tree intermediate data file 23 After the neighboring kd-trees are defined and stored for each of the 24 spatially-organized parcels, the global kd-tree is converted to a compressed form and stored in an intermediate file.

1 D. Physical storage format isolation layer 2 1. Overview As mentioned above, the geographic data set compiler 900 provides an 4 output 905. The component of the compiler 900 that produces this output 905 is the physical storage format isolation layer 914. The physical storage format 5 isolation layer 914 produces the output 905 from the intermediate data files produced by the data transformation layer 910. The isolation layer 914 forms a s media-specific format from the intermediate data files 927 in accordance with the placement schema, described above.
to One of the advantages provided by the physical storage format isolation t 1 layer 914 is that it isolates the rest of the geographic data set compiler 12 processes, such as the data transformation layer processes, from the details and 13 characteristics of particular different types of media. Different media types may 14 benefit from different placement and redundancy strategies for the various data components. For example, on a CD-ROM, the data expected to be accessed 16 most frequently or requiring fastest access time, are placed closer to the inner m track.
1g Referring to FIG. 9C, the output 905 produced by the physical format 19 isolation layer 914 includes at least one storage medium geographic data file 1001. The storage medium geographic data file 1001 contains all the individual 2t parcels included in the intermediate files 927 produced by the data 22 transformation layer 910. In the isolation layer 914, these individual parcelized z3 intermediate files 927 are concatenated into a single file to form the storage 24 medium file 1001.
z5 In the isolation layer 914, more than one map data coverage area (DCA) 26 may be combined into a single storage medium geographic data file 1001.
2~ Each map data coverage area relates to a specific geographical region, such as 28 the region 100 in FIG. 4A. If multiple map data coverage areas are included in 29 a single geographic data file 1001, each map data coverage area includes its own map data file header. (The map data header file contains global data that 31 is applicable to its particular data coverage area, as explained below.) For 3z example, the file .1001 includes two map data coverage areas, and accordingly, t includes two headers 1004 and 1005. A map data file header is placed in the 2 storage medium geographic data file immediately before the parcels of data to 3 which it relates.
4 Included as part of the output 905 of the isolation layer 914 is a media file or component 1009. The media file/component 1009 may be formed as a 6 separate file or preferably, the media file 1009 may be formed as a parcelized 7 component (i.e., a "media component") of the storage medium geographic data file 1001. The media component 1009 contains global data relating to the storage medium as a whole.
1o The placement of data within the file 1001 is provided by the 11 concatenation of the various intermediate data files into a single file and 12 creating offsets (referred to as "parcel ID's") for each parcel within each 13 intermediate data file. The parcel ID is a combination of parcel size, 14 redundancy, and offset from the start of the file 1001. Thus, the parcel ID
is inherently dependent on the media characteristics. The parcel ID not only 16 allows for the quick location of any particular parcel on the medium but also, 1'7 by virtue of carrying information identifying the size of the parcel, allows any 1s navigation application program to appropriately allocate sufficient memory to 19 load the parcel. For a CD-ROM, the parcel ID preferably reflects the sector 2o number. For a PCMCIA card, the parcel ID reflects a byte offset, for example, 21 in units of 256 bytes. One bit of the parcel ID is used to indicate the presence 22 of extra (redundant) copies of the parcel. The locations of the copies, if any, 2s can then be determined from a memory-resident table by the navigation 24 application. For media, such as CD-ROM, the ability to select among various 2s copies stored on the medium reduces data retrieval times, because the redundant 26 copy closest to the CD head can be chosen. In one alternative embodiment, 2'7 redundant copies of data may be used for index information such as the "global 2s kd-tree."
29 Since all of the data in the intermediate data files are parcelized (with 3o the possible exception of some global data), the parcels are first visited in a 31 particular sequence before parcel references can be substituted with parcel ID's.
32 Parcel placeholder information is provided for this purpose. This information is 1 in the form of the previously-generated parcel reference number (PRN) or 2 parcel index that can be translated to a byte offset. The parcel index (0-n) is a raw sequential index generated by each of the processes in the data 4 transformation layer 910 that creates intermediate data files. Thus, the isolation layer 914 first loads parcels from the intermediate data files and writes out the 5 parcels in a predetermined sequence rounded to the nearest boundary units.
Then, parcel reference numbers are replaced by the newly-generated parcel s ID's. This second step involves knowledge of the specific data structures involved. There are two types of parcels this second step handles. Parcel to reference numbers that are local to data parcels require that the appropriate 11 parcel header for that parcel type be read in and the parcel tables containing the 12 parcel reference numbers be accessed through the header. The parcel reference is numbers that are carried within index parcels require that the particular index 14 file parcel be read in and the index tree be traversed in order to update the parcel reference numbers to corresponding parcel ID's. Since there are spatial 16 and non-spatial indices, this step uses the information developed in creation of 17 the index trees.
1s One alternative approach to performing this process provides for the 19 setting up of an auxiliary file that contains an offset for each parcel reference 2o number. Updating the index tree parcel reference numbers would involve 21 accessing the particular location as indicated by the offsets and then using the 22 parcel reference number at that location as an index into an existing table 23 containing actual parcel offsets.
24 Another alternative approach is to have the process in the data 2s transformation layer that produces the intermediate data file also include a 26 function that navigates down to the locations of parcel reference numbers to 2~ allow the physical storage format isolation layer 914 to effect the substitution of 2s parcel reference numbers with parcel ID's. The method outlined below is based 29 on this latter approach.
3o Two useful by-products of the operation of the physical storage format 31 isolation layer 914 are the creation of the parcel redundancy tables and the 32 index root parcel ID's.

1 Note that for any different type of storage medium, the output files, 2 including the geographic data output file 1001, are created first on a hard disk.
Transferring the output files to the actual storage device 22, such as a CD-ROM
4 is the function of a mastering process 917, which is well known in the art.
s 2. Components of physical storage format isolation layer The isolation layer 914 uses as inputs the intermediate data files 927 7 produced by the data transformation layer 910 and the auxiliary files 949 s produced by the data transformation layer 910 for each of the intermediate data 9 files. The isolation layer process may be configurable (either by manual input 1o prompts or from a configuration file) to accept input identifying one or more 11 data coverage area names, the type of medium being used, and a starting unit t2 (or position unit) on the storage medium. The isolation layer also uses a look 13 up file 1020 (referred to as "data map file") that contains the preferred data 14 placement order and redundancy information. The redundancy is implied by is the repeated occurrence of different data file units.
t6 As mentioned above, an auxiliary file (referred to as "an offset m descriptor file") is produced for each intermediate data file. The offset Ig descriptor file contains parcel offsets and parcel sizes for each parcel in each t9 intermediate data file. For example, the intermediate data file 943 includes data 2o parcels 943A, 943B, 943C ..., and associated with the intermediate data file 943 21 is an auxiliary file 953 containing the parcel offsets and sizes for the 22 intermediate data file 943. The parcel offset reflects the byte offset of the 23 parcel from the start of the file. In a preferred embodiment, an offset descriptor 24 file exists for each type of intermediate data file for every layer. As an 25 example, the intermediate data files for routing layer 0 through layer 4 files 26 each is associated with it own offset descriptor file that contains a table of byte 27 offsets implicitly indexed by the parcel reference number within the file.
In a 2s preferred embodiment, each of the intermediate data files, including the index z9 and the relevant global data files, has a fixed size file header that indicates the 3o total number of parcels that are contained in the file.

1 The isolation layer also uses a file 1030 (referred to as a " ileinfo 2 descriptor file") that contains information identifying, for each intermediate data 3 file, file extensions and suffixes for both the data file unit as well as for the 4 accompanying offset descriptor files on disk. For each intermediate data file, s the fileinfo descriptor file 1030 also includes information indicating whether or 6 not a particular intermediate data file contains any parcel reference numbers.
7 3. Operation of physical storage format isolation layer s In the isolation layer 914, prior to being written out in sequence, each parcel is examined to determine by how much the size of the parcel should be Io increased so that it conforms evenly with the size of the boundary unit 11 associated with the storage medium onto which the data will be written.
12 Different storage media may have different sizes of boundary units. For n example, for a CD-ROM, the boundary unit is 2048 bytes and for a PCMCIA
14 card the boundary unit is 256 bytes. Unless a parcel has a size that exactly 15 corresponds to a multiple of a boundary unit of the medium, the parcel is t6 increased in size by adding an amount of padding (also referred to as a 17 "rounding adjustment") to "round up" the parcel to a size that corresponds to 1g the next largest multiple of a boundary unit. Because each parcel in the 19 intermediate data files may have a different amount of data, the amount of 2o padding is separately calculated for each parcel in each intermediate file.
21 Padding a parcel so that it conforms in size to the next larger multiple 22 of the boundary unit on the medium requires first determining the size of the 23 parcel in terms of the number of physical boundary units. Depending on the z4 type of media, this involves using one of the two formulae:
25 For a CD-ROM, where the boundary units are 2*K (where K = 1024 26 bytes), the rounding adjustment is equal to (parcel size%2*K) rounded to the 27 next 2K unit, where parcel size is equal to the size of the parcel as it exists in 28 the intermediate data file.
29 For a PCMCIA cards, where the boundary units are 256 bytes, the 3o rounding adjustment is equal to (parcel size%256) rounded to the next 256 t unit, where parcel size is equal to the size of the parcel as it exists in the 2 intermediate data file.
If media other than CD-ROM or PCMCIA cards are used, there may be different boundary units of different sizes, and the rounding adjustments are modified accordingly.
5 The isolation layer 914 is initialized with the appropriate parameters identifying the type of medium, the map coverage area, etc. Also, the look up s file 1020 (i.e., the data map file) indicating the ordering and redundancy is loaded. A first pass through the look up file 1020 is made in memory to to determine the total number of intermediate data files and the redundancies.
If a 11 specific file does not exist for the data coverage area, the isolation layer process 12 moves to the next file as long as the missing file is not part of the minimal set.
13 The minimal set for example may include the global data, at least one set of t4 indexes, and intermediate data files.
Using the auxiliary file (i.e., the offset descriptor file) that identifies the 16 size and location of each parcel in the first intermediate data file, the parcel is 1'7 read into memory and written back to the storage format file 1001 on disk after Ig rounding it off to the next largest boundary unit. After the parcel is written, 19 using the auxiliary file, the process moves on to the next parcel in the first intermediate data file. A rounding adjustment is again calculated and the 2t parcel, plus the rounding adjustment, is written to disk. The process continues 22 until all the parcels in the first intermediate data file are padded and written to 23 disk. As the parcels are written to disk, a parcel ID is assigned to each of the 24 parcels. Each parcel is assigned a unique ID and in a preferred embodiment, the parcel ID represents a combination of offset from the beginning of the 26 physical storage format data file 1001 plus the size of the parcel (taking into 2~ account the rounding adjustment) plus redundancy information.
28 After the parcels from the first intermediate data file are padded, 29 assigned parcel ID's, and written to disk, the next intermediate data file (e.g., 945) is loaded into memory and its parcels are padded, assigned parcel ID's, 31 and written to disk in a manner similar to the first intermediate data file. As 32 mentioned above, the sequence in which the intermediate data files are handled 1 is determined by reference to the look up file 1020 (data map). As the second 2 and subsequent intermediate data files are processed, the parcels in these intermediate data files are written into the same storage format data file 1001.
4 Accordingly, the parcels in the second and subsequent intermediate data files s are assigned parcel ID's that are offsets (plus parcel sizes) from the start of the same storage format file 1001 that already includes the parcels written from the 7 first intermediate data file. For the redundant parcels, if any, the same process is used extended to accommodate new sets of parcel ID's. At the end of this process, parcel ID's have been created for all the data types existing in the 1o data map file and available on the media. In a preferred embodiment, all the 11 parcels from all the different intermediate data files for a database region are 12 included in a single, per-region storage format data file (i.e., all the 13 intermediate data files have been merged in a concatenation-type process).
14 After all the parcels from the intermediate data files have been 15 concatenated into the storage format data file, an isolation layer process updates 16 all the parcel reference numbers in the data parcels that have been written to 17 disk. Many of the data, including the index files, include references to other 1g data either within the same parcel or in other parcels. To enhance operation of t9 the navigation application functions, these references to other data are updated 2o to include the assigned parcel ID. Since the previous isolation layer process 21 assigned new parcel ID's to all the parcels, all the parcel references internal of 22 the parcels (the previously-assigned parcel reference numbers) have to be 23 updated using the newly-assigned parcel ID's. In a preferred embodiment, the 24 look up file (data map) includes information that identifies the types of 25 intermediate data files containing parcels having parcel reference numbers that 25 require updating. A process in the isolation layer forms a table that keeps track 27 of, for each parcel written to disk, the parcel ID and the parcel reference 28 number previously associated with that parcel. For those intermediate data files 29 that include parcels that require updating, the isolation layer process uses the 30 look up file to identify offsets to parcel reference numbers in the parcels. All 3t the parcel reference numbers within all the parcels are located and replaced 32 with the appropriate parcel ID.
_87_ 1 As mentioned above, more than one map coverage area (i.e., database 2 region) may be included in the physical storage format data file 1001. The above process would be followed for subsequent map coverage areas included 4 within the same physical storage format data file 1001. Alternatively, s additional map coverage areas may be included in separate physical storage format data files.
This physical storage format data file 1001 is used in a mastering s process 917 that writes the file 1001 onto the storage medium. When the 9 output file is written onto the medium, it retains the organization shown in FIG.
l0 9C. The mastering process may be conventional. When the output file 1001 is t 1 stored on the physical medium, such as a CD-ROM, the parcel ID information 12 permits rapid location of the data on the medium since the parcel ID
references 13 in the data correspond directly to locations on the medium. That is, in the t4 embodiment described above, the parcel ID represents an offset (plus parcel 15 size) from the start of the single map data file stored on the medium. This t5 information can be used to directly locate the position on the medium where m data are stored. This provides the potential for enhancing the speed and 1s operation of navigation application functions that use the geographic data on the 19 storage medium.
2o VI. ALTERNATIVE EMBODIMENTS
21 In further alternative embodiments, the navigation system may 22 incorporate wireless communication to obtain some or all of the data it uses 23 from remote or central locations. In such alternative embodiments, the 24 geographic data may be provided from a remote or central location, or 2s alternatively, some or all information may be available via wireless 26 communications. For example, updates or real-time traffic information may be 27 provided via wireless communications to supplement a geographic database 2s installed in an in-vehicle navigation system.
29 It is intended that the foregoing detailed description be regarded as 3o illustrative rather than limiting and that it is understood that the following _88_ claims including all equivalents are intended to define the scope of the invention.

Claims (28)

WHAT IS CLAIMED IS:
1. A method of storing a plurality of records of geographic data on a storage medium, wherein each record represents a physical feature having a physical location in a geographic region, the method comprising the steps of:
separating said plurality of records into first and second groupings of records wherein the records in said first of said groupings represent physical features having geographic locations encompassed within a first sub-rectangular area and the records in said second of said groupings represent physical features having geographic locations encompassed within a second sub-rectangular area, wherein said first and said second sub-rectangular areas are formed by a division at a position of a rectangular area that encompasses the locations of the physical features represented by the plurality of records in said first and second groupings, wherein said position of said division is determined by evaluating a plurality of trial divisions of said rectangular area; and selecting one of said plurality of trial divisions based upon resultant sizes of said first and second groupings.
2. The method of Claim 1 further comprising the step of:
comparing resultant sizes of said first and second groupings derived from said step of evaluating to a first range of sizes;
and wherein said step of separating comprises separating said plurality of records into first and second groupings based upon at least one of said groupings corresponding to said first range of sizes.
3. The method of Claim 1 further comprising the step of:
comparing resultant sizes of said first and second groupings derived from said step of evaluating to a first range of sizes;
and wherein said step of separating comprises separating said plurality of records into first and second groupings based upon both said first and second groupings corresponding to said first range of sizes.
4. The method of Claim 3 wherein said first range of sizes is based upon a fill percentage of between 80 and 100 percent for a parcel formed of one of said groupings of records.
5. The method of Claim 1 further comprising:
ascertaining an aspect ratio of at least one trial rectangle formed by each of said trial divisions; and wherein said selecting step is based upon evaluating both said aspect ratio and said resultant sizes of groupings formed by each of said trial divisions.
6. The method of Claim 1 wherein said trial divisions are located at a position m/2n along a side of said rectangle where n is an integer between and including 1 and 5 and m is an integer between and including 1 and (2n-1).
7. The method of Claim 1 further comprising the step of:
forming one of said first and second groupings of records into a parcel upon evaluation of a size of said grouping not exceeding a predetermined desired maximum parcel size.
8. The method of Claim 1 further comprising;
upon determining that a size of one of said first and second groupings formed by said separating step exceeds a predetermined threshold, separating said one grouping into further first and second groupings by applying the same separating step to said one grouping that had been applied to said plurality of records.
9. The method of Claim 1 further comprising;
upon determining that a size of one of said first and second groupings formed by said separating step exceeds a predetermined threshold, continuing to apply said separating step to said one grouping and to all groupings formed therefrom until each of said groupings has a size that does not exceed a predetermined desired maximum parcel size.
10. The method of Claim 1 wherein said records represent segments of roads in geographic region.
11. The method of Claim 10 wherein said records are routing data records that include information about speed of travel and turn restrictions along each of said segments of roads.
12. The method of Claim 10 wherein said records are cartographic data records that are used to display shapes of said segments of roads on a computer display.
13. The method of Claim 1 further comprising the step of:
forming one of said first and second groupings of records into a parcel upon evaluation of a size of said grouping not exceeding a predetermined desired maximum parcel size, wherein said parcel size represents a minimum quantity of data that can be accessed by a navigation system in a single access operation.
14. The method of Claim 13 wherein said forming step further comprises the step of:
when forming said one of first and second groupings of records into a parcel, adding an amount of padding to said grouping of records so that said grouping and said padding together are equal to the predetermined desired maximum parcel size.
15. A method of manufacturing a geographic database for a geographic region for use by a navigation application program, wherein said geographic database is stored on a computer-readable medium and wherein said geographic database includes a plurality of records wherein each record corresponds to a physical feature having a physical location in the geographic region, the method comprising the steps of:

arranging said records of geographic data into a plurality of parcels according to a method that stores in each parcel records of geographic data that represent features having physical locations in proximity to each other and wherein the records stored in any one parcel represent features having locations encompassed within a corresponding rectangular area associated therewith and located in said geographic region;
wherein a size and location of each rectangular area associated with a parcel are determined by a series of divisions of a rectangular area encompassing all of said features represented by said plurality of records, wherein each division of said series of divisions subsequent to an initial division is made on a rectangular area formed from a division immediately preceding thereto; and wherein each division of a rectangular area into further rectangular areas is made at a location of said rectangular area based upon a comparison of quantities of data that represent features encompassed by each of said rectangular areas formed by said division to a plurality of ranges of acceptable sizes derived from a desired fill percentage of parcels with data.
16. A method of formatting geographic data for storage on a computer-readable storage medium, said geographic data relating to a geographic region and said geographic data being nonuniform in density over the geographic region, the method comprising the steps of:
dividing said geographic data into a first plurality of portions, wherein each one of said first plurality of portions includes geographic data that correspond to geographic positions encompassed within a rectangular area of the geographic region, and wherein a rectangular area encompassing geographic positions corresponding to any one of said plurality of portions is separate from rectangular areas encompassing the remaining of said plurality of portions;

with respect to each portion of said first plurality of portions that exceeds a predetermined multiple of a predetermined maximum parcel amount, forming smaller portions of said portion by repeating a regular separation process upon said portion, and the portions formed therefrom, until all resultant portions do not exceed the predetermined multiple of the maximum parcel amount;
wherein the regular separation process applied to a portion forms a pair of resultant portions, wherein each of said pair of resultant portions includes geographic data that correspond to geographic positions encompassed within a separate equal-sized rectangular area, wherein said separate equal-sized rectangular areas together correspond in size to a rectangular area encompassing the portion that had been divided to form the pair of resultant portions;
with respect to each portion of said first plurality of portions and each of the resultant portion that exceeds the maximum parcel amount but is not greater than a predetermined multiple of the maximum parcel amount, forming smaller portions of said portion by repeating a special separation process upon said portion, and the portions formed therefrom, until all resultant portions do not exceed the maximum parcel amount;
wherein the special separation process applied to a portion forms a pair of resultant portions, wherein each of said pair of resultant portions includes geographic data that correspond to geographic positions encompassed within a separate rectangular area, wherein said separate rectangular areas together correspond in size to a rectangular area encompassing the portion that had been divided to form the pair of resultant portions, and wherein one of said portions includes an amount within ranges defined between an integer multiple of a desired fill percentage times the maximum parcel amount and the integer multiple of the maximum parcel amount; and with respect to each portion of said first plurality of portions and said portions formed by said regular and special separation processes that is not greater than a maximum parcel amount, forming a parcel of said portion;
17. A method of storing geographic data in a computer-readable storage medium, said geographic data relating to a geographic region and said geographic data being nonuniform in density over the geographic region, the method comprising the steps of:
separating said geographic data into a first plurality of portions, wherein each of said first plurality of portions includes geographic data that corresponds to geographic positions encompassed within a separate rectangular tile, wherein a grid composed of a plurality of said separate rectangular tiles encompasses the geographic region;
with respect to each portion of said first plurality of portions that is not greater than a maximum parcel amount, forming a parcel of said portion, with respect to each portion of said first plurality of portions that exceeds a predetermined multiple of said maximum parcel amount, separating said portion to form a pair of resultant portions, wherein each of said pair of resultant portions includes geographic data that correspond to geographic positions encompassed within a separate equal sized rectangular tile, wherein said separate equal sized rectangular tiles together correspond in area to the rectangular tile encompassing the geographic data that had been divided to form the pair of resultant portions;
with respect to each resultant portion that exceeds said predetermined multiple of said maximum parcel amount, continuing to divide said resultant portion and portions resultant therefrom to form a pair of further resultant portions, wherein each of said pair of further resultant portions includes geographic data that correspond to geographic positions encompassed within a separate equal sized rectangular tile;
with respect to each portion of said first plurality of portions that exceeds said predetermined maximum parcel amount but does not exceed said predetermined multiple of said maximum parcel amount and each resultant portion that exceeds said predetermined maximum parcel amount but does not exceed said predetermined multiple of said maximum parcel amount, separating said portion to form a pair of resultant portions, wherein each of said pair of resultant portions includes geographic data that correspond to geographic positions encompassed within a separate rectangle, wherein said separate rectangles together correspond in area to the rectangular tile encompassing the geographic data that had been divided to form the pair of resultant portions, and wherein both said resultant rectangles have a first dimension equal to a first dimension of the tile from which said rectangles were formed;
wherein said one of said rectangle has a second dimension equal to M times 2-N times a second dimension of the tile from which said rectangles were formed, and wherein the other of said rectangles has a second dimension of (2N-M) times 2-N times the second dimension of the tile from which said rectangles were formed, wherein N is a positive integer greater than 1 and M is a positive integer less than 2N, and wherein M is chosen so that said first and said second portions can be divided into as few further rectangles as possible each of said further rectangles encompassing a quantity of data exceeding a minimum fill percentage of said maximum parcel amount.
18. A geographic database stored on a computer readable medium where said database is formatted by the process of Claim 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, or 17.
19. A method for organizing data for storage on a physical storage medium comprising:
forming a plurality of data files wherein each of said data files has data therein;
separating the data in each of said data files into a plurality of parcels;
concatenating the plurality of parcels formed from the plurality of data files into a concatenation;
assigning a parcel identification to each of said plurality of parcels wherein said parcel identification for a parcel is based on a position of said parcel within said concatentation; and storing said concatenation on a storage medium.
20. The method of Claim 19 wherein said step of forming a plurality of data files further comprises the step of:
forming a data file for route calculation.
21. The method of Claim 19 wherein said storage medium is a CD-ROM.
22. The method of Claim 19 wherein said storage medium is a PCMCIA
card.
23. The method of Claim 19 wherein said concatenation is a single data file.
24. The method of Claim 19 wherein said parcel identification includes an offset from a start of the concatenation.
25. The method of Claim 19 wherein said parcel identification includes an offset from a start of the concatenation and an indication of a size of the parcel identified thereby.
26. The method of Claim 19 wherein said data includes cross-references between individual records of said data, and wherein the method further comprises the step of:

after the step of assigning a parcel identification to each of said plurality of parcels, updating said cross-references to include said parcel identifications.
27. A physical storage medium for computer-readable data wherein said medium includes a plurality of similar-sized physical boundaries, comprising:
a plurality of parcels, each of said parcels including a plurality of data entities;
padding added to individual parcels of said plurality of parcels to cause said parcels to conform to said similar-sized physical boundaries; and wherein each parcel of said plurality of parcels includes a parcel identification, said parcel identification indicates an offset from a start of said plurality of similar-sized physical boundaries.
28. The invention of Claim 27 wherein said plurality of data entities includes cross reference data, and wherein said cross-reference data includes references to parcel identifications.
CA002219043A 1996-10-25 1997-10-24 Improved system and method for use and storage of geographical data on physical media Expired - Lifetime CA2219043C (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US08/740,295 US5968109A (en) 1996-10-25 1996-10-25 System and method for use and storage of geographic data on physical media
US08/740,295 1996-10-25

Publications (2)

Publication Number Publication Date
CA2219043A1 CA2219043A1 (en) 1998-04-25
CA2219043C true CA2219043C (en) 2003-02-18

Family

ID=24975891

Family Applications (1)

Application Number Title Priority Date Filing Date
CA002219043A Expired - Lifetime CA2219043C (en) 1996-10-25 1997-10-24 Improved system and method for use and storage of geographical data on physical media

Country Status (6)

Country Link
US (2) US5968109A (en)
EP (2) EP0838663B1 (en)
JP (2) JP4079489B2 (en)
AT (2) ATE329230T1 (en)
CA (1) CA2219043C (en)
DE (2) DE69736082T2 (en)

Families Citing this family (338)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8352400B2 (en) 1991-12-23 2013-01-08 Hoffberg Steven M Adaptive pattern recognition based controller apparatus and method and human-factored interface therefore
US10361802B1 (en) 1999-02-01 2019-07-23 Blanding Hovenweep, Llc Adaptive pattern recognition based control system and method
US7629899B2 (en) * 1997-10-22 2009-12-08 Intelligent Technologies International, Inc. Vehicular communication arrangement and method
US20040139049A1 (en) 1996-08-22 2004-07-15 Wgrs Licensing Company, Llc Unified geographic database and method of creating, maintaining and using the same
US6272457B1 (en) * 1996-09-16 2001-08-07 Datria Systems, Inc. Spatial asset management system that time-tags and combines captured speech data and captured location data using a predifed reference grammar with a semantic relationship structure
US6047280A (en) * 1996-10-25 2000-04-04 Navigation Technologies Corporation Interface layer for navigation system
US5978730A (en) * 1997-02-20 1999-11-02 Sony Corporation Caching for pathfinding computation
US6597818B2 (en) 1997-05-09 2003-07-22 Sarnoff Corporation Method and apparatus for performing geo-spatial registration of imagery
US6512857B1 (en) * 1997-05-09 2003-01-28 Sarnoff Corporation Method and apparatus for performing geo-spatial registration
US6047234A (en) * 1997-10-16 2000-04-04 Navigation Technologies Corporation System and method for updating, enhancing or refining a geographic database using feedback
US8209120B2 (en) * 1997-10-22 2012-06-26 American Vehicular Sciences Llc Vehicular map database management techniques
US10358057B2 (en) * 1997-10-22 2019-07-23 American Vehicular Sciences Llc In-vehicle signage techniques
US20080154629A1 (en) * 1997-10-22 2008-06-26 Intelligent Technologies International, Inc. Vehicle Speed Control Method and Arrangement
JP3546680B2 (en) * 1998-01-26 2004-07-28 トヨタ自動車株式会社 Navigation device
US7266560B2 (en) 1998-01-30 2007-09-04 Navteq North America, Llc Parcelized geographic data medium with internal spatial indices and method and system for use and formation thereof
JP3927304B2 (en) 1998-02-13 2007-06-06 トヨタ自動車株式会社 Map data access method for navigation
US6144338A (en) * 1998-03-17 2000-11-07 Prc Public Sector. Inc. Predictive drop and load algorithm for an object-based geographical information system
US6370523B1 (en) * 1998-03-27 2002-04-09 Bellsouth Intellectual Property Corporation System and methods for determining a desired listing using an intersection of coverage areas and a search region
US6073076A (en) * 1998-03-27 2000-06-06 Navigation Technologies Corporation Memory management for navigation system
US6081624A (en) * 1998-06-01 2000-06-27 Autodesk, Inc. Spatial index compression through spatial subdivision encoding
WO1999058934A1 (en) * 1998-05-08 1999-11-18 Mannesmann Vdo Ag Method for producing a storage medium with a map
US6167394A (en) * 1998-05-11 2000-12-26 General Electric Company Information management system with remote access and display features
US6732120B1 (en) * 1998-09-03 2004-05-04 Geojet Information Solutions Inc. System and method for processing and display of geographical data
US6393149B2 (en) * 1998-09-17 2002-05-21 Navigation Technologies Corp. Method and system for compressing data and a geographic database formed therewith and methods for use thereof in a navigation application program
US6438561B1 (en) 1998-11-19 2002-08-20 Navigation Technologies Corp. Method and system for using real-time traffic broadcasts with navigation systems
US6212474B1 (en) 1998-11-19 2001-04-03 Navigation Technologies Corporation System and method for providing route guidance with a navigation application program
US7904187B2 (en) 1999-02-01 2011-03-08 Hoffberg Steven M Internet appliance system and method
US8630795B2 (en) 1999-03-11 2014-01-14 American Vehicular Sciences Llc Vehicle speed control method and arrangement
JP4559555B2 (en) * 1999-03-16 2010-10-06 株式会社日立製作所 3D map display method and navigation apparatus
FR2793935B1 (en) * 1999-05-21 2001-08-17 Isweb METHOD FOR VIEWING GEOGRAPHICAL SITES
US6460046B1 (en) * 1999-06-01 2002-10-01 Navigation Technologies Corp. Method and system for forming, storing and using sets of data values
DK1198792T3 (en) * 1999-06-24 2005-09-19 Telia Ab Map Service
JP2001012957A (en) * 1999-06-29 2001-01-19 Mitsubishi Electric Corp Map updating system for car navigator and car navigation terminal
US6587601B1 (en) 1999-06-29 2003-07-01 Sarnoff Corporation Method and apparatus for performing geo-spatial registration using a Euclidean representation
US6278935B1 (en) * 1999-07-23 2001-08-21 Navigation Technologies Corp. Method and system for providing instructions about tollways with a navigation system
US6681231B1 (en) 1999-07-26 2004-01-20 The Real Estate Cable Network, Inc. Integrated information processing system for geospatial media
US7107286B2 (en) * 1999-07-26 2006-09-12 Geoqwest International Inc. Integrated information processing system for geospatial media
JP3944671B2 (en) * 1999-08-06 2007-07-11 アイシン・エィ・ダブリュ株式会社 Navigation device
US6665784B2 (en) * 1999-09-03 2003-12-16 Roxio, Inc. Method for writing and reading data to and from a compact disc media
DE19944938A1 (en) * 1999-09-20 2001-03-22 Mannesmann Vdo Ag Navigation system has expanded display function whereby traffic restriction information applying to determined vehicle position and held in memory element is displayed
US7120638B1 (en) * 1999-09-21 2006-10-10 International Business Machines Corporation Method, system, program, and data structure for cleaning a database table
US6700574B1 (en) * 1999-10-29 2004-03-02 Siemens Transportation Systems, Inc. Spatial data object indexing engine
JP3494143B2 (en) * 1999-11-18 2004-02-03 トヨタ自動車株式会社 Route guidance information providing system and route guidance information providing method
JP3621317B2 (en) * 1999-11-30 2005-02-16 三菱電機株式会社 In-vehicle information processing equipment
JP2001159525A (en) * 1999-11-30 2001-06-12 Mitsubishi Electric Corp Navigation device and recording medium
US6826472B1 (en) * 1999-12-10 2004-11-30 Tele Atlas North America, Inc. Method and apparatus to generate driving guides
US6415226B1 (en) * 1999-12-20 2002-07-02 Navigation Technologies Corp. Method and system for providing safe routes using a navigation system
DE19963766A1 (en) * 1999-12-30 2001-07-05 Bosch Gmbh Robert Method for operating a navigation system
DE19963765A1 (en) * 1999-12-30 2001-07-05 Bosch Gmbh Robert Method for operating a navigation system
JP2001236717A (en) * 2000-02-18 2001-08-31 Pioneer Electronic Corp Information recording and reproducing device
US7050904B2 (en) * 2000-02-22 2006-05-23 Pointserve, Inc. Data formats and usage for massive point-to-point route calculation
US6324470B1 (en) 2000-03-07 2001-11-27 Navigation Technologies Corporation Method and system for representing restricted driving maneuvers
US6587787B1 (en) * 2000-03-15 2003-07-01 Alpine Electronics, Inc. Vehicle navigation system apparatus and method providing enhanced information regarding geographic entities
US6601073B1 (en) * 2000-03-22 2003-07-29 Navigation Technologies Corp. Deductive database architecture for geographic data
US7743074B1 (en) * 2000-04-05 2010-06-22 Microsoft Corporation Context aware systems and methods utilizing hierarchical tree structures
WO2001088742A1 (en) * 2000-05-12 2001-11-22 Braun Huon Starr Interactive system for processing and retrieving data relating to a particular destination via a communication device
US7043363B2 (en) * 2002-10-10 2006-05-09 Sirf Technology, Inc. Host based satellite positioning systems
US6829690B1 (en) * 2000-05-23 2004-12-07 Navteq North America, Llc Method and system for accessing spatially organized geographic data in blocks
US6381537B1 (en) 2000-06-02 2002-04-30 Navigation Technologies Corp. Method and system for obtaining geographic data using navigation systems
US8489669B2 (en) 2000-06-07 2013-07-16 Apple Inc. Mobile data processing system moving interest radius
US8060389B2 (en) 2000-06-07 2011-11-15 Apple Inc. System and method for anonymous location based services
US6456234B1 (en) 2000-06-07 2002-09-24 William J. Johnson System and method for proactive content delivery by situation location
US20010051973A1 (en) * 2000-06-08 2001-12-13 Poi Systems, Inc. System, method and computer program product for a locator service
WO2001098925A2 (en) * 2000-06-20 2001-12-27 Globexplorer, Inc. Method, system and computer program product for delivering spatially referenced information in a global computer network
DE10033193A1 (en) * 2000-07-07 2002-01-17 Bosch Gmbh Robert Method and arrangement for coding, decoding and / or for transmitting location information
US6977630B1 (en) * 2000-07-18 2005-12-20 University Of Minnesota Mobility assist device
US7375728B2 (en) * 2001-10-01 2008-05-20 University Of Minnesota Virtual mirror
US20050149251A1 (en) * 2000-07-18 2005-07-07 University Of Minnesota Real time high accuracy geospatial database for onboard intelligent vehicle applications
US6591270B1 (en) 2000-07-28 2003-07-08 Navigation Technologies Corporation Method for organizing map data
US6983203B1 (en) * 2000-07-28 2006-01-03 Alpine Electronics, Inc. POI icon display method and navigation system
WO2002016874A1 (en) * 2000-08-24 2002-02-28 Siemens Aktiengesellschaft Method for obtaining a card representation and navigation device
US6587781B2 (en) 2000-08-28 2003-07-01 Estimotion, Inc. Method and system for modeling and processing vehicular traffic data and information and applying thereof
US6741993B1 (en) * 2000-08-29 2004-05-25 Towers Perrin Forster & Crosby, Inc. Competitive rewards benchmarking system and method
US6912462B2 (en) * 2000-08-31 2005-06-28 Sony Corporation Information processing apparatus, information processing method and program storage media
US6703947B1 (en) 2000-09-22 2004-03-09 Tierravision, Inc. Method for organizing and compressing spatial data
US6895126B2 (en) 2000-10-06 2005-05-17 Enrico Di Bernardo System and method for creating, storing, and utilizing composite images of a geographic location
US7890989B1 (en) * 2000-10-24 2011-02-15 Sony Corporation Automated context-sensitive updating on content in an audiovisual storage system
US6397143B1 (en) * 2000-10-26 2002-05-28 George Peschke Layout based method for map navigation
US7987186B1 (en) * 2000-11-06 2011-07-26 Navteq North America, Llc Method and system for wavelet-based representation and use of cartographic data
US7689621B1 (en) * 2000-11-06 2010-03-30 Navteq North America, Llc Multi-dimensional spatial index for a geographic database
DE10061646A1 (en) * 2000-12-11 2002-06-27 Nokia Mobile Phones Ltd Navigation system, as well as bestend parts and method for such a navigation system
WO2002052227A1 (en) * 2000-12-22 2002-07-04 Geofactory Technologies, S.A. System for displaying digital maps on the internet
US7493565B2 (en) * 2000-12-22 2009-02-17 Microsoft Corporation Environment-interactive context-aware devices and methods
US8924506B2 (en) 2000-12-27 2014-12-30 Bradium Technologies Llc Optimized image delivery over limited bandwidth communication channels
US6385533B1 (en) * 2001-01-03 2002-05-07 Navigation Technologies Corp. Method and system using dynamic profiling in a mobile environment for collecting data for a geographic database
US6781599B2 (en) * 2001-01-04 2004-08-24 At&T System and method for visualizing massive multi-digraphs
US6526354B2 (en) * 2001-02-01 2003-02-25 Schlumberger Technology Corporation Sonic well logging for alteration detection
US7283987B2 (en) 2001-03-05 2007-10-16 Sap Ag Compression scheme for improving cache behavior in database systems
EP1241447A1 (en) * 2001-03-13 2002-09-18 Matsushita Electric Industrial Co., Ltd. Information terminal and cartographic information providing system
US6427119B1 (en) * 2001-04-16 2002-07-30 General Motors Corporation Method and system for providing multiple entry points to a vehicle navigation route
US6691128B2 (en) 2001-04-19 2004-02-10 Navigation Technologies Corp. Navigation system with distributed computing architecture
US6725156B2 (en) 2001-05-10 2004-04-20 Navigation Technologies Corp. Method and system for providing backup driving instructions with a navigation system
US7219108B2 (en) * 2001-06-22 2007-05-15 Oracle International Corporation Query prunning using exterior tiles in an R-tree index
US7080065B1 (en) * 2001-06-22 2006-07-18 Oracle International Corporation Query pruning using interior rectangles in an R-tree index
DK1402457T3 (en) * 2001-06-22 2011-05-02 Caliper Corp Traffic data management and simulation system
US20030009371A1 (en) * 2001-07-03 2003-01-09 Ravi Gauba Interactive decision-making scenarios in an audio/video broadcast
US7552008B2 (en) * 2001-07-18 2009-06-23 Regents Of The University Of Minnesota Populating geospatial database for onboard intelligent vehicle applications
US20030028871A1 (en) * 2001-07-20 2003-02-06 Annie Wang Behavior profile system and method
US20030025720A1 (en) * 2001-08-03 2003-02-06 Clement Lau System and method for common interest analysis among multiple users
US6912549B2 (en) * 2001-09-05 2005-06-28 Siemens Medical Solutions Health Services Corporation System for processing and consolidating records
US7752266B2 (en) 2001-10-11 2010-07-06 Ebay Inc. System and method to facilitate translation of communications between entities over a network
US8392457B1 (en) 2001-10-12 2013-03-05 Navteq B.V. System and method for forming a map database with no-outlet and circular segments
US6609063B1 (en) * 2001-10-12 2003-08-19 Navigation Technologies Corp. System and method for using a map database with attributed no-outlet and circular segments
US20030074447A1 (en) * 2001-10-16 2003-04-17 Rafey Richter A. Intuitive mapping between explicit and implicit personalization
US20030115211A1 (en) * 2001-12-14 2003-06-19 Metaedge Corporation Spatial intelligence system and method
US6424912B1 (en) * 2001-11-09 2002-07-23 General Motors Corporation Method for providing vehicle navigation instructions
US7374096B2 (en) 2001-11-21 2008-05-20 Goliath Solutions, Llc Advertising compliance monitoring system
US6837427B2 (en) * 2001-11-21 2005-01-04 Goliath Solutions, Llc. Advertising compliance monitoring system
US6951305B2 (en) * 2001-11-21 2005-10-04 Goliath Solutions, Llc. Advertising compliance monitoring system
US20030112276A1 (en) * 2001-12-19 2003-06-19 Clement Lau User augmentation of content
US6581003B1 (en) * 2001-12-20 2003-06-17 Garmin Ltd. Systems and methods for a navigational device with forced layer switching based on memory constraints
US6545637B1 (en) 2001-12-20 2003-04-08 Garmin, Ltd. Systems and methods for a navigational device with improved route calculation capabilities
US6975940B1 (en) 2001-12-21 2005-12-13 Garmin Ltd. Systems, functional data, and methods for generating a route
US6892135B1 (en) 2001-12-21 2005-05-10 Garmin Ltd. Navigation system, method and device with automatic next turn page
US7277794B1 (en) 2001-12-21 2007-10-02 Garmin Ltd. Guidance with feature accounting for insignificant roads
US7246102B2 (en) * 2001-12-21 2007-07-17 Agere Systems Inc. Method of improving the lookup performance of three-type knowledge base searches
US6847890B1 (en) 2001-12-21 2005-01-25 Garmin Ltd. Guidance with feature accounting for insignificant roads
US6909965B1 (en) * 2001-12-28 2005-06-21 Garmin Ltd. System and method for creating and organizing node records for a cartographic data map
US20030135480A1 (en) * 2002-01-14 2003-07-17 Van Arsdale Robert S. System for updating a database
US7092957B2 (en) * 2002-01-18 2006-08-15 Boundary Solutions Incorporated Computerized national online parcel-level map data portal
SE524109C2 (en) * 2002-01-21 2004-06-29 Idevio Ab Device and carrier for providing map information data
US6985903B2 (en) 2002-01-25 2006-01-10 Qualcomm, Incorporated Method and system for storage and fast retrieval of digital terrain model elevations for use in positioning systems
US6622086B2 (en) 2002-02-11 2003-09-16 Horizon Navigation, Inc. Method of representing a location in a database for a vehicle navigation system
US20030158668A1 (en) * 2002-02-15 2003-08-21 Anderson James J. System and method of geospatially mapping topological regions and displaying their attributes
JP4004818B2 (en) * 2002-02-28 2007-11-07 松下電器産業株式会社 Position information transmission apparatus and method
US7209051B2 (en) * 2002-03-05 2007-04-24 University Of Minnesota Intersection assistance system and method
US6915310B2 (en) * 2002-03-28 2005-07-05 Harris Corporation Three-dimensional volumetric geo-spatial querying
US6937936B2 (en) * 2002-04-25 2005-08-30 Aisin Aw Co., Ltd. Navigation system
US7373353B2 (en) 2002-05-10 2008-05-13 International Business Machines Corporation Reducing index size for multi-level grid indexes
US7383275B2 (en) 2002-05-10 2008-06-03 International Business Machines Corporation Methods to improve indexing of multidimensional databases
US7143098B2 (en) * 2002-05-10 2006-11-28 International Business Machines Corporation Systems, methods, and computer program products to reduce computer processing in grid cell size determination for indexing of multidimensional databases
JP4400775B2 (en) 2002-05-28 2010-01-20 パイオニア株式会社 Navigation device, facility search method, program, and recording medium for recording program
US6704648B1 (en) 2002-05-29 2004-03-09 Navigation Technologies Corp. Bearing data for route guidance
JP2004020219A (en) * 2002-06-12 2004-01-22 Denso Corp Area specifying method, area specifying device, map display method, map display device, and route guide device
US20090015595A1 (en) * 2002-06-27 2009-01-15 Tele Atlas North America, Inc. System and method for converting digital map information using displayable map information as an intermediary
US20090015596A1 (en) * 2002-06-27 2009-01-15 Tele Atlas North America, Inc. System and method for viewing and editing digital maps using a plug-in data abstraction layer for different digital map formats
US7082443B1 (en) * 2002-07-23 2006-07-25 Navteq North America, Llc Method and system for updating geographic databases
EP1548686B1 (en) * 2002-07-30 2012-09-05 Xanavi Informatics Corporation Map data product and map data processor
AU2003263989A1 (en) * 2002-08-05 2004-02-23 Metaedge Corporation Spatial intelligence system and method
US6847888B2 (en) * 2002-08-07 2005-01-25 Hrl Laboratories, Llc Method and apparatus for geographic shape preservation for identification
AU2003259357B2 (en) * 2002-08-29 2009-08-13 Inrix Uk Limited Apparatus and method for providing traffic information
GB0220062D0 (en) * 2002-08-29 2002-10-09 Itis Holdings Plc Traffic scheduling system
US6782319B1 (en) * 2002-11-26 2004-08-24 Navteq North America, Llc Method for organizing map data
JP2004198841A (en) * 2002-12-19 2004-07-15 Pioneer Electronic Corp Navigation apparatus, navigation method and computer program
US7305396B2 (en) * 2002-12-31 2007-12-04 Robert Bosch Gmbh Hierarchical system and method for on-demand loading of data in a navigation system
US20040125114A1 (en) * 2002-12-31 2004-07-01 Hauke Schmidt Multiresolution image synthesis for navigation
US6993538B2 (en) * 2003-01-28 2006-01-31 Microsoft Corporation System and process for identifying objects and/or points nearby a given object or point
US7099882B2 (en) * 2003-04-29 2006-08-29 Navteq North America, Llc Method and system for forming, updating, and using a geographic database
US7966301B2 (en) 2003-05-09 2011-06-21 Planeteye Company Ulc System and method for employing a grid index for location and precision encoding
US9286795B2 (en) * 2003-05-09 2016-03-15 Dimitri Vorona System for transmitting, processing, receiving, and displaying traffic information
US7475060B2 (en) * 2003-05-09 2009-01-06 Planeteye Company Ulc Browsing user interface for a geo-coded media database
US8825356B2 (en) * 2003-05-09 2014-09-02 Dimitri Vorona System for transmitting, processing, receiving, and displaying traffic information
JP2004362065A (en) * 2003-06-02 2004-12-24 Denso Corp Map information retrieval system, method and program
US7239989B2 (en) * 2003-07-18 2007-07-03 Oracle International Corporation Within-distance query pruning in an R-tree index
US7388519B1 (en) 2003-07-22 2008-06-17 Kreft Keith A Displaying points of interest with qualitative information
CA2436312C (en) * 2003-08-01 2011-04-05 Perry Peterson Close-packed, uniformly adjacent, multiresolutional, overlapping spatial data ordering
DE10335602A1 (en) * 2003-08-04 2005-03-03 Robert Bosch Gmbh Method for updating map data present in a navigable data format
DE10349263A1 (en) * 2003-10-20 2005-06-02 Siemens Ag Method of cutting a road network of edges and nodes
US7031836B2 (en) * 2003-10-28 2006-04-18 Thales Navigation, Inc. Grid mapping utility for a GPS device
US7096117B1 (en) 2004-01-20 2006-08-22 Navteq North America, Llc Method and system of polyline generation for rendering a richly attributed representation of a geographic region
JP2005215729A (en) * 2004-01-27 2005-08-11 Hitachi Global Storage Technologies Netherlands Bv Data transmission control method and storage device
US7668845B1 (en) * 2004-02-18 2010-02-23 Microsoft Corporation C-tree for multi-attribute indexing
TWI344610B (en) * 2004-03-09 2011-07-01 Mitac Int Corp A method for auto-perform navigation software
US7539666B2 (en) * 2004-04-06 2009-05-26 International Business Machines Corporation Method, system and program for managing geographic data stored in a database
US7373244B2 (en) * 2004-04-20 2008-05-13 Keith Kreft Information mapping approaches
US7743064B2 (en) 2004-04-29 2010-06-22 Harris Corporation Media asset management system for managing video segments from fixed-area security cameras and associated methods
JP4795230B2 (en) * 2004-05-10 2011-10-19 パイオニア株式会社 Display control apparatus, display method, display control program, and information recording medium
JP2006010765A (en) * 2004-06-22 2006-01-12 Mitsubishi Electric Corp Map data distribution system
GB0415072D0 (en) * 2004-07-05 2004-08-04 Whereonearth Ltd Geographical location indexing
US7620402B2 (en) 2004-07-09 2009-11-17 Itis Uk Limited System and method for geographically locating a mobile device
US7672778B1 (en) 2004-07-20 2010-03-02 Navteq North America, Llc Navigation system with downloaded map data
US20060033737A1 (en) * 2004-08-16 2006-02-16 Old William M Methods and system for visualizing data sets
US20060058951A1 (en) * 2004-09-07 2006-03-16 Cooper Clive W System and method of wireless downloads of map and geographic based data to portable computing devices
US20060058952A1 (en) * 2004-09-07 2006-03-16 Cooper Clive W System and method of wireless downloads of map and geographic based data to portable computing devices
US20060080032A1 (en) * 2004-09-07 2006-04-13 Cooper Clive W System and method of wireless downloads of map and geographic based data to portable computing devices
US20060080031A1 (en) * 2004-09-07 2006-04-13 Cooper Clive W System and method of wireless downloads of map and geographic based data to portable computing devices
US20060058953A1 (en) 2004-09-07 2006-03-16 Cooper Clive W System and method of wireless downloads of map and geographic based data to portable computing devices
US7606687B2 (en) * 2004-09-14 2009-10-20 Friendster, Inc. Proximity search methods using tiles to represent geographical zones
WO2008043172A1 (en) * 2006-10-13 2008-04-17 Peter Bandas Location-based information retrieval
US20080091691A1 (en) * 2004-10-28 2008-04-17 Kukui, University Of Datebase Device, Database Management Method, Data Structure Of Database, Database Management Program, And Computer-Readable Storage Medium Storing Same Program
US7389283B2 (en) * 2004-12-07 2008-06-17 International Business Machines Corporation Method for determining an optimal grid index specification for multidimensional data
US20060129919A1 (en) * 2004-12-15 2006-06-15 Kevin Edmundson Disparate GIS file format management system and method
US20060235856A1 (en) * 2004-12-16 2006-10-19 Halcrow Michael A Route generation for task completion by a location-aware device
KR100712966B1 (en) * 2004-12-27 2007-05-02 주식회사 엔지스테크널러지 Navigation service method and terminal of enabling the method
DE102005042694A1 (en) * 2004-12-30 2006-07-20 Volkswagen Ag Navigation system for e.g. land vehicle, has man-machine interface for inputting geographical figure and keyword characterizing point of interest, and search module searching point of interest in geographical area defined by figure
US7801897B2 (en) * 2004-12-30 2010-09-21 Google Inc. Indexing documents according to geographical relevance
US7894980B2 (en) * 2005-02-07 2011-02-22 International Business Machines Corporation Method and apparatus for estimating real-time travel times over a transportation network based on limited real-time data
JP4613075B2 (en) * 2005-02-16 2011-01-12 クラリオン株式会社 Map processing device, navigation device, and map display method
US7805317B2 (en) 2005-03-03 2010-09-28 Navteq North America, Llc Method of organizing map data for affinity relationships and application for use thereof
US7664597B2 (en) * 2005-03-31 2010-02-16 Alpine Electronics, Inc. Address input method and apparatus for navigation system
US7353034B2 (en) 2005-04-04 2008-04-01 X One, Inc. Location sharing and tracking using mobile phones or other wireless devices
US7991779B1 (en) * 2005-04-25 2011-08-02 Hewlett Packard Development Company, L.P. Method and apparatus for populating an index table
DE102005020154A1 (en) * 2005-04-29 2006-11-02 Volkswagen Ag Map display control method, used in navigation system, involves displaying section of geographical road map, dividing displayed map section into different areas, and displaying assigned road classes in divided areas of displayed map section
CA2609916A1 (en) * 2005-05-31 2006-12-07 Siemens Medical Solutions Usa, Inc. System and method for data sensitive filtering of patient demographic record queries
US20070016556A1 (en) * 2005-07-13 2007-01-18 Ann Seong W Destination searching system and method
KR100782822B1 (en) * 2005-10-18 2007-12-06 삼성전자주식회사 Location information providing method and apparatus therefore, and Location information processing method and apparatus therefore
ATE527518T1 (en) * 2005-11-09 2011-10-15 Harman Becker Automotive Sys DETERMINING AN OPTIMAL ROUTE USING MAP TILES
US20070218900A1 (en) 2006-03-17 2007-09-20 Raj Vasant Abhyanker Map based neighborhood search and community contribution
US8874489B2 (en) 2006-03-17 2014-10-28 Fatdoor, Inc. Short-term residential spaces in a geo-spatial environment
US9459622B2 (en) 2007-01-12 2016-10-04 Legalforce, Inc. Driverless vehicle commerce network and community
US7542846B2 (en) * 2006-02-07 2009-06-02 Alpine Electronics, Inc. Navigation system utilizing XML/SVG map data converted from geographic map data and layered structure of XML/SVG map data based on administrative regions
JP4878178B2 (en) * 2006-02-28 2012-02-15 株式会社日立製作所 Data processing method and apparatus, and processing program therefor
US7925320B2 (en) 2006-03-06 2011-04-12 Garmin Switzerland Gmbh Electronic device mount
US8965409B2 (en) 2006-03-17 2015-02-24 Fatdoor, Inc. User-generated community publication in an online neighborhood social network
US8732091B1 (en) 2006-03-17 2014-05-20 Raj Abhyanker Security in a geo-spatial environment
US9071367B2 (en) 2006-03-17 2015-06-30 Fatdoor, Inc. Emergency including crime broadcast in a neighborhood social network
US9070101B2 (en) 2007-01-12 2015-06-30 Fatdoor, Inc. Peer-to-peer neighborhood delivery multi-copter and method
US8738545B2 (en) 2006-11-22 2014-05-27 Raj Abhyanker Map based neighborhood search and community contribution
US9037516B2 (en) 2006-03-17 2015-05-19 Fatdoor, Inc. Direct mailing in a geo-spatial environment
US9064288B2 (en) 2006-03-17 2015-06-23 Fatdoor, Inc. Government structures and neighborhood leads in a geo-spatial environment
US9002754B2 (en) 2006-03-17 2015-04-07 Fatdoor, Inc. Campaign in a geo-spatial environment
US9098545B2 (en) 2007-07-10 2015-08-04 Raj Abhyanker Hot news neighborhood banter in a geo-spatial social network
US9373149B2 (en) 2006-03-17 2016-06-21 Fatdoor, Inc. Autonomous neighborhood vehicle commerce network and community
US7415448B2 (en) * 2006-03-20 2008-08-19 Microsoft Corporation Adaptive engine for processing geographic data
US20070236508A1 (en) * 2006-03-28 2007-10-11 Microsoft Corporation Management of gridded map data regions
US20070229538A1 (en) * 2006-03-31 2007-10-04 Research In Motion Limited Methods and apparatus for dynamically labeling map objects in visually displayed maps of mobile communication devices
KR100775769B1 (en) * 2006-06-27 2007-11-12 포인트아이 주식회사 Method and system for providing location-based alert service in wireless communication environment
CA2654858A1 (en) * 2006-06-30 2008-01-10 Tele Atlas North America, Inc. Nearest search on adaptive index with variable compression
US7774133B2 (en) * 2006-07-05 2010-08-10 Sap Ag Method and apparatus for trip routing with configurable constraints
US7310070B1 (en) 2006-08-23 2007-12-18 Goliath Solutions, Llc Radio frequency identification shelf antenna with a distributed pattern for localized tag detection
US8639782B2 (en) 2006-08-23 2014-01-28 Ebay, Inc. Method and system for sharing metadata between interfaces
WO2008044281A1 (en) * 2006-10-10 2008-04-17 Pioneer Corporation Route searching device, route searching method, route searching program and recording medium
ITRM20060552A1 (en) * 2006-10-13 2008-04-14 Andrea Carandini PROCEDURE AND IT PRODUCT TO GENERATE A CONSULTABLE ARCHAEOLOGICAL MAP VIA NAVIGATION
US8655595B1 (en) 2006-10-17 2014-02-18 Corelogic Solutions, Llc Systems and methods for quantifying flood risk
US7917292B1 (en) 2006-10-17 2011-03-29 Jpmorgan Chase Bank, N.A. Systems and methods for flood risk assessment
US8863245B1 (en) 2006-10-19 2014-10-14 Fatdoor, Inc. Nextdoor neighborhood social network method, apparatus, and system
US8065080B2 (en) 2006-10-31 2011-11-22 At&T Intellectual Property I, Lp Location stamping and logging of electronic events and habitat generation
US8649567B1 (en) 2006-11-17 2014-02-11 Corelogic Solutions, Llc Displaying a flood change map with change designators
US8542884B1 (en) 2006-11-17 2013-09-24 Corelogic Solutions, Llc Systems and methods for flood area change detection
US8077927B1 (en) 2006-11-17 2011-12-13 Corelogic Real Estate Solutions, Llc Updating a database with determined change identifiers
US7890509B1 (en) 2006-12-05 2011-02-15 First American Real Estate Solutions Llc Parcel data acquisition and processing
DE102006057286A1 (en) * 2006-12-05 2008-06-12 Robert Bosch Gmbh navigation device
US20080235688A1 (en) * 2007-03-21 2008-09-25 Sapias, Inc. Enhanced Distance Calculation for Job Route Optimization
US20080281854A1 (en) * 2007-05-07 2008-11-13 Fatdoor, Inc. Opt-out community network based on preseeded data
US9292807B2 (en) * 2007-05-10 2016-03-22 Microsoft Technology Licensing, Llc Recommending actions based on context
US8290513B2 (en) 2007-06-28 2012-10-16 Apple Inc. Location-based services
US8204684B2 (en) 2007-06-28 2012-06-19 Apple Inc. Adaptive mobile device navigation
US8385946B2 (en) 2007-06-28 2013-02-26 Apple Inc. Disfavored route progressions or locations
US9109904B2 (en) 2007-06-28 2015-08-18 Apple Inc. Integration of map services and user applications in a mobile device
US8311526B2 (en) 2007-06-28 2012-11-13 Apple Inc. Location-based categorical information services
US8108144B2 (en) 2007-06-28 2012-01-31 Apple Inc. Location based tracking
US8275352B2 (en) 2007-06-28 2012-09-25 Apple Inc. Location-based emergency information
US8774825B2 (en) 2007-06-28 2014-07-08 Apple Inc. Integration of map services with user applications in a mobile device
US8762056B2 (en) 2007-06-28 2014-06-24 Apple Inc. Route reference
US8175802B2 (en) 2007-06-28 2012-05-08 Apple Inc. Adaptive route guidance based on preferences
US8332402B2 (en) 2007-06-28 2012-12-11 Apple Inc. Location based media items
US9066199B2 (en) 2007-06-28 2015-06-23 Apple Inc. Location-aware mobile device
US8554475B2 (en) 2007-10-01 2013-10-08 Mitac International Corporation Static and dynamic contours
US8977294B2 (en) 2007-10-10 2015-03-10 Apple Inc. Securely locating a device
US7996454B2 (en) * 2007-11-16 2011-08-09 Vns Portfolio Llc Method and apparatus for performing complex calculations in a multiprocessor array
CN101874261B (en) * 2007-11-27 2012-07-25 三菱电机株式会社 Map information processor
US8355862B2 (en) 2008-01-06 2013-01-15 Apple Inc. Graphical user interface for presenting location information
US8401780B2 (en) * 2008-01-17 2013-03-19 Navteq B.V. Method of prioritizing similar names of locations for use by a navigation system
US8490025B2 (en) * 2008-02-01 2013-07-16 Gabriel Jakobson Displaying content associated with electronic mapping systems
US8504945B2 (en) * 2008-02-01 2013-08-06 Gabriel Jakobson Method and system for associating content with map zoom function
TWI361404B (en) 2008-02-18 2012-04-01 Ind Tech Res Inst Storage and search method for flag event on two-dimensional space
US9250092B2 (en) 2008-05-12 2016-02-02 Apple Inc. Map service with network-based query for search
US8644843B2 (en) 2008-05-16 2014-02-04 Apple Inc. Location determination
EP2159777A3 (en) 2008-05-30 2016-05-04 HERE Global B.V. Data mining to identify locations of potentially hazardous conditions for vehicle operation and use thereof
WO2009153862A1 (en) * 2008-06-17 2009-12-23 パイオニア株式会社 Data creation unit, information processing unit, data creation method, information processing method, data creation program, information processing program, and recording medium
US8369867B2 (en) 2008-06-30 2013-02-05 Apple Inc. Location sharing
WO2010004612A1 (en) * 2008-07-07 2010-01-14 パイオニア株式会社 Information processing apparatus, information generating apparatus, information processing method, information generation method, information processing program, information generating program, and recording medium
US8595638B2 (en) * 2008-08-28 2013-11-26 Nokia Corporation User interface, device and method for displaying special locations on a map
US8359643B2 (en) 2008-09-18 2013-01-22 Apple Inc. Group formation using anonymous broadcast information
US20100082564A1 (en) * 2008-10-01 2010-04-01 Navteq North America, Llc Spatial Index for Locating Geographic Data Parcels Stored on Physical Storage Media
US9336695B2 (en) * 2008-10-13 2016-05-10 Yahoo! Inc. Method and system for providing customized regional maps
US8260320B2 (en) 2008-11-13 2012-09-04 Apple Inc. Location specific content
GB0822893D0 (en) * 2008-12-16 2009-01-21 Tele Atlas Bv Advanced speed profiles - Further updates
US8402058B2 (en) 2009-01-13 2013-03-19 Ensoco, Inc. Method and computer program product for geophysical and geologic data identification, geodetic classification, organization, updating, and extracting spatially referenced data records
GB0901588D0 (en) 2009-02-02 2009-03-11 Itis Holdings Plc Apparatus and methods for providing journey information
US8660530B2 (en) 2009-05-01 2014-02-25 Apple Inc. Remotely receiving and communicating commands to a mobile device for execution by the mobile device
US8666367B2 (en) 2009-05-01 2014-03-04 Apple Inc. Remotely locating and commanding a mobile device
US8670748B2 (en) 2009-05-01 2014-03-11 Apple Inc. Remotely locating and commanding a mobile device
US8255418B2 (en) * 2009-05-05 2012-08-28 Real Estate Portal Usa, Llc Networked computer system providing an integrated suite of web services and a geographic information system (GIS) for real property and land parcels
US20100321399A1 (en) * 2009-06-18 2010-12-23 Patrik Ellren Maps from Sparse Geospatial Data Tiles
US8725407B2 (en) * 2009-11-09 2014-05-13 United Parcel Service Of America, Inc. Enhanced location information for points of interest
US20110153266A1 (en) * 2009-12-23 2011-06-23 Regents Of The University Of Minnesota Augmented vehicle location system
US8301364B2 (en) * 2010-01-27 2012-10-30 Navteq B.V. Method of operating a navigation system to provide geographic location information
JP5295427B2 (en) * 2010-04-16 2013-09-18 三菱電機株式会社 Navigation device
JPWO2011128948A1 (en) * 2010-04-16 2013-07-11 三菱電機株式会社 Navigation device
CN102859497B (en) * 2010-04-16 2015-05-06 三菱电机株式会社 Data access method and data access device
US9355109B2 (en) * 2010-06-11 2016-05-31 The Research Foundation For The State University Of New York Multi-tier caching
DE102010017478A1 (en) * 2010-06-21 2011-12-22 Krauss-Maffei Wegmann Gmbh & Co. Kg Method for extracting data from a view database for constructing a simulation database
DE102010063330A1 (en) * 2010-12-17 2012-06-21 Bayerische Motoren Werke Aktiengesellschaft Method and device for compressing route data
US8751449B2 (en) 2011-04-04 2014-06-10 Symantec Corporation Managing performance within an enterprise object store file system
GB2492369B (en) 2011-06-29 2014-04-02 Itis Holdings Plc Method and system for collecting traffic data
US8825392B2 (en) 2011-06-30 2014-09-02 Navteq B.V. Map view
US8718922B2 (en) 2011-07-28 2014-05-06 Navteq B.V. Variable density depthmap
RU2459242C1 (en) * 2011-08-09 2012-08-20 Олег Александрович Серебренников Method of generating and using recursive index of search engines
US9002114B2 (en) 2011-12-08 2015-04-07 The Nielsen Company (Us), Llc Methods, apparatus, and articles of manufacture to measure geographical features using an image of a geographical location
EP2607851B1 (en) * 2011-12-20 2016-08-24 TechniSat Digital GmbH Method for operating a navigation device with speed data that can be updated separately
JP5863494B2 (en) * 2012-02-13 2016-02-16 キヤノン株式会社 Information processing apparatus, control method therefor, and program
US9378509B2 (en) 2012-05-09 2016-06-28 The Nielsen Company (Us), Llc Methods, apparatus, and articles of manufacture to measure geographical features using an image of a geographical location
GB201219742D0 (en) * 2012-11-02 2012-12-12 Tom Tom Int Bv Methods and systems for generating a horizon for use in an advanced driver assistance system (adas)
US9311748B2 (en) 2013-02-20 2016-04-12 Google Inc. Method and system for generating and storing data objects for multi-resolution geometry in a three dimensional model
US9082014B2 (en) 2013-03-14 2015-07-14 The Nielsen Company (Us), Llc Methods and apparatus to estimate demography based on aerial images
BR112015023617B1 (en) * 2013-03-15 2022-05-31 Twitter, Inc Method and system for generating a geocode trie and facilitating reverse geocode searches
KR20150128712A (en) 2013-03-15 2015-11-18 칼리퍼 코포레이션 Lane-level vehicle navigation for vehicle routing and traffic management
US9922062B2 (en) * 2013-07-16 2018-03-20 Clearag, Inc. High-performance gridded data storage, arrangement and extraction
US9558658B2 (en) 2013-09-27 2017-01-31 Here Global B.V. Method for transforming probe data across transportation modes
US9439367B2 (en) 2014-02-07 2016-09-13 Arthi Abhyanker Network enabled gardening with a remotely controllable positioning extension
US9457901B2 (en) 2014-04-22 2016-10-04 Fatdoor, Inc. Quadcopter with a printable payload extension system and method
US9004396B1 (en) 2014-04-24 2015-04-14 Fatdoor, Inc. Skyteboard quadcopter and method
US9022324B1 (en) 2014-05-05 2015-05-05 Fatdoor, Inc. Coordination of aerial vehicles through a central server
US10248731B1 (en) 2014-05-16 2019-04-02 Corelogic Solutions, Llc System and method for linking data records for parcels
US9971985B2 (en) 2014-06-20 2018-05-15 Raj Abhyanker Train based community
US9441981B2 (en) 2014-06-20 2016-09-13 Fatdoor, Inc. Variable bus stops across a bus route in a regional transportation network
US9451020B2 (en) 2014-07-18 2016-09-20 Legalforce, Inc. Distributed communication of independent autonomous vehicles to provide redundancy and performance
US10007677B1 (en) 2014-12-04 2018-06-26 Google Llc System and method for geospatial indexing
US11204946B2 (en) * 2015-02-26 2021-12-21 Red Hat, Inc. Finding objects in a key-based data structure by their approximate location
CN105183769B (en) * 2015-07-31 2018-08-24 浙江工商大学 Based on the cubical track data visualized in situ method of flow data
US10885097B2 (en) 2015-09-25 2021-01-05 The Nielsen Company (Us), Llc Methods and apparatus to profile geographic areas of interest
US10593074B1 (en) * 2016-03-16 2020-03-17 Liberty Mutual Insurance Company Interactive user interface for displaying geographic boundaries
US10783173B2 (en) 2016-04-08 2020-09-22 Global Grid Systems Inc. Methods and systems for selecting and analyzing geospatial data on a discrete global grid system
EP3448753B1 (en) 2016-04-29 2022-07-13 United Parcel Service Of America, Inc. Unmanned aerial vehicle pick-up and delivery systems
US10730626B2 (en) 2016-04-29 2020-08-04 United Parcel Service Of America, Inc. Methods of photo matching and photo confirmation for parcel pickup and delivery
DE112016007098T5 (en) * 2016-07-26 2019-04-18 Hewlett-Packard Development Company, L.P. INDEXING VOXELS FOR 3D PRINTING
DE102016216218A1 (en) * 2016-08-29 2018-03-01 Robert Bosch Gmbh Method for determining surface areas of water from OSM data
DE102016217654A1 (en) 2016-09-15 2018-03-15 Bayerische Motoren Werke Aktiengesellschaft Method and data processing system for generating map data of a digital map
US10401500B2 (en) * 2016-12-30 2019-09-03 DeepMap Inc. Encoding LiDAR scanned data for generating high definition maps for autonomous vehicles
US11486717B1 (en) * 2017-03-13 2022-11-01 Mapbox, Inc. Generating navigation instructions based on digital map context
US20180330325A1 (en) 2017-05-12 2018-11-15 Zippy Inc. Method for indicating delivery location and software for same
US10775792B2 (en) 2017-06-13 2020-09-15 United Parcel Service Of America, Inc. Autonomously delivering items to corresponding delivery locations proximate a delivery route
US20190188305A1 (en) * 2017-12-15 2019-06-20 Conduce, Inc. Spatial and temporal data storage and retrieval
WO2019200182A2 (en) * 2018-04-11 2019-10-17 SeeScan, Inc. Geographic map updating methods and systems
DE102018210681A1 (en) * 2018-06-29 2020-01-02 Audi Ag Process for optimizing map data
RU2720073C2 (en) * 2018-07-04 2020-04-23 Общество С Ограниченной Ответственностью "Яндекс" Method and electronic device for creating index of segments of polygons
WO2020045210A1 (en) * 2018-08-28 2020-03-05 パイオニア株式会社 Map data structure
US11366836B2 (en) * 2018-09-20 2022-06-21 Paper Crane, LLC Automated geospatial data analysis
CN111380526B (en) * 2018-12-27 2022-04-05 北京航迹科技有限公司 System and method for determining path
US10948300B2 (en) 2018-12-27 2021-03-16 Beijing Voyager Technology Co., Ltd. Systems and methods for path determination
CN112463804B (en) * 2021-02-02 2021-06-15 湖南大学 KDTree-based image database data processing method
CN115164911A (en) * 2021-02-03 2022-10-11 西华大学 High-precision overpass rapid navigation method based on image recognition
CN113625264A (en) * 2021-06-16 2021-11-09 中国铁道科学研究院集团有限公司铁道建筑研究所 Method and system for parallel processing of railway detection big data
USD959552S1 (en) 2021-07-21 2022-08-02 Speedfind, Inc Display sign
US20230105871A1 (en) * 2021-10-01 2023-04-06 Argo AI, LLC Data structure for storing information relating to an environment of an autonomous vehicle and methods of use thereof
GB202114684D0 (en) * 2021-10-14 2021-12-01 Five Ai Ltd Support tools for autonomous vehicles
CN114415492B (en) * 2021-12-08 2023-12-08 深圳优美创新科技有限公司 Method, terminal and storage medium for acquiring time in offline state

Family Cites Families (35)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4086632A (en) * 1976-09-27 1978-04-25 The Boeing Company Area navigation system including a map display unit for establishing and modifying navigation routes
JPS585611A (en) * 1981-07-01 1983-01-13 Toyota Motor Corp Device for guiding running operation
JPS61250671A (en) * 1985-04-27 1986-11-07 株式会社デンソー Map display unit
CA1277043C (en) * 1985-07-25 1990-11-27 Marvin S. White, Jr. Apparatus storing a representation of topological structures and methods of building and searching the representation
NL8602654A (en) * 1986-10-23 1988-05-16 Philips Nv METHOD FOR DIVIDING IN LOTS AND STORING BITCH IN A MASSAGE MEMORY A DATA FILE, AND FOR ADDRESSING A LOT, AND APPARATUS FOR PERFORMING THE METHOD
NL8702014A (en) * 1987-08-28 1989-03-16 Philips Nv ROUTE DETERMINATION UNIT.
US4972319A (en) * 1987-09-25 1990-11-20 Delorme David M Electronic global map generating system
WO1989006414A1 (en) * 1987-12-28 1989-07-13 Aisin Aw Co., Ltd. Route search method for navigation system
JPH023900A (en) * 1988-06-16 1990-01-09 Nissan Motor Co Ltd Present place displaying device for moving body
US5170353A (en) * 1988-11-17 1992-12-08 U.S. Philips Corporation Bucket-oriented route planning method, and navigation system comprising a route planner for carrying out such a method
US5029125A (en) * 1989-03-07 1991-07-02 Drexler Technology Corporation Method of reading and writing files on nonerasable storage media
US5036471A (en) * 1989-04-18 1991-07-30 Sanyo Electric Co., Ltd. Apparatus for road path searching applicable to car navigation system and operation method thereof
US5150295A (en) * 1990-05-22 1992-09-22 Teledyne Industries, Inc. Computerized system for joining individual maps into a single map product
US5295261A (en) * 1990-07-27 1994-03-15 Pacific Bell Corporation Hybrid database structure linking navigational fields having a hierarchial database structure to informational fields having a relational database structure
US5367671A (en) * 1990-09-25 1994-11-22 International Business Machines Corp. System for accessing extended object attribute (EA) data through file name or EA handle linkages in path tables
DE69131270T2 (en) * 1990-10-01 1999-12-02 Mannesmann Vdo Ag Methods of storing a topological network and methods and devices to identify a row of 1 cells
JP2570500B2 (en) * 1990-12-19 1997-01-08 三菱電機株式会社 Car navigation system
US5285391A (en) * 1991-08-05 1994-02-08 Motorola, Inc. Multiple layer road memory storage device and route planning system
JP2848061B2 (en) * 1991-11-06 1999-01-20 三菱電機株式会社 Navigation device
DE69324713T2 (en) * 1992-02-18 1999-09-09 Pioneer Electronic Corp Navigation device with improved position display function
EP0559975B1 (en) * 1992-03-10 1999-06-16 Hewlett-Packard Limited Data storage apparatus
JP3248160B2 (en) * 1993-03-17 2002-01-21 株式会社日立製作所 Drawing management device
JP2951822B2 (en) * 1993-05-13 1999-09-20 三菱電機株式会社 Data management apparatus and graphic data management method
US5412573A (en) * 1993-05-20 1995-05-02 Motorola Inc. Multi-mode route guidance system and method therefor
EP0646882B1 (en) * 1993-10-04 2002-03-20 Siemens Aktiengesellschaft Method and apparatus for fast accessing of data items from a sorted list and data base carrier for use with such method and/or apparatus
JP3221183B2 (en) * 1993-10-07 2001-10-22 住友電気工業株式会社 Navigation device with route calculation function
JP3085054B2 (en) * 1993-10-08 2000-09-04 住友電気工業株式会社 Route calculation device
JP2996074B2 (en) * 1993-10-18 1999-12-27 住友電気工業株式会社 Route calculation device
JPH07113653A (en) * 1993-10-19 1995-05-02 Sumitomo Electric Ind Ltd Path computer
JP2856063B2 (en) * 1994-03-30 1999-02-10 住友電気工業株式会社 Navigation device with return route calculation function
EP1202028A1 (en) * 1994-09-08 2002-05-02 Matsushita Electric Industrial Co., Ltd. Method and system of route selection
JP2917825B2 (en) * 1994-09-08 1999-07-12 松下電器産業株式会社 Route selection method and system
JPH0886660A (en) * 1994-09-16 1996-04-02 Alpine Electron Inc Car navigation system
JP3471459B2 (en) * 1995-01-20 2003-12-02 三菱電機株式会社 Car navigation system
EP0776461B1 (en) * 1995-06-16 2001-11-21 Mannesmann VDO Aktiengesellschaft System for joining elements to complex junctions and links in road network representation for vehicles

Also Published As

Publication number Publication date
DE69736082T2 (en) 2006-12-28
DE69736082D1 (en) 2006-07-20
JP2007010678A (en) 2007-01-18
DE69725677D1 (en) 2003-11-27
JPH10312153A (en) 1998-11-24
EP0838663A2 (en) 1998-04-29
EP1365212A1 (en) 2003-11-26
CA2219043A1 (en) 1998-04-25
EP0838663B1 (en) 2003-10-22
EP0838663A3 (en) 2000-03-15
EP1365212B1 (en) 2006-06-07
JP4447585B2 (en) 2010-04-07
US6308177B1 (en) 2001-10-23
ATE252720T1 (en) 2003-11-15
DE69725677T2 (en) 2004-08-05
ATE329230T1 (en) 2006-06-15
JP4079489B2 (en) 2008-04-23
US5968109A (en) 1999-10-19

Similar Documents

Publication Publication Date Title
CA2219043C (en) Improved system and method for use and storage of geographical data on physical media
US7197500B1 (en) System and method for use and storage of geographic data on physical media
EP3407223B1 (en) Location based full text search
US6184823B1 (en) Geographic database architecture for representation of named intersections and complex intersections and methods for formation thereof and use in a navigation application program
US6600841B1 (en) Method and system for compressing data and a geographic database formed therewith and methods for use thereof in a navigation application program
US6249742B1 (en) Method and system for providing a preview of a route calculated with a navigation system
JP4498486B2 (en) Interleaving data types in geographic databases and methods for using them for navigation applications
US6029173A (en) Method and system for representation and use of shape information in geographic databases
US5974419A (en) Parcelization of geographic data for storage and use in a navigation application
EP2363816B1 (en) Destination search in a navigation system using a spatial index structure
EP2795256B1 (en) Methods for facilitating searching of points of interest along a route
US7096117B1 (en) Method and system of polyline generation for rendering a richly attributed representation of a geographic region
EP2836928B1 (en) Full text search using r-trees
JPH11345247A (en) Aggregation of segment in geographic database and method for using the same for navigation application

Legal Events

Date Code Title Description
EEER Examination request
MKEX Expiry

Effective date: 20171024