US8886599B2 - System for updating a navigation database - Google Patents

System for updating a navigation database Download PDF

Info

Publication number
US8886599B2
US8886599B2 US11/971,548 US97154808A US8886599B2 US 8886599 B2 US8886599 B2 US 8886599B2 US 97154808 A US97154808 A US 97154808A US 8886599 B2 US8886599 B2 US 8886599B2
Authority
US
United States
Prior art keywords
objects
database
navigation database
navigation
derived
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active, expires
Application number
US11/971,548
Other versions
US20090024656A1 (en
Inventor
Harald Wellman
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.)
Harman Becker Automotive Systems GmbH
Original Assignee
Harman Becker Automotive Systems GmbH
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 Harman Becker Automotive Systems GmbH filed Critical Harman Becker Automotive Systems GmbH
Assigned to HARMAN BECKER AUTOMOTIVE SYSTEMS GMBH reassignment HARMAN BECKER AUTOMOTIVE SYSTEMS GMBH ASSIGNMENT OF ASSIGNORS INTEREST (SEE DOCUMENT FOR DETAILS). Assignors: WELLMANN, HARALD
Publication of US20090024656A1 publication Critical patent/US20090024656A1/en
Assigned to JPMORGAN CHASE BANK, N.A., AS ADMINISTRATIVE AGENT reassignment JPMORGAN CHASE BANK, N.A., AS ADMINISTRATIVE AGENT SECURITY AGREEMENT Assignors: HARMAN BECKER AUTOMOTIVE SYSTEMS GMBH
Assigned to HARMAN BECKER AUTOMOTIVE SYSTEMS GMBH, HARMAN INTERNATIONAL INDUSTRIES, INCORPORATED reassignment HARMAN BECKER AUTOMOTIVE SYSTEMS GMBH RELEASE Assignors: JPMORGAN CHASE BANK, N.A., AS ADMINISTRATIVE AGENT
Assigned to JPMORGAN CHASE BANK, N.A., AS ADMINISTRATIVE AGENT reassignment JPMORGAN CHASE BANK, N.A., AS ADMINISTRATIVE AGENT SECURITY AGREEMENT Assignors: HARMAN BECKER AUTOMOTIVE SYSTEMS GMBH, HARMAN INTERNATIONAL INDUSTRIES, INCORPORATED
Assigned to HARMAN BECKER AUTOMOTIVE SYSTEMS GMBH, HARMAN INTERNATIONAL INDUSTRIES, INCORPORATED reassignment HARMAN BECKER AUTOMOTIVE SYSTEMS GMBH RELEASE Assignors: JPMORGAN CHASE BANK, N.A., AS ADMINISTRATIVE AGENT
Application granted granted Critical
Publication of US8886599B2 publication Critical patent/US8886599B2/en
Active legal-status Critical Current
Adjusted expiration legal-status Critical

Links

Images

Classifications

    • 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/26Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00 specially adapted for navigation in a road network
    • G01C21/34Route searching; Route guidance
    • G01C21/36Input/output arrangements for on-board computers
    • G06F17/30241
    • 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/25Integrating or interfacing systems involving database management systems
    • G06F16/258Data format conversion from or to a database
    • 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
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • G06F17/30569
    • 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/912Applications of a database
    • Y10S707/918Location
    • Y10S707/919Geographic
    • Y10S707/92Navigation

