IP Library Granted Patent US 8,886,599
Granted Patent B2
US 8,886,599 · App. 11/971,548 · Granted Nov 11, 2014

System for updating a navigation database

View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 8,886,599
App. No.
11/971,548
Granted
Nov 11, 2014
Kind
B2
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.

Claims (82)

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.

Assignments (5)
RELEASE Recorded Nov 14, 2012
From: JPMORGAN CHASE BANK, N.A., AS ADMINISTRATIVE AGENT
To: HARMAN INTERNATIONAL INDUSTRIES, INCORPORATED; HARMAN BECKER AUTOMOTIVE SYSTEMS GMBH
Reel/Frame 029294/0254 →
SECURITY AGREEMENT Recorded Feb 17, 2011
From: HARMAN INTERNATIONAL INDUSTRIES, INCORPORATED; HARMAN BECKER AUTOMOTIVE SYSTEMS GMBH
To: JPMORGAN CHASE BANK, N.A., AS ADMINISTRATIVE AGENT
Reel/Frame 025823/0354 →
RELEASE Recorded Feb 15, 2011
From: JPMORGAN CHASE BANK, N.A., AS ADMINISTRATIVE AGENT
To: HARMAN INTERNATIONAL INDUSTRIES, INCORPORATED; HARMAN BECKER AUTOMOTIVE SYSTEMS GMBH
Reel/Frame 025795/0143 →
SECURITY AGREEMENT Recorded Jul 26, 2010
From: HARMAN BECKER AUTOMOTIVE SYSTEMS GMBH
To: JPMORGAN CHASE BANK, N.A., AS ADMINISTRATIVE AGENT
Reel/Frame 024733/0668 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 30, 2008
From: WELLMANN, HARALD
To: HARMAN BECKER AUTOMOTIVE SYSTEMS GMBH
Reel/Frame 021611/0207 →