Definitions

  • the inventions relate to databases, and in particular, to updating databases in navigation systems.
  • a navigation system uses digital maps to display streets, buildings, rivers, and other features on varying scales. Navigations systems provide direction and routing information to localities of interest to the user. Digital map databases for vehicle navigation systems may be stored on removable storage media, such as CDs or DVDs, or on hard drives installed internal to the vehicle.
  • Mapping information changes regularly as new streets are built, new freeway exits are constructed, points of interest to the user are renamed, moved, or deleted from a map, or other changes occur that affect the accuracy of maps.
  • Digital map content should be updated frequently to provide the user with reliable information. Updating systems can be costly, cumbersome, and time consuming. Therefore, a need exists for a system that efficiently updates navigation systems to maintain accurate and up-to-date digital maps.
  • a navigation system including a navigation database provides efficient and accurate database updates.
  • the system receives a modified version of the navigation database.
  • the system identifies data blocks of the modified version that differ from the corresponding data blocks of the navigation database.
  • the system generates an update based on the identified differences.
  • the system updates the navigation database using the generated update.
  • FIG. 1 is a flow diagram of an exemplary navigation database updating process.
  • FIG. 2 is an exemplary process for updating a first navigation database.
  • FIG. 3 is an exemplary update package generated based on a comparison of a first database and a second database.
  • FIG. 4 is an exemplary process for incrementally updating a block of a navigation database.
  • FIG. 5 is an exemplary navigation system.
  • FIG. 1 is a flow diagram of an exemplary navigation database updating process 100 .
  • a navigation system 102 comprising a navigation database 104 may obtain a modified navigation database 106 .
  • the navigation database 104 may include data blocks and records that specify objects associated with a digital map. The objects may include closure of a street, speed limit zone, or other attributes of a geographic object.
  • the modified navigation database 106 may be a modified or subsequent version of the navigation database 104 .
  • the modified database 106 may include data blocks that correspond to the data blocks of the navigation database 104 , where some of the data blocks of the modified navigation database are changed or are different relative to the navigation database 104 .
  • the system 102 may compare the databases 104 and 106 to identify data blocks of the modified navigation database that differ from the corresponding blocks of the navigation database 104 .
  • the system 102 may generate an update package 108 based on the identification of data blocks that differ between the navigation database 104 and the modified navigation database 106 .
  • the update package 108 may include the data blocks of the modified navigation database that differ from the corresponding data blocks of the navigation database 104 .
  • the system 102 may update the navigation database 104 based on the generated update package 108 to provide an accurate and up-to-date navigation database.
  • FIG. 2 is an exemplary process 200 for updating a first navigation database.
  • the first navigation database may include vehicle navigation, geographic, and/or other data related to digital maps.
  • the process 200 may obtain a second navigation database (Act 202 ).
  • the second navigation database may be a modified version of the first navigation database that includes vehicle navigation, geographic, and/or other data related to digital maps.
  • the second navigation database may be a parent database generated by a provider and may represent a modification of an older parent database.
  • the first navigation database may be a copy of the older parent database from which the second navigation database is a modified.
  • source objects of the second database may differ from corresponding source objects in the first database.
  • the provider may be a vendor or other distributor of navigation systems and/or digital maps that may be uploaded to a navigation system.
  • the second navigation database may be obtained through an internet connection.
  • the second navigation database may be downloaded automatically or at a user's request from the provider.
  • the second navigation database may be downloaded directly to a vehicle.
  • the second navigation database may be stored and provided to a user on a computer-readable medium, such as a CD or DVD.
  • the data of each of the databases may be organized in logically related blocks on a memory.
  • Each of the blocks may include one or more records that specify objects and their attributes.
  • Objects may be roads, landmarks, points of interest (“POIs”), and/or other geographic localities represented in a digital map presented to a driver.
  • POIs may include service stations, police stations, hotels, restaurants, or other locations.
  • Object attributes may include characteristics of the roads, landmarks, and/or POIs, such as the kind of food offered in a restaurant (e.g., “Italian”).
  • Objects specified by the records of the first and second navigation databases may include source objects and derived objects.
  • a source object may be an object that is not derived from other object(s) during database compilation.
  • Source objects may include map geometry and road topology at a lowest organizational level of the map.
  • Source objects may also include data related to object attributes, such as name attributes of cities and streets.
  • Derived objects may include objects that are computed or compiled from source objects or other derived objects during database compilation. Derived objects and data may include data known from source objects or other derived objects on a higher organization level. The derived objects may accelerate operation of the navigation software, such as with a higher level of routing and map display. In one example, derived objects may include data on a scale with tiles of about 10 km in a map with a lowest map level showing tiles with an edge length of about 100 meters. Derived objects may also include data associated with name indices.
  • Each block of the first and second navigation databases may be assigned a block number.
  • a block of the second navigation database may correspond to a similar block of the first navigation database that specifies the same or similar objects. If the data of the first navigation database and the second navigation database is each grouped in n blocks, block number 1 of the first navigation database may correspond to block number 1 of the second navigation database and so on up to corresponding blocks n of each of the databases.
  • the second navigation database may include a new source object with no corresponding object in the first navigation database, such as a newly built street not present in the digital map of the associated with the first navigation database.
  • the records of the blocks may be defined with a self-describing format to allow forward and backward compatibility of different versions of the same navigation database.
  • the first and/or the second navigation databases may be an object-oriented database that includes transparent persistence.
  • the process 200 may compile the source objects of the first navigation database (Act 204 ). Compiling the source objects of the first navigation database may generate derived objects of the first navigation database. All, or substantially all, of the source objects of the first navigation database may be compiled to generate the derived objects of the first navigation database.
  • the process 200 may use an incremental database updating technique.
  • the first navigation database may include information about the dependency of the derived objects on other derived objects and/or on source objects.
  • the process 200 may compare the corresponding source objects and derived objects between the first and second navigation databases and compile just those source objects and derived objects of the first navigation database that differ from the corresponding objects in the second navigation database.
  • Compilation of the database may be performed by a database compiler that includes access to all derived objects created in some or all of the previous compilation and includes information about the dependency relations between objects.
  • the compiler may be a unitary part of or interface a remote navigation system to be updated.
  • the compiler may be installed on a remote computer, where compilation may be performed for a copy of the database that is physically present on some storage medium used by the navigation system installed in a vehicle.
  • the process 200 may scan all, or substantially all, object dependencies. Based on the information about the dependency relations the process 200 may (re)build the derived objects that depend on objects that correspond to objects that have been changed in the second navigation database with respect to the corresponding objects of the first navigation database. Such changes may be determined before compilation of the first navigation database. Compilation of the second database may be performed by a similar incremental compilation. If a source object of the second navigation database is changed, it may not be necessary to compile the entire second navigation database. The process 200 may (re)build derived objects that depend on a changed source object(s).
  • Compiling source objects of the first navigation database to generate derived objects of the first navigation database may include compiling such source objects of the first navigation database that do not correspond to any of the source objects of the second navigation database.
  • Compiling source objects of the first navigation database that do not correspond to source objects of the second navigation database may account for deletion of objects in later releases of the first navigation database.
  • the process 200 may compile a subset of source objects of the second navigation database (Act 206 ).
  • the subset of source objects of the second navigation database may include source objects that differ from the corresponding source objects specified in the first navigation database. Compiling the subset of source objects of the second navigation database may generate derived objects of the second navigation database.
  • the subset of source objects of the second navigation database that consists of source objects that differ from the corresponding source objects specified in the first navigation database may be smaller that the set of all source objects of the first navigation database.
  • the subset of source objects of the second navigation database that includes source objects that differ from the corresponding source objects of the first navigation database may not include all source objects that differ from the corresponding source objects specified in the first navigation database.
  • the update package may include the blocks, or a portion of such blocks, of the second navigation database that differ from the corresponding blocks of the first navigation database.
  • a user may select source objects of the second navigation database used for the compilation and/or blocks to be included in the update package.
  • the process 200 may provide customized updates to the first navigation database based on user needs or preferences.
  • the second database may include, in one example, data for digital maps for all of a continent (e.g., Europe) while the user of the first navigation database may be interested in an updated version of the digital map data relating to only a specific country (e.g., Italy).
  • the update package used to update the first navigation database may accordingly include blocks of the source and derived objects of the second navigation database that differ from the respective blocks of the first navigation database and relate to the digital map representation of that country.
  • Blocks of the second navigation database that differ from the corresponding blocks of the first navigation database may represent a city or a country or a province or a federal state or a continent, where the data organized in the blocks represent digital map data of these geographic entities.
  • a block update for a city or a country may, therefore, be carried out in a time efficient way through adaptive selection of the respective blocks for an update.
  • Each block may be directly accessible for compilation and updating without the need for data compression of blocks or other large parts of the databases.
  • Data compression may be carried out for the records contained in the blocks.
  • the process 200 may group the source objects and the derived objects of the first navigation database in blocks of the first navigation database (Act 208 ).
  • the process 200 may group the source objects and the derived objects of the second navigation database in blocks of the second navigation database (Act 210 ).
  • the process 200 may compare blocks of the first navigation database with blocks of the second navigation database to identify any blocks of the second navigation database that differ from the corresponding blocks of the first navigation database (Act 212 ). If a POI or other locality has been removed in the time period between the issuance of the first and second navigation databases, the block containing the record specifying this object, and blocks containing records specifying derived object depending on the POI in the first navigation database, may be identified during the comparing of the compiled blocks of the first and second navigation databases.
  • the process 200 may generate an update package that includes blocks of the second navigation database that differ from the corresponding blocks of the first navigation database (Act 214 ).
  • the update package may be generated from the first navigation database as it is physically realized in a particular vehicle or from an identical copy of the first navigation database. Compilation and generation of the update package may be carried out on a target navigation system, where at least parts of the compiler software may be installed on the target navigation system that includes the first navigation database to be updated.
  • the update package may be generated by the provider or by the customer on his or her personal computing device.
  • the process 200 may update the first navigation database based on the update package (Act 216 ).
  • Each block may be assigned a unique block number and within each of the blocks each record may be assigned a unique record number.
  • Each object may be identified uniquely by a block number and a record number.
  • the block number and the record number may be a physical object ID (identification).
  • the first and the second navigation database data may be organized by a logical object ID that identifies references between objects of one block and objects of other blocks within a database.
  • the block update may modify the ID mapping of logical to physical IDs contained in each of the databases to maintain the referential integrity or consistency between unchanged and changed blocks in the first navigation database. After a full update, the ID mapping may be set to unity, such as by setting equal the logical and physical IDs for each object.
  • FIG. 3 is an exemplary update package 300 that is based on a comparison of a first database 302 and a second database 304 .
  • the second database 304 may be similar to the first database 302 and may include one or more modified records relative to the first database 302 .
  • the update package 300 may be based on differences between the first database 302 and a second database 304 and used to update the first database 302 with the modifications reflected in the second database 304 .
  • data may be grouped in logically related blocks 306 .
  • the blocks 306 may include sizes of about 5 to about 64 kbytes.
  • Each of the blocks 306 includes records 308 associated with a unique object.
  • a block 306 may include about 2 16 records 308 .
  • the blocks 306 may also include more or less than 2 16 records.
  • Each record 308 may include integer numbers, character strings, pointers, or other data types.
  • the objects associated with the records 308 may include a road, a polygon, a street intersection, a landmark, or other geographic objects and/or localities. The objects may include closure of a street, speed limit zone, or other attributes of a geographic object.
  • the records 308 may include a self-describing format.
  • a self-describing format may allow software of a navigation system to skip unknown record types and/or unknown attributes of records with known types, or to be configured to receive supplements of the first navigation database.
  • Each block may be directly accessible without accessing a de-compression function.
  • Each block 306 may be assigned a unique block number.
  • Each record 308 within a block may be assigned a record number. The block number and record number may be used to identify each object.
  • objects may be referenced by position and offset. References between objects specified by records of different blocks 306 may be specified by logical object IDs that include a logical block number and a logical record number.
  • Each of the blocks of the first database may correspond to a block of the second database.
  • the first and second databases 302 and 304 each include a block numbered 1 that includes records labeled as a 1 , b 1 , c 1 , and d 1 .
  • Block number 1 of the first database 302 and block number 1 of the second database 304 may be identical.
  • Record a 1 of the first database 302 corresponds to record a 1 of the second database 304
  • record b 1 of first database 302 corresponds to record b 1 of the second database 304
  • record c 1 of first database 302 corresponds to record c 1 of the second database 304
  • record d 1 of first database 302 corresponds to record d 1 of the second database 304 .
  • Block number 2 of the second database 304 may include records ⁇ 2 and ⁇ tilde over (d) ⁇ 2 that are modified relative to the corresponding records a 2 and d 2 of block number 2 of the first database 302 .
  • Block number 3 of the second database 304 includes records â 3 and ⁇ circumflex over (d) ⁇ 3 and block number 4 of the second database 304 contains the record ⁇ circumflex over (d) ⁇ 4 , where the circumflex denotes that the marked record is associated with an object that is derived from one or more of the modified objects ⁇ 2 and ⁇ tilde over (d) ⁇ 2 of block number 2 of the second database 304 .
  • the derived objects may represent data compiled from one or more of the modified objects ⁇ 2 and ⁇ tilde over (d) ⁇ 2 by a compiler.
  • the derived objects may represent data generated to speed up the operation of a navigation system.
  • Map geometry and road topology at lowest levels, as well as street names, may represent source data, whereas high-level tiles of roads may be derived from elementary 0-level tiles.
  • the lowest 0-level tiles may be distinguished from higher level tiles by the represented edge length.
  • the lowest level scale may comprise tiles of hundred of meters whereas higher levels may comprise kilometer-length tiles.
  • the first database 302 may provide information related to dependencies of objects on other derived or source objects.
  • the records a 2 and d 2 of the first database 302 and the corresponding modified versions ⁇ 2 and ⁇ tilde over (d) ⁇ 2 of the second database 304 may specify source objects. Records a 3 , d 3 , and d 4 may depend on records a 2 or d 3 and specify derived objects.
  • the update package 300 may be obtained to include block numbers 2 , 3 , and 4 of the second database 304 , which represent blocks of the second database 304 that differ from the corresponding blocks of the first database 302 .
  • a block update of the first database 302 may be performed by installing the update package 300 .
  • only those blocks of the first database 302 are updated that contain records specifying objects that are derived from or correspond to objects that are modified in the second database 304 with respect to the first database 302 . If in the second database 304 a source object has been modified with respect to the first database 302 , the block containing this source object is included in the update package. Not all of the objects contained in a block need to be compiled for the update procedure. Blocks including records that depend on modified records may be updated whether or not they include records specifying source objects that are modified in the second database 304 with respect to the first database 302 .
  • â 3 may be a record specifying the same street on a higher level of graphical representation with tiles on, for example, a kilometer scale.
  • An update of a 2 in the first database 302 may entail an update of a 3 of the first database 302 .
  • FIG. 4 is an exemplary process 400 for incrementally updating a block of a navigation database.
  • a database compiler may compile modified source objects (Act 402 ) and derived objects on which other derived objects may depend (Act 404 ). Derived objects may be compiled from at least some of the previously compiled source objects and derived objects (Act 406 ). The dependency relation introduced may be used for an incremental database compiling.
  • the compiler may scan all object dependencies, including dependencies on source objects or other derived objects, and rebuild only objects that depend on modified ones (either source objects or derived objects) to generate an update package. After completion of the compilation process an update package may be built that includes all rebuilt objects that depend on changed objects (Act 408 ).
  • FIG. 5 is an exemplary navigation system 500 including a processor 502 and a memory 504 .
  • the processor 502 may execute instructions stored in the memory 504 to control operation of the navigation system 500 .
  • all or part of the systems including the methods and/or instructions for performing such methods consistent with the navigation system 500 , may be stored on, distributed across, or read from other computer-readable media, for example, secondary storage devices such as hard disks, floppy disks, and CD-ROMs; a signal received from a network; or other forms of ROM or RAM either currently known or later developed.
  • secondary storage devices such as hard disks, floppy disks, and CD-ROMs
  • a signal received from a network or other forms of ROM or RAM either currently known or later developed.
  • the processor 502 may be implemented as a microprocessor, microcontroller, application specific integrated circuit (ASIC), discrete logic, or a combination of other types of circuits or logic.
  • the memory 504 may be DRAM, SRAM, Flash, or any other type of memory.
  • Parameters e.g., dependency information
  • databases, and other data structures may be separately stored and managed, may be incorporated into a single memory or database, or may be logically and physically organized in many different ways. Programs, processes, and instruction sets may be parts of a single program, separate programs, or distributed across several memories and processors.
  • the memory 504 may store a first navigation database 506 .
  • the first navigation database may include vehicle navigation, geographic, and/or other data related to digital maps.
  • the processor 502 may obtain an update package 508 from a provider 510 .
  • the provider 510 may be a vendor and/or distributor of digital maps and other navigation related information.
  • the processor 502 may execute instructions stored on the memory 504 to update the first navigation database 506 based on the update package 508 .
  • the update package 508 may be generated based on differences between data blocks of the first navigation database 506 and a second navigation database 512 .
  • the second navigation database 512 may be a modified version of the first navigation database 506 , such as a new release of the first navigation database that provides up-to-date navigation, geographic, and/or other information or data related to digital maps.
  • the provider 510 may include a copy of the first navigation database 506 to compare with the second navigation database 512 to generate the update package 508 .
  • the provider 510 may transmit the second navigation database 512 to the navigation system 500 and the processor 502 may execute instructions stored on the memory 504 to generate an update package.
  • the memory 504 may store a compiler program to compile objects of the first and/or second navigation databases 506 and 512 .
  • the disclosed methods, processes, programs, and/or instructions may be encoded in a signal bearing medium, a computer-readable medium such as a memory, programmed within a device such as on one or more integrated circuits, or processed by a controller or a computer. If the methods are performed by software, the software may reside in a memory resident to or interfaced to a communication interface, or non-volatile or volatile memory.
  • the memory may include an ordered listing of executable instructions for implementing logical functions.
  • a logical function may be implemented through digital circuitry, through source code, through analog circuitry, or through an analog source such as an analog electrical, audio, or video signal.
  • the software may be embodied in any computer-readable or signal-bearing medium for use by, or in connection with, an instruction executable system, apparatus, or device.
  • a system may include a computer-based system, a processor-containing system, or another system that may selectively fetch instructions from an instruction-executable system, apparatus, or device that may also execute instructions.
  • a “computer-readable medium,” “machine-readable medium,” “propagated-signal medium,” and/or “signal-bearing medium” may comprise any medium that contains, stores, communicates, propagates, or transports software for use by or in connection with an instruction-executable system, apparatus, or device.
  • the computer-readable medium may selectively be, but not limited to, an electronic, magnetic, optical, electromagnetic, infrared, or semiconductor system, apparatus, device, or a propagation medium.
  • a non-exhaustive list of examples of a computer-readable medium include: an electrical connection electronic having one or more wires, a portable magnetic or optical disk, a volatile memory such as a Random Access Memory “RAM,” a Read-Only Memory “ROM,” an Erasable Programmable Read-Only Memory (EPROM or Flash memory), or an optical fiber.
  • a computer-readable medium may also include a tangible medium upon which software is printed, as the software may be electronically stored as an image or in another format (e.g., through an optical scan), then compiled and/or interpreted or otherwise processed. The processed medium may then be stored in a computer and/or machine memory.

Abstract

A navigation system including a navigation database provides efficient and accurate database updates. The system receives a modified version of the navigation database. The system identifies data blocks of the modified version that differ from the corresponding data blocks of the navigation database. The system generates an update based on the identified differences. The system updates the navigation database using the generated update.

Description

PRIORITY CLAIM
This application claims the benefit of priority from European Patent Application No. 07000468.4, filed Jan. 10, 2007, which is incorporated by reference.
BACKGROUND OF THE INVENTION
1. Technical Field
The inventions relate to databases, and in particular, to updating databases in navigation systems.
2. Related Art
A navigation system uses digital maps to display streets, buildings, rivers, and other features on varying scales. Navigations systems provide direction and routing information to localities of interest to the user. Digital map databases for vehicle navigation systems may be stored on removable storage media, such as CDs or DVDs, or on hard drives installed internal to the vehicle.
Mapping information changes regularly as new streets are built, new freeway exits are constructed, points of interest to the user are renamed, moved, or deleted from a map, or other changes occur that affect the accuracy of maps. Digital map content should be updated frequently to provide the user with reliable information. Updating systems can be costly, cumbersome, and time consuming. Therefore, a need exists for a system that efficiently updates navigation systems to maintain accurate and up-to-date digital maps.
SUMMARY
A navigation system including a navigation database provides efficient and accurate database updates. The system receives a modified version of the navigation database. The system identifies data blocks of the modified version that differ from the corresponding data blocks of the navigation database. The system generates an update based on the identified differences. The system updates the navigation database using the generated update.
Other systems, methods, features and advantages will be, or will become, apparent to one with skill in the art upon examination of the following figures and detailed description. It is intended that all such additional systems, methods, features and advantages be included within this description, be within the scope of the invention, and be protected by the following claims.
BRIEF DESCRIPTION OF THE DRAWINGS
The system may be better understood with reference to the following drawings and description. The components in the figures are not necessarily to scale, emphasis instead being placed upon illustrating the principles of the invention. Moreover, in the figures, like referenced numerals designate corresponding parts throughout the different views.
FIG. 1 is a flow diagram of an exemplary navigation database updating process.
FIG. 2 is an exemplary process for updating a first navigation database.
FIG. 3 is an exemplary update package generated based on a comparison of a first database and a second database.
FIG. 4 is an exemplary process for incrementally updating a block of a navigation database.
FIG. 5 is an exemplary navigation system.
DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS
FIG. 1 is a flow diagram of an exemplary navigation database updating process 100. A navigation system 102 comprising a navigation database 104 may obtain a modified navigation database 106. The navigation database 104 may include data blocks and records that specify objects associated with a digital map. The objects may include closure of a street, speed limit zone, or other attributes of a geographic object. The modified navigation database 106 may be a modified or subsequent version of the navigation database 104. The modified database 106 may include data blocks that correspond to the data blocks of the navigation database 104, where some of the data blocks of the modified navigation database are changed or are different relative to the navigation database 104. The system 102 may compare the databases 104 and 106 to identify data blocks of the modified navigation database that differ from the corresponding blocks of the navigation database 104.
The system 102 may generate an update package 108 based on the identification of data blocks that differ between the navigation database 104 and the modified navigation database 106. The update package 108 may include the data blocks of the modified navigation database that differ from the corresponding data blocks of the navigation database 104. The system 102 may update the navigation database 104 based on the generated update package 108 to provide an accurate and up-to-date navigation database.
FIG. 2 is an exemplary process 200 for updating a first navigation database. The first navigation database may include vehicle navigation, geographic, and/or other data related to digital maps. The process 200 may obtain a second navigation database (Act 202). The second navigation database may be a modified version of the first navigation database that includes vehicle navigation, geographic, and/or other data related to digital maps. The second navigation database may be a parent database generated by a provider and may represent a modification of an older parent database. The first navigation database may be a copy of the older parent database from which the second navigation database is a modified. For example, source objects of the second database may differ from corresponding source objects in the first database. The provider may be a vendor or other distributor of navigation systems and/or digital maps that may be uploaded to a navigation system. The second navigation database may be obtained through an internet connection. In a vehicle navigation system, the second navigation database may be downloaded automatically or at a user's request from the provider. The second navigation database may be downloaded directly to a vehicle. The second navigation database may be stored and provided to a user on a computer-readable medium, such as a CD or DVD.
The data of each of the databases may be organized in logically related blocks on a memory. Each of the blocks may include one or more records that specify objects and their attributes. Objects may be roads, landmarks, points of interest (“POIs”), and/or other geographic localities represented in a digital map presented to a driver. The POIs may include service stations, police stations, hotels, restaurants, or other locations. Object attributes may include characteristics of the roads, landmarks, and/or POIs, such as the kind of food offered in a restaurant (e.g., “Italian”).
Objects specified by the records of the first and second navigation databases may include source objects and derived objects. A source object may be an object that is not derived from other object(s) during database compilation. Source objects may include map geometry and road topology at a lowest organizational level of the map. Source objects may also include data related to object attributes, such as name attributes of cities and streets.
Derived objects may include objects that are computed or compiled from source objects or other derived objects during database compilation. Derived objects and data may include data known from source objects or other derived objects on a higher organization level. The derived objects may accelerate operation of the navigation software, such as with a higher level of routing and map display. In one example, derived objects may include data on a scale with tiles of about 10 km in a map with a lowest map level showing tiles with an edge length of about 100 meters. Derived objects may also include data associated with name indices.
Each block of the first and second navigation databases may be assigned a block number. A block of the second navigation database may correspond to a similar block of the first navigation database that specifies the same or similar objects. If the data of the first navigation database and the second navigation database is each grouped in n blocks, block number 1 of the first navigation database may correspond to block number 1 of the second navigation database and so on up to corresponding blocks n of each of the databases. The second navigation database may include a new source object with no corresponding object in the first navigation database, such as a newly built street not present in the digital map of the associated with the first navigation database.
The records of the blocks may be defined with a self-describing format to allow forward and backward compatibility of different versions of the same navigation database. The first and/or the second navigation databases may be an object-oriented database that includes transparent persistence.
The process 200 may compile the source objects of the first navigation database (Act 204). Compiling the source objects of the first navigation database may generate derived objects of the first navigation database. All, or substantially all, of the source objects of the first navigation database may be compiled to generate the derived objects of the first navigation database.
In an alternative, the process 200 may use an incremental database updating technique. The first navigation database may include information about the dependency of the derived objects on other derived objects and/or on source objects. The process 200 may compare the corresponding source objects and derived objects between the first and second navigation databases and compile just those source objects and derived objects of the first navigation database that differ from the corresponding objects in the second navigation database.
Compilation of the database may be performed by a database compiler that includes access to all derived objects created in some or all of the previous compilation and includes information about the dependency relations between objects. The compiler may be a unitary part of or interface a remote navigation system to be updated. Alternatively, the compiler may be installed on a remote computer, where compilation may be performed for a copy of the database that is physically present on some storage medium used by the navigation system installed in a vehicle.
The process 200 may scan all, or substantially all, object dependencies. Based on the information about the dependency relations the process 200 may (re)build the derived objects that depend on objects that correspond to objects that have been changed in the second navigation database with respect to the corresponding objects of the first navigation database. Such changes may be determined before compilation of the first navigation database. Compilation of the second database may be performed by a similar incremental compilation. If a source object of the second navigation database is changed, it may not be necessary to compile the entire second navigation database. The process 200 may (re)build derived objects that depend on a changed source object(s).
Compiling source objects of the first navigation database to generate derived objects of the first navigation database may include compiling such source objects of the first navigation database that do not correspond to any of the source objects of the second navigation database. Compiling source objects of the first navigation database that do not correspond to source objects of the second navigation database may account for deletion of objects in later releases of the first navigation database.
The process 200 may compile a subset of source objects of the second navigation database (Act 206). The subset of source objects of the second navigation database may include source objects that differ from the corresponding source objects specified in the first navigation database. Compiling the subset of source objects of the second navigation database may generate derived objects of the second navigation database. The subset of source objects of the second navigation database that consists of source objects that differ from the corresponding source objects specified in the first navigation database may be smaller that the set of all source objects of the first navigation database.
The subset of source objects of the second navigation database that includes source objects that differ from the corresponding source objects of the first navigation database may not include all source objects that differ from the corresponding source objects specified in the first navigation database. The update package may include the blocks, or a portion of such blocks, of the second navigation database that differ from the corresponding blocks of the first navigation database.
A user may select source objects of the second navigation database used for the compilation and/or blocks to be included in the update package. The process 200 may provide customized updates to the first navigation database based on user needs or preferences. The second database may include, in one example, data for digital maps for all of a continent (e.g., Europe) while the user of the first navigation database may be interested in an updated version of the digital map data relating to only a specific country (e.g., Italy). The update package used to update the first navigation database may accordingly include blocks of the source and derived objects of the second navigation database that differ from the respective blocks of the first navigation database and relate to the digital map representation of that country. Blocks of the second navigation database that differ from the corresponding blocks of the first navigation database may represent a city or a country or a province or a federal state or a continent, where the data organized in the blocks represent digital map data of these geographic entities. A block update for a city or a country may, therefore, be carried out in a time efficient way through adaptive selection of the respective blocks for an update.
Each block may be directly accessible for compilation and updating without the need for data compression of blocks or other large parts of the databases. Data compression may be carried out for the records contained in the blocks.
The process 200 may group the source objects and the derived objects of the first navigation database in blocks of the first navigation database (Act 208). The process 200 may group the source objects and the derived objects of the second navigation database in blocks of the second navigation database (Act 210). The process 200 may compare blocks of the first navigation database with blocks of the second navigation database to identify any blocks of the second navigation database that differ from the corresponding blocks of the first navigation database (Act 212). If a POI or other locality has been removed in the time period between the issuance of the first and second navigation databases, the block containing the record specifying this object, and blocks containing records specifying derived object depending on the POI in the first navigation database, may be identified during the comparing of the compiled blocks of the first and second navigation databases.
The process 200 may generate an update package that includes blocks of the second navigation database that differ from the corresponding blocks of the first navigation database (Act 214). The update package may be generated from the first navigation database as it is physically realized in a particular vehicle or from an identical copy of the first navigation database. Compilation and generation of the update package may be carried out on a target navigation system, where at least parts of the compiler software may be installed on the target navigation system that includes the first navigation database to be updated. As an alternative, the update package may be generated by the provider or by the customer on his or her personal computing device.
The process 200 may update the first navigation database based on the update package (Act 216). Each block may be assigned a unique block number and within each of the blocks each record may be assigned a unique record number. Each object may be identified uniquely by a block number and a record number. The block number and the record number may be a physical object ID (identification). The first and the second navigation database data may be organized by a logical object ID that identifies references between objects of one block and objects of other blocks within a database. The block update may modify the ID mapping of logical to physical IDs contained in each of the databases to maintain the referential integrity or consistency between unchanged and changed blocks in the first navigation database. After a full update, the ID mapping may be set to unity, such as by setting equal the logical and physical IDs for each object.
FIG. 3 is an exemplary update package 300 that is based on a comparison of a first database 302 and a second database 304. The second database 304 may be similar to the first database 302 and may include one or more modified records relative to the first database 302. The update package 300 may be based on differences between the first database 302 and a second database 304 and used to update the first database 302 with the modifications reflected in the second database 304. In each of the databases 302 and 304, data may be grouped in logically related blocks 306. The blocks 306 may include sizes of about 5 to about 64 kbytes.
Each of the blocks 306 includes records 308 associated with a unique object. A block 306 may include about 216 records 308. The blocks 306 may also include more or less than 216 records. Each record 308 may include integer numbers, character strings, pointers, or other data types. The objects associated with the records 308 may include a road, a polygon, a street intersection, a landmark, or other geographic objects and/or localities. The objects may include closure of a street, speed limit zone, or other attributes of a geographic object. The records 308 may include a self-describing format. A self-describing format may allow software of a navigation system to skip unknown record types and/or unknown attributes of records with known types, or to be configured to receive supplements of the first navigation database. Each block may be directly accessible without accessing a de-compression function.
Each block 306 may be assigned a unique block number. Each record 308 within a block may be assigned a record number. The block number and record number may be used to identify each object. Within each block 306 objects may be referenced by position and offset. References between objects specified by records of different blocks 306 may be specified by logical object IDs that include a logical block number and a logical record number.
Each of the blocks of the first database may correspond to a block of the second database. In FIG. 2, the first and second databases 302 and 304 each include a block numbered 1 that includes records labeled as a1, b1, c1, and d1. Block number 1 of the first database 302 and block number 1 of the second database 304 may be identical. Record a1 of the first database 302 corresponds to record a1 of the second database 304, record b1 of first database 302 corresponds to record b1 of the second database 304, record c1 of first database 302 corresponds to record c1 of the second database 304, and record d1 of first database 302 corresponds to record d1 of the second database 304.
Block number 2 of the second database 304 may include records ã2 and {tilde over (d)}2 that are modified relative to the corresponding records a2 and d2 of block number 2 of the first database 302. Block number 3 of the second database 304 includes records â3 and {circumflex over (d)}3 and block number 4 of the second database 304 contains the record {circumflex over (d)}4, where the circumflex denotes that the marked record is associated with an object that is derived from one or more of the modified objects ã2 and {tilde over (d)}2 of block number 2 of the second database 304.
The derived objects may represent data compiled from one or more of the modified objects ã2 and {tilde over (d)}2 by a compiler. The derived objects may represent data generated to speed up the operation of a navigation system. Map geometry and road topology at lowest levels, as well as street names, may represent source data, whereas high-level tiles of roads may be derived from elementary 0-level tiles. The lowest 0-level tiles may be distinguished from higher level tiles by the represented edge length. The lowest level scale may comprise tiles of hundred of meters whereas higher levels may comprise kilometer-length tiles.
The first database 302 may provide information related to dependencies of objects on other derived or source objects. In the databases 302 and 304, the records a2 and d2 of the first database 302 and the corresponding modified versions ã2 and {tilde over (d)}2 of the second database 304 may specify source objects. Records a3, d3, and d4 may depend on records a2 or d3 and specify derived objects.
The update package 300 may be obtained to include block numbers 2, 3, and 4 of the second database 304, which represent blocks of the second database 304 that differ from the corresponding blocks of the first database 302. A block update of the first database 302 may be performed by installing the update package 300. As an alternative, only those blocks of the first database 302 are updated that contain records specifying objects that are derived from or correspond to objects that are modified in the second database 304 with respect to the first database 302. If in the second database 304 a source object has been modified with respect to the first database 302, the block containing this source object is included in the update package. Not all of the objects contained in a block need to be compiled for the update procedure. Blocks including records that depend on modified records may be updated whether or not they include records specifying source objects that are modified in the second database 304 with respect to the first database 302.
If record ã2 of the second database 304 specifies an object representing a street with a modified attribute, such as a changed street name or a new traffic light, on a low level with tiles on a scale of hundreds of meters, â3 may be a record specifying the same street on a higher level of graphical representation with tiles on, for example, a kilometer scale. An update of a2 in the first database 302 may entail an update of a3 of the first database 302.
FIG. 4 is an exemplary process 400 for incrementally updating a block of a navigation database. During update of a navigation database, a database compiler may compile modified source objects (Act 402) and derived objects on which other derived objects may depend (Act 404). Derived objects may be compiled from at least some of the previously compiled source objects and derived objects (Act 406). The dependency relation introduced may be used for an incremental database compiling. As the database compiler has access to previously compiled derived objects, the compiler may scan all object dependencies, including dependencies on source objects or other derived objects, and rebuild only objects that depend on modified ones (either source objects or derived objects) to generate an update package. After completion of the compilation process an update package may be built that includes all rebuilt objects that depend on changed objects (Act 408).
FIG. 5 is an exemplary navigation system 500 including a processor 502 and a memory 504. The processor 502 may execute instructions stored in the memory 504 to control operation of the navigation system 500.
Although selected aspects, features, or components of the implementations are depicted as being stored in the memory 504, all or part of the systems, including the methods and/or instructions for performing such methods consistent with the navigation system 500, may be stored on, distributed across, or read from other computer-readable media, for example, secondary storage devices such as hard disks, floppy disks, and CD-ROMs; a signal received from a network; or other forms of ROM or RAM either currently known or later developed.
Specific components of the navigation system 500 may include additional or different components. The processor 502 may be implemented as a microprocessor, microcontroller, application specific integrated circuit (ASIC), discrete logic, or a combination of other types of circuits or logic. Similarly, the memory 504 may be DRAM, SRAM, Flash, or any other type of memory. Parameters (e.g., dependency information), databases, and other data structures may be separately stored and managed, may be incorporated into a single memory or database, or may be logically and physically organized in many different ways. Programs, processes, and instruction sets may be parts of a single program, separate programs, or distributed across several memories and processors.
The memory 504 may store a first navigation database 506. The first navigation database may include vehicle navigation, geographic, and/or other data related to digital maps. The processor 502 may obtain an update package 508 from a provider 510. The provider 510 may be a vendor and/or distributor of digital maps and other navigation related information. The processor 502 may execute instructions stored on the memory 504 to update the first navigation database 506 based on the update package 508.
The update package 508 may be generated based on differences between data blocks of the first navigation database 506 and a second navigation database 512. The second navigation database 512 may be a modified version of the first navigation database 506, such as a new release of the first navigation database that provides up-to-date navigation, geographic, and/or other information or data related to digital maps. The provider 510 may include a copy of the first navigation database 506 to compare with the second navigation database 512 to generate the update package 508. In an alternative, the provider 510 may transmit the second navigation database 512 to the navigation system 500 and the processor 502 may execute instructions stored on the memory 504 to generate an update package. The memory 504 may store a compiler program to compile objects of the first and/or second navigation databases 506 and 512.
The disclosed methods, processes, programs, and/or instructions may be encoded in a signal bearing medium, a computer-readable medium such as a memory, programmed within a device such as on one or more integrated circuits, or processed by a controller or a computer. If the methods are performed by software, the software may reside in a memory resident to or interfaced to a communication interface, or non-volatile or volatile memory. The memory may include an ordered listing of executable instructions for implementing logical functions. A logical function may be implemented through digital circuitry, through source code, through analog circuitry, or through an analog source such as an analog electrical, audio, or video signal. The software may be embodied in any computer-readable or signal-bearing medium for use by, or in connection with, an instruction executable system, apparatus, or device. Such a system may include a computer-based system, a processor-containing system, or another system that may selectively fetch instructions from an instruction-executable system, apparatus, or device that may also execute instructions.
A “computer-readable medium,” “machine-readable medium,” “propagated-signal medium,” and/or “signal-bearing medium” may comprise any medium that contains, stores, communicates, propagates, or transports software for use by or in connection with an instruction-executable system, apparatus, or device. The computer-readable medium may selectively be, but not limited to, an electronic, magnetic, optical, electromagnetic, infrared, or semiconductor system, apparatus, device, or a propagation medium. A non-exhaustive list of examples of a computer-readable medium include: an electrical connection electronic having one or more wires, a portable magnetic or optical disk, a volatile memory such as a Random Access Memory “RAM,” a Read-Only Memory “ROM,” an Erasable Programmable Read-Only Memory (EPROM or Flash memory), or an optical fiber. A computer-readable medium may also include a tangible medium upon which software is printed, as the software may be electronically stored as an image or in another format (e.g., through an optical scan), then compiled and/or interpreted or otherwise processed. The processed medium may then be stored in a computer and/or machine memory.
While various embodiments of the invention have been described, it will be apparent to those of ordinary skill in the art that many more embodiments and implementations are possible within the scope of the invention. Accordingly, the invention is not to be restricted except in light of the attached claims and their equivalents.

Claims (22)

I claim:
1. A method for updating a first navigation database,
comprising:
compiling source objects stored as records in blocks of the first navigation database to generate derived objects of the first navigation database, the source objects including objects at a lowest organizational level of a map and derived objects including objects derived from source objects at a higher organizational level;
compiling a subset of source objects of a second navigation database to generate derived objects of the second database, where the source objects of the second navigation database are stored as records in blocks corresponding to the blocks of the first navigation database, and where the subset includes source objects of the second navigation database that differ from the corresponding source objects specified in the first navigation database;
comparing the blocks of the first navigation database having the derived objects of the first navigation database with the corresponding blocks of the second navigation database having the derived objects of the second navigation database to determine blocks of the second navigation database that differ from the corresponding blocks of the first navigation database; and
generating an update package for the first navigation database comprising the blocks of the second navigation database that differ from the corresponding blocks of the first navigation database;
after the step of compiling the source objects of the first navigation database, grouping the source objects and the derived objects of the first navigation database in blocks of the first navigation database; and
after the step of compiling the source objects of the second navigation database, grouping the source objects and the derived objects of the second navigation database in blocks of the second navigation database;
where the first navigation database comprises dependency information associated with the derived objects of the first navigation database;
where the dependency information comprises information about dependencies of the derived objects on source objects or on other derived objects.
2. The method of claim 1, further comprising:
identifying any source objects of the first navigation database that do not correspond to any source objects of the second navigation database; and
compiling the source objects of the first navigation database that do not correspond to any source objects of the second navigation database.
3. The method of claim 1, where most of the source objects of the first navigation database are compiled to generate the derived objects of the first navigation database.
4. The method of claim 1, where each object is identified with a physical object ID comprising a block number associated with each block and a record number associated with each record of each block.
5. The method of claim 4, where references between objects of the first and second databases are identified by a logical object ID comprising a logical, block number and a logical record number.
6. The method of claim 4, further comprising updating the first navigation database based on the update package.
7. The method of claim 6, further comprising, if the update package comprises a number of blocks equal to the number of blocks of the first navigation database, setting each physical object ID to equal the logical object ID after updating the first navigation database.
8. The method of claim 1, further comprising determining which blocks of the second navigation database to compile based on user preferences.
9. A navigation system comprising:
a processor;
a first navigation database having blocks that include records specifying an object of the first navigation database, where each block comprises at least one record that specifies a source object;
a memory coupled to the processor, the memory having instructions stored on the memory that, when executed, cause the processor to:
compile the source objects of the first navigation database to generate derived objects of the first navigation database, the source objects including objects at a lowest organizational level of a map and derived objects including objects derived from source objects at a higher organizational level;
compile a subset of source objects of a second navigation database that includes blocks of records specifying source objects where the blocks correspond to the blocks of the first navigation database, the subset including source objects of the second navigation database that differ from the corresponding source objects specified in the first navigation database, where compiling the subset of source objects generates derived objects of the second navigation database;
group the source objects and the derived objects of the first navigation database in data blocks of the first navigation database;
group the source objects and the derived objects of the second navigation database in data blocks of the second navigation database;
compare the data blocks of the first navigation database with the data blocks of the second navigation database;
identify data blocks of the second navigation database that differ from the corresponding blocks of the first navigation database;
generate an update package based on the data blocks of the second navigation database that differ from the corresponding data blocks of the first navigation database; and
update the first navigation database based on the update package;
where the first navigation database comprises dependency information associated with the derived objects of the first navigation database;
where the dependency information comprises information about dependencies of the derived objects on source objects or on other derived objects.
10. The system of claim 9, the memory further comprising user preferences.
11. The system of claim 10, where the instructions that cause the processor to generate the update package comprise instructions that, when executed, cause the processor to customize the update package based on the user preferences.
12. The system of claim 9, where the first navigation database comprises dependency information associated with the derived objects of the first navigation database.
13. The system of claim 11, where the dependency information comprises information about dependencies of the derived objects on source objects or on other derived objects.
14. The system of claim 9, the memory further comprising instructions that, when executed, cause the processor to:
identify source objects of the first navigation database that do not comprise a corresponding source object in the second navigation database; and
compile the source objects of the first navigation database identified as not comprising a corresponding source object in the second navigation database.
15. A product comprising:
a non-transitory computer readable medium; and
instructions stored on the medium that, when executed, cause a processor in a vehicle navigation system to:
compile the source objects of a first navigation database to generate derived objects of the first navigation database, the source objects including objects at a lowest organizational level of a map and derived objects including objects derived from source objects at a higher organizational level;
identify a subset of source objects specified in a second navigation database that correspond to source objects specified in the first navigation database, the subset having source objects that differ from corresponding source objects specified in the first navigation database;
compile the subset of source objects of the second navigation database to generate derived objects of the second navigation database and to generate dependency information of the first navigation database;
identify, based on dependency information, the derived objects of the first navigation database that differ from the corresponding derived objects of the second navigation database;
group the source objects and the derived objects that differ from the corresponding derived objects of the second navigation database in data blocks of the first navigation database;
group the source objects and the derived objects of the second navigation database in data blocks of the second navigation database;
compare the data blocks of the first navigation database with the data blocks of the second navigation database;
identify data blocks of the second navigation database that differ from the corresponding blocks of the first navigation database;
generate an update package based on the blocks of the second navigation database that differ from the corresponding blocks of the first navigation database; and
update the first navigation database based on the update package;
where the first navigation database comprises dependency information associated with the derived objects of the first navigation database;
where the dependency information comprises information about dependencies of the derived objects on source objects or on other derived objects.
16. The product of claim 15, where the instructions stored on the computer-readable medium, when executed, further cause the processor in a navigation system to determine which blocks of the second navigation database to compile based on user preferences.
17. The product of claim 15, where the instructions stored on the computer-readable medium, when executed, further cause the processor in a navigation system to:
identify any source objects of the first navigation database that do not correspond to any source objects of the second navigation database; and
compile the source objects of the first navigation database that do not correspond to any source objects of the second navigation database.
18. The product of claim 15, the computer-readable medium further comprising a physical object ID comprising a block number associated with each block and a record number associated with each record of each block.
19. The product of claim 18, where references between objects of the first and second databases are identified by a logical object ID comprising a logical block number and a logical record number, and where the instructions stored on the computer-readable medium, when executed, further cause the processor in a navigation system to set each physical object ID to equal the logical object ID after updating the first navigation database.
20. A system for generating an update package for a navigation system having a navigation database, the system comprising:
a processor;
a first parent database, the navigation database comprising a copy of the first parent database;
a second parent database reflecting modifications to the first parent database, where each of the first and second parent databases comprise blocks of records, each block having at least one record that specifies a source object at a lowest organizational level of a map, and where each block of the second parent database corresponds to a block of the first parent database; and
a memory coupled to the processor, the memory comprising:
instructions stored on the memory that, when executed, cause the processor to:
compile one or more of the source objects of the first parent database to generate derived objects of the first parent database and to generate dependency information, the derived objects include objects at a higher organizational level of a map derived from source objects;
compile one or more of the source objects of the second parent database to generate derived objects of the second parent database;
identify, based on the dependency information, derived objects of the first parent database that differ from the corresponding derived objects of the second parent database;
group the source objects and the derived objects that differ from the corresponding derived objects of the second parent database in data blocks of the first parent database;
group the source objects and the derived objects of the second parent database in data blocks of the second parent database;
compare the data blocks of the first parent database with the data blocks of the second parent database
identify data blocks of the second parent database that differ from the corresponding blocks of the first parent database;
generate an update package based on the blocks of the second parent database that differ from the corresponding blocks of the first parent database; and
transmit the update package to the navigation system;
where the first navigation database comprises dependency information associated with the derived objects of the first navigation database;
where the dependency information comprises information about dependencies of the derived objects on source objects or on other derived objects.
21. The system of claim 20, where the instructions that, when executed, cause the processor to transmit the update package to the navigation system comprises instructions that, when executed, cause the processor to transmit the update package via the Internet.
22. The system of claim 20, where the instructions that, when executed, cause the processor to transmit the update package to the navigation system comprises instructions that, when executed, cause the processor to:
store the update package on a non-transitory computer-readable medium; and
transmit the computer-readable medium to the navigation system.
US11/971,548 2007-01-10 2008-01-09 System for updating a navigation database Active 2030-03-21 US8886599B2 (en)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
EP07000468.4 2007-01-10
EP07000468 2007-01-10
EP07000468.4A EP1944702B1 (en) 2007-01-10 2007-01-10 Updatable navigation database

Publications (2)

Publication Number Publication Date
US20090024656A1 US20090024656A1 (en) 2009-01-22
US8886599B2 true US8886599B2 (en) 2014-11-11

Family

ID=37909688

Family Applications (1)

Application Number Title Priority Date Filing Date
US11/971,548 Active 2030-03-21 US8886599B2 (en) 2007-01-10 2008-01-09 System for updating a navigation database

Country Status (6)

Country Link
US (1) US8886599B2 (en)
EP (1) EP1944702B1 (en)
JP (1) JP2008171429A (en)
KR (2) KR101518730B1 (en)
CN (1) CN101226544B (en)
CA (1) CA2616747C (en)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9518830B1 (en) 2011-12-28 2016-12-13 Intelligent Technologies International, Inc. Vehicular navigation system updating based on object presence
US20180039665A1 (en) * 2016-08-04 2018-02-08 Here Global B.V. Reducing size of update package data for navigation databases
US9970771B2 (en) * 2016-02-03 2018-05-15 Here Global B.V. Navigational database update package

Families Citing this family (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2518443B1 (en) * 2011-04-29 2016-06-08 Harman Becker Automotive Systems GmbH Method of generating a database, navigation device and method of determining height information
US8892355B2 (en) 2011-12-21 2014-11-18 Telenav, Inc. Navigation system with point of interest validation mechanism and method of operation thereof
US11216159B2 (en) 2012-10-08 2022-01-04 Fisher-Rosemount Systems, Inc. Configuration element for graphic elements
CN104903799B (en) 2012-10-08 2018-05-22 费希尔-罗斯蒙特系统公司 Configurable user in Process Control System shows
US11774927B2 (en) 2012-10-08 2023-10-03 Fisher-Rosemount Systems, Inc. Methods and apparatus to provide a role-based user interface
DE102013209168A1 (en) * 2013-05-17 2014-11-20 Bayerische Motoren Werke Aktiengesellschaft Method for operating a navigation system, navigation system and motor vehicle
US10169370B2 (en) * 2013-06-14 2019-01-01 Here Global B.V. Navigation database customization
US10049129B2 (en) * 2014-12-22 2018-08-14 Here Global B.V. Method and apparatus for providing map updates from distance based bucket processing
CN105653513B (en) * 2015-12-30 2019-10-11 北京农信互联科技有限公司 A kind of list input method and system based on pig farm management
US11281700B2 (en) * 2016-02-01 2022-03-22 Global Software Innovation Pty Ltd Graph-based operations on an entity-relationship database
US9863774B2 (en) 2016-05-06 2018-01-09 Here Global B.V. Stitching mixed-version map tiles in hybrid navigation for partial map updates
US10378909B2 (en) 2016-05-06 2019-08-13 Here Global B.V. Stitching mixed-version map tiles in hybrid navigation for partial map updates
US10282365B2 (en) 2016-06-23 2019-05-07 Here Global B.V. Reducing changes to a compiled database
US10451429B2 (en) * 2016-08-04 2019-10-22 Here Global B.V. Generalization factor based generation of navigation data

Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH11272596A (en) 1998-03-20 1999-10-08 Nri & Ncc Co Ltd Client server system to provide and utilize self-description data
US6018695A (en) 1996-01-26 2000-01-25 Navigation Technologies Corporation System and method for distributing information for storage media
US20020073067A1 (en) * 1996-04-25 2002-06-13 Mcgrath Timothy Update method for geographic databases
JP2002221421A (en) 2001-01-29 2002-08-09 Mitsubishi Electric Corp System for processing map information and medium for storing map information
JP2002296042A (en) 2001-03-30 2002-10-09 Matsushita Electric Ind Co Ltd Map difference updating device
US20040104842A1 (en) * 1997-08-19 2004-06-03 Siemens Vdo Automotive Corporation, A Delaware Corporation Driver information system
US20050192950A1 (en) * 2004-02-26 2005-09-01 Xanavi Informatics Corporation Update system and update method for updating search data
JP2005283880A (en) 2004-03-29 2005-10-13 Sanyo Electric Co Ltd Map update device and map update method in navigation system
JP2006155375A (en) 2004-11-30 2006-06-15 Fujitsu Ltd Difference file creation program and difference file distribution program
US20070156759A1 (en) * 2005-12-15 2007-07-05 Minoru Sekine Map data update method and navigation apparatus

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3779789B2 (en) * 1997-01-31 2006-05-31 株式会社ルネサステクノロジ Semiconductor device and manufacturing method thereof
US7082443B1 (en) * 2002-07-23 2006-07-25 Navteq North America, Llc Method and system for updating geographic databases
US7099882B2 (en) * 2003-04-29 2006-08-29 Navteq North America, Llc Method and system for forming, updating, and using a geographic database
JP4467965B2 (en) 2003-12-08 2010-05-26 株式会社野村総合研究所 Differential file creation program and method

Patent Citations (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6018695A (en) 1996-01-26 2000-01-25 Navigation Technologies Corporation System and method for distributing information for storage media
US6289276B1 (en) * 1996-01-26 2001-09-11 Navigation Technologies Corporation System and method for distributing information for storage media
US20020073067A1 (en) * 1996-04-25 2002-06-13 Mcgrath Timothy Update method for geographic databases
US20040104842A1 (en) * 1997-08-19 2004-06-03 Siemens Vdo Automotive Corporation, A Delaware Corporation Driver information system
JPH11272596A (en) 1998-03-20 1999-10-08 Nri & Ncc Co Ltd Client server system to provide and utilize self-description data
JP2002221421A (en) 2001-01-29 2002-08-09 Mitsubishi Electric Corp System for processing map information and medium for storing map information
JP2002296042A (en) 2001-03-30 2002-10-09 Matsushita Electric Ind Co Ltd Map difference updating device
US20050192950A1 (en) * 2004-02-26 2005-09-01 Xanavi Informatics Corporation Update system and update method for updating search data
JP2005283880A (en) 2004-03-29 2005-10-13 Sanyo Electric Co Ltd Map update device and map update method in navigation system
JP2006155375A (en) 2004-11-30 2006-06-15 Fujitsu Ltd Difference file creation program and difference file distribution program
US20070156759A1 (en) * 2005-12-15 2007-07-05 Minoru Sekine Map data update method and navigation apparatus

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
Korean Office Action, Jan. 14, 2014.

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9518830B1 (en) 2011-12-28 2016-12-13 Intelligent Technologies International, Inc. Vehicular navigation system updating based on object presence
US9677893B2 (en) 2011-12-28 2017-06-13 Intelligent Technologies International, Inc. Vehicular navigation system updating based on object presence/absence
US10048076B2 (en) 2011-12-28 2018-08-14 Intelligent Technologies International, Inc. On-board vehicular monitoring system
US9970771B2 (en) * 2016-02-03 2018-05-15 Here Global B.V. Navigational database update package
US20180039665A1 (en) * 2016-08-04 2018-02-08 Here Global B.V. Reducing size of update package data for navigation databases
US10762073B2 (en) * 2016-08-04 2020-09-01 HERE Global, B.V. Reducing size of update package data for navigation databases

Also Published As

Publication number Publication date
CN101226544B (en) 2012-10-24
KR20080065925A (en) 2008-07-15
EP1944702B1 (en) 2018-07-25
CN101226544A (en) 2008-07-23
CA2616747C (en) 2016-11-01
JP2008171429A (en) 2008-07-24
EP1944702A1 (en) 2008-07-16
KR101518730B1 (en) 2015-05-08
US20090024656A1 (en) 2009-01-22
KR20150018614A (en) 2015-02-23
CA2616747A1 (en) 2008-07-10

Similar Documents

Publication Publication Date Title
US8886599B2 (en) System for updating a navigation database
US8249801B2 (en) Navigation device and map data updating method thereof
JP4409431B2 (en) Navigation method, navigation device, and computer program
US7403851B2 (en) Method of operating a navigation system to report effects of updated portions of a geographic database
JP4897516B2 (en) Navigation device and data update system
KR101099071B1 (en) Map update server, map update system, and car navigation system
EP2795256B1 (en) Methods for facilitating searching of points of interest along a route
US9015200B2 (en) Map update scripts with tree edit operations
US8700330B2 (en) Vehicle navigation device and method
JP3842799B2 (en) Map data providing device
JP2006308579A (en) Method of organizing map data for affinity, and application for use thereof
JP2011158339A (en) Map update data supply device and map update data supply program
WO2014171110A1 (en) Map difference data delivery system, map difference data delivery device, map data holding device, update management server, and map difference extraction server
JPH10228400A (en) High-speed file system
US9243926B2 (en) Electronic map system
US9835461B2 (en) Database management using format description
JP4892921B2 (en) NAVIGATION DEVICE, MAP INFORMATION UPDATE METHOD, AND MAP INFORMATION UPDATE PROGRAM
US20140372487A1 (en) Navigation database customization
US8117041B1 (en) Method of using map data that has been organized for affinity relationships

Legal Events

Date Code Title Description
AS Assignment

Owner name: HARMAN BECKER AUTOMOTIVE SYSTEMS GMBH, GERMANY

Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:WELLMANN, HARALD;REEL/FRAME:021611/0207

Effective date: 20060313

AS Assignment

Owner name: JPMORGAN CHASE BANK, N.A., AS ADMINISTRATIVE AGENT

Free format text: SECURITY AGREEMENT;ASSIGNOR:HARMAN BECKER AUTOMOTIVE SYSTEMS GMBH;REEL/FRAME:024733/0668

Effective date: 20100702

AS Assignment

Owner name: HARMAN BECKER AUTOMOTIVE SYSTEMS GMBH, CONNECTICUT

Free format text: RELEASE;ASSIGNOR:JPMORGAN CHASE BANK, N.A., AS ADMINISTRATIVE AGENT;REEL/FRAME:025795/0143

Effective date: 20101201

Owner name: HARMAN INTERNATIONAL INDUSTRIES, INCORPORATED, CON

Free format text: RELEASE;ASSIGNOR:JPMORGAN CHASE BANK, N.A., AS ADMINISTRATIVE AGENT;REEL/FRAME:025795/0143

Effective date: 20101201

AS Assignment

Owner name: JPMORGAN CHASE BANK, N.A., AS ADMINISTRATIVE AGENT

Free format text: SECURITY AGREEMENT;ASSIGNORS:HARMAN INTERNATIONAL INDUSTRIES, INCORPORATED;HARMAN BECKER AUTOMOTIVE SYSTEMS GMBH;REEL/FRAME:025823/0354

Effective date: 20101201

AS Assignment

Owner name: HARMAN INTERNATIONAL INDUSTRIES, INCORPORATED, CON

Free format text: RELEASE;ASSIGNOR:JPMORGAN CHASE BANK, N.A., AS ADMINISTRATIVE AGENT;REEL/FRAME:029294/0254

Effective date: 20121010

Owner name: HARMAN BECKER AUTOMOTIVE SYSTEMS GMBH, CONNECTICUT

Free format text: RELEASE;ASSIGNOR:JPMORGAN CHASE BANK, N.A., AS ADMINISTRATIVE AGENT;REEL/FRAME:029294/0254

Effective date: 20121010

STCF Information on status: patent grant

Free format text: PATENTED CASE

MAFP Maintenance fee payment

Free format text: PAYMENT OF MAINTENANCE FEE, 4TH YEAR, LARGE ENTITY (ORIGINAL EVENT CODE: M1551)

Year of fee payment: 4

MAFP Maintenance fee payment

Free format text: PAYMENT OF MAINTENANCE FEE, 8TH YEAR, LARGE ENTITY (ORIGINAL EVENT CODE: M1552); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY

Year of fee payment: 8