Search Images Maps Play YouTube News Gmail Drive More »
Sign in
Screen reader users: click this link for accessible mode. Accessible mode has the same essential features but works better with your reader.

Patents

  1. Advanced Patent Search
Publication numberUSRE41983 E1
Publication typeGrant
Application numberUS 12/198,047
Publication dateDec 7, 2010
Filing dateAug 25, 2008
Priority dateSep 22, 2000
Fee statusPaid
Also published asUS6703947, USRE40466
Publication number12198047, 198047, US RE41983 E1, US RE41983E1, US-E1-RE41983, USRE41983 E1, USRE41983E1
InventorsAlfred M. Wallner
Original AssigneeTierravision, Inc.
Export CitationBiBTeX, EndNote, RefMan
External Links: USPTO, USPTO Assignment, Espacenet
Method of organizing and compressing spatial data
US RE41983 E1
Abstract
A method for organizing and compressing spatial data to enable fast, incremental downloads of spatial data over a network. The method comprises multiple steps for segmenting and reducing spatial data, and introduces a location-relevant naming system for storing and accessing the data. Applications installed on remote devices are able to efficiently compute data file names based solely on location information, download the data over a network and cache the data on the device.
Images(4)
Previous page
Next page
Claims(85)
1. A method for organizing spatial data comprising the steps of:
a) parsing the spatial data into a plurality of packets;
b) segmenting the packets;
c) reducing a size of the packets by eliminating at least one data point from at least one display element by applying an angle comparison between an adjacent display element, wherein the at least one data point is eliminated if an angle between the at least one display element and the adjacent display element is about 180; and
d) generating a name for each of the packets.
2. The method of claim 1, wherein the spatial data comprises topographic information comprising a plurality of elements containing geodetic coordinates.
3. The method of claim 1, wherein the step of parsing the spatial data comprises:
selecting at least one entity within the data, the entity selected from a group consisting of: a road, a railway, an airport, a river, a lake, a shore line, a park, an entity comprising a geometric shape, and an entity comprising a substantially rectangular shape.
4. The method of claim 1, wherein the step of parsing the spatial data comprises:
generating a substantially rectangular element comprising about 1 longitude and about latitude.
5. The method of claim 1, wherein the step of parsing the spatial data comprises: separating a topographic element from an attribute element;
wherein the topographic element comprises elements expressed using a geodetic coordinate system; and
the attribute element is related to the topographic element.
6. The method of claim 1, wherein the step of segmenting the packets comprises:
dividing the packets into at least one element, the element selected from a group consisting of: an 88 grid, a 6464 grid, a substantially rectangular grid comprising about 1 longitude and about latitude, and a substantially rectangular grid comprising about ⅛ longitude and about 1/16 latitude.
7. The method of claim 1, wherein the step of reducing the size of the segmented packets comprises:
eliminating elements selected from a group consisting of: a polygon, a lake, a geographic area, a topographic element and an attribute element.
8. The method of claim 1, wherein the step of reducing the size of the segmented packets comprises:
eliminating a plurality of data points from a topographic element.
9. The method of claim 1, wherein the step of reducing the size of the segmented packets comprises:
transforming a geodetic coordinate from a real number to an integer number, wherein the integer number ranges from about 0 to about 65535.
10. The method of claim 1, wherein the step of reducing the size of the segmented packets comprises:
eliminating a plurality of data points from at least one topographic element by applying an angle comparison between an adjacent topographic element line, wherein at least one data point is eliminated if an angle between the at least one topographic element and the adjacent topographic element line is about 180.
11. The method of claim 1, wherein the step of generating the name for each of the packets comprises the step of generating a location-relevant naming system.
12. The method of claim 1, wherein the step of generating the name for each of the packets comprises the step of generating a location-relevant naming system, wherein the packet name comprises location information representing an offset from an earth origin.
13. The method of claim 12, wherein the earth origin is selected from a group consisting of: a North Pole, and a location other than the North Pole.
14. The method of claim 1, further including the step of: repeating any one of steps a, b, c and d to process an entire spatial database.
15. A method for displaying a map, the method comprising the steps of:
obtaining information relating to a location;
calculating at least one packet name;
determining a data level;
displaying the map; and
caching at least one packet until an amount of computer storage space is filled, and
determining which packets should be replaced.
16. The method of claim 15, wherein the step of calculating the at least one packet name comprises:
computing the at least one data packet name using a geodetic coordinate.
17. The method of claim 15, wherein the step of calculating the at least one packet name comprises:
calculating a request location; and
using the request location to calculate the at least one packet name.
18. The method of claim 15, wherein the step of calculating the at least one packet name comprises:
computing four adjacent data packet names;
fetching the packets from a server; and
combining an information contained in the packets to generate a map.
19. The method of claim 15, wherein the step of determining the data level comprises:
determining a resolution level selected from a group consisting of: an address, a city, a zip code and a building floor plan.
20. The method of claim 15, further including the step of:
caching at least one data packet until an amount of computer storage space is filled, and
determining which packets should be replaced.
21. The method of claim 15, further including the step of:
checking a local cache before requesting a data packet from a remote device.
22. A method for organizing spatial data comprising the steps of:
a) means for parsing the spatial data into a plurality of packets;
b) means for segmenting the packets;
c) means for reducing a size of the packets by eliminating at least one data point from at least one display element by applying an angle comparison between an adjacent display element, wherein the at least one data point is eliminated if an angle between the at least one display element and the adjacent display element is about 180; and
d) means for generating a name for each of the packets.
23. A method of processing map data in conjunction with a portable computing device having a wireless transceiver for data network communication, comprising:
computing a map data structure name based on location information or user interactions;
downloading the map data structure over a network onto the portable computing device via the corresponding data structure name;
caching the map data from the map data structure on the portable computing device;
generating a plurality of map images based on at least one of a zip code, address, or geographic location; and
transmitting the map images via the wireless data network to the portable computing device.
24. The method of claim 23, additionally comprising:
combining map data from a plurality of map data files to produce an in-memory map image; and
rendering the map image on a display screen of the portable computing device.
25. The method of claim 23, wherein the map data structure comprises a file and the data structure name comprises a file name.
26. The method of claim 23, wherein the portable computing device includes a server-independent map display capability based on GPS location input.
27. The method of claim 23, additionally comprising updating of dynamic location-based content without having to retransmit redundant map data.
28. The method of claim 23, additionally comprising enabling automatic map centering in conjunction with a plurality of map segments.
29. The method of claim 28, wherein the map segments are stored in the device cache.
30. The method of claim 28, wherein the map segments are downloaded from the network.
31. The method of claim 23, additionally comprising storing a spatial database of map data comprising geographic information in the form of polygons, lines, and/or points.
32. The method of claim 31, wherein the geographic information is expressed in a geographic coordinate system.
33. The method of claim 31, wherein the spatial database further comprises a set of attributes related to the geographic data entries.
34. The method of claim 23, additionally comprising optimizing data sets on the map data for map display functionality.
35. The method of claim 31, additionally comprising parsing the spatial database and extracting all the data for a predetermined set of features and geographic area.
36. The method of claim 35, wherein the predetermined geographic area is a rectangle of 1 longitude and 0.5 latitude.
37. The method of claim 35, additionally comprising segmenting the parsed data into geographic components and attribute components.
38. The method of claim 37, wherein the segmenting is recursively performed a plurality of times.
39. The method of claim 37, wherein the segmenting includes dividing the area into a grid.
40. The method of claim 23, wherein the portable computing device comprises at least one of a wireless phone or wireless enabled PDA.
41. A method of processing map data, comprising:
recursively segmenting map data into a plurality of map segments;
computing a map data structure name for each map segment, wherein the data structure name comprises geographic-based coordinates and wherein the data structure name comprises a filename; and
storing each segment into a data structure comprising a file having a respective map data structure name.
42. A method to reduce data in a digital map, comprising:
completely suppressing selected geographic features; and
reducing the resolution of the remaining geographic features,
wherein the reducing comprises eliminating every other data point, provided that the angle between the two lines connecting the point to its adjacent points does not exceed a predetermined angle.
43. The method of claim 42, wherein the selected geographic features include secondary roads.
44. The method of claim 42, wherein the remaining geographic features include primary roads.
45. The method of claim 42, wherein the elimination of data points does not significantly change the overall shape of the road.
46. A system for reducing data in a digital map, comprising:
means for completely suppressing selected geographic features; and
means for reducing the resolution of the remaining geographic features,
wherein the reducing comprises eliminating every other data point, provided that the angle between the two lines connecting the point to its adjacent points does not exceed a predetermined angle.
47. The system of claim 46, wherein the selected geographic features include secondary roads.
48. The system of claim 46, wherein the remaining geographic features include primary roads.
49. The system of claim 46, wherein the elimination of data points does not significantly change the overall shape of the road.
50. A computer readable storage medium having stored thereon instructions that when executed by a computer processor perform a method of reducing data in a digital map, the method comprising:
completely suppressing selected geographic features; and
reducing the resolution of the remaining geographic features, wherein the reducing comprises eliminating every other data point, wherein the elimination of data points does not significantly change the overall shape of the road.
51. The method of claim 50, wherein the selected geographic features include secondary roads.
52. The method of claim 50, wherein the remaining geographic features include primary roads.
53. The method of claim 50, wherein the reducing comprises eliminating every other data point, provided that the angle between the two lines connecting the point to its adjacent points does not exceed a predetermined angle.
54. A method of assigning names to digital map segments, comprising:
segmenting a digital map into a plurality of segments;
converting geodetic data points from real numbers to integer numbers; and
storing each segment in a data structure comprising a file and having a name comprising data point offset values.
55. The method of claim 54, wherein the geodetic coordinates are all positive integers.
56. The method of claim 55, wherein the geodetic coordinates are arranged according to the North Pole being at ( 0, 0 ), the South Pole being at ( 360, 360 ).
57. A system for assigning names to digital map segments, comprising:
a data segmentation module configured to segment a digital map into a plurality of segments;
an integer conversion module configured to convert geodetic data points from real numbers to integer numbers; and
a database configured to store each segment in a data structure comprising a file and having a name comprising data point offset values.
58. The system of claim 57, wherein the geodetic coordinates are all positive integers.
59. The system of claim 57, wherein the geodetic coordinates are arranged according to the North Pole being at ( 0, 0 ) and the South Pole being at ( 360, 360 ).
60. A map display system operating in conjunction with a portable wireless device, comprising:
an input interface layer handling communication between a user and the device and being configured to capture user input position information;
a geocoding engine, residing on a server, configured to:
receive user input position information from the portable wireless device;
compute a geodetic coordinate from the user input position information; and
transmit the geodetic coordinate to the portable wireless device; and
a map display engine configured to use the geodetic coordinates to generate a plurality of data structure names and request the data structures from a map segment server.
61. The map display system of claim 60, wherein at least one of the plurality of data structures comprises a file.
62. The map display system of claim 60, wherein the map display engine is further configured to display a map image indicative of the data in the data structures.
63. The map display system of claim 62, wherein the map picture is centered on a display on the portable wireless device.
64. The map display system of claim 62, wherein the map image comprises a slightly zoomed-in map image, which is centered at the geodetic coordinate.
65. The map display system of claim 60, wherein the user input position information comprises at least one of an address, a city, a zip code, location information, point of interest, or a start/end point of a trip.
66. The map display system of claim 60, wherein the user input position information comprises text.
67. The map display system of claim 60, wherein the user input position information comprises voice data.
68. The map display system of claim 60, additionally comprising a GPS interface to provide geographic position information for display without access to the geocoding engine.
69. A method of operating a map display system in conjunction with a portable wireless device, comprising:
receiving user input position information from the portable wireless device;
computing a geodetic coordinate from the user input position information;
generating a plurality of names based on the geodetic coordinates; and
transmitting a data structure comprising map data associated with the geodetic coordinate and associated with the respective data structure names from a map segment server.
70. The method of claim 69, wherein the data structure comprises a file.
71. The method of claim 69, further comprising:
displaying a map image indicative of data of the files, records, segments or strings.
72. The method of claim 71, the map image is centered on a display on the portable wireless device.
73. The method of claim 71, wherein the map image comprises a slightly zoomed-in map image which, when displayed, is centered at the geodetic coordinate.
74. The method of claim 69, wherein the user input position information comprises at least one of an address, a city, a zip code, location information, point of interest, or a start/end point of a trip.
75. The method of claim 69, wherein the user input geographic position information comprises text.
76. The method of claim 69, wherein the user input geographic position information comprises voice data.
77. The method of claim 69, additionally comprising receiving global positioning system (GPS) data to provide position information for display without access to the geocoding engine.
78. A method of caching digital map segments in a portable wireless device, comprising:
allocating a portion of memory for digital map segments in a cache;
executing a caching algorithm to manage the allocated cache; and
loading map data for rendering map images on a display from the cache if a particular digital map segment is stored in cache, otherwise requesting download of the particular digital map segment from a network.
79. The method of claim 78, wherein the caching algorithm uses a least frequently used technique to determine which map segments to discard when the allocated cache is full.
80. The method of claim 78, wherein the caching algorithm uses a last accessed technique to determine which map segments to discard when allocated cache is full.
81. A system for caching digital map segments in a portable wireless device, comprising:
a map display engine configured to:
allocate a portion of memory for digital map segments in a cache; and
execute a caching algorithm to manage the allocated cache, wherein the map display engine is further configured to load data for rendering an image on a display from the cache if a particular digital map segment is stored in the device, otherwise requesting download of the particular digital map segment from a network.
82. The system of claim 81, wherein the caching algorithm uses a least frequently used technique to decide which map segments to discard when the allocated cache is full.
83. The system of claim 81, wherein the caching algorithm uses a last accessed technique to decide which map segments to discard when the allocated cache is full.
84. The system of claim 81, wherein the map display engine is further configured to request download of a plurality of digital map segments adjacent to the particular digital map segment.
85. The method of claim 78, wherein requesting download of the particular map segment from the network is based on a data level of the particular map segment.
Description
RELATED APPLICATIONS

Notice: More than one reissue application has been filed for the reissue of U.S. Pat. No. 6,703,947. The reissue applications are U.S. application Ser. No. 11/006,471, and U.S. application Ser. No. 12/198,047, filed on Aug. 25, 2008 (the present application), which claims priority as a division of application Ser. No. 11/006,471 ).

BACKGROUND OF THE INVENTION

1. Field of the Invention

This invention relates to the field of optimization of spatial databases for functional purposes, and in particular to optimize spatial data to achieve minimal download data size for use with cartographic applications in a networked environment.

2. Discussion of Prior Art

A spatial database comprises topographic information in the form of shapes, lines and points encoded with geodetic coordinates, as well as sets of attributes further describing each form. Internet-based applications use the spatial database to generate bitmap images based on user input such as zip code or address on a server and transmit the map images to client devices. Bitmap-based solutions have numerous limitations, which are well known in the art. While prior art describe systems, which transfer vector data to client devices instead of bitmaps, bitmap solutions remain more efficient in terms of data transfer overhead. The initial download size of vector data is significant, and unless the user interacts repeatedly with the map, the total data amount of vector data is greater than the total data amount of bitmap images. Even if the user interacts frequently with the map and the total download size requirements for bitmap and vector data were about the same, most users prefer to have a number of shorter download wait times rather than one long download wait time. Therefore, except for a few non-mainstream applications, bitmap-based solutions are widely used in networked applications.

In navigation systems, a navigation application and spatial data are packaged and supplied as a complete system on a non-volatile storage medium. Said navigation systems may be installed in vehicles or in standalone devices. These navigation systems rely on significant computing resources such as powerful processors and large permanent storage capacities. Prior art introduces solutions, which use structuring and segmenting of spatial databases to improve data access times and navigational functionality. Said solutions are not applicable when computing resources are severely limited, as encountered on personal digital assistants and smartphones, on which one would want to have access to navigation capabilities and maps. Even when said resources are made available for car navigation systems, more powerful hardware results in higher cost for the system. More importantly still, since spatial data changes quite frequently, standalone car navigation systems will inevitably start producing out-of-date navigation instructions over time. It is therefore necessary to update the local database from time to time. Improved methods for updating said local databases have been introduced by prior art. Nevertheless, the requirement to repeatedly update data used by navigation systems remains a major inconvenience for both consumers as well as navigation system suppliers. Suppliers face substantial costs for creating and distributing the data in regular intervals, and any errors discovered after storing data sets on non-volatile media are costly to fix. To address the above problems, it is desirable to keep frequently changing spatial data on a central server and use wireless transmission networks to deliver navigation functionality to remote devices. Navigational functions such as route calculation and driving directions are performed on the server, making it also easier to integrate real-time road traffic condition data. Driving directions or maneuver instructions are text-based and relatively small in terms of data size, allowing for fairly quick wireless data transmission. On the other hand, the ability to provide graphical, cartographic map display introduces much larger data size overhead. Given the data transfer rates of wireless networks presently and during several years to come, users would experience unacceptably slow performance for map display functionality on remote devices.

The objective of this invention is to introduce a new spatial database system, which reduces the data size, makes it possible to download data in small increments as needed, and which can be used with applications such as navigation systems, for which vector-based functionality is needed.

SUMMARY OF THE INVENTION

The primary object of the invention is to provide a compressed spatial database system, which enables incremental and efficient download of spatial vector data over a network. Another object of the invention is to introduce a location-relevant naming system so that software running on network client devices can efficiently compute data segment file names depending on user interaction with a map or device-supplied location data (e.g. GPS). A third object of the invention is to enable combined online and offline operation capability of a digital map display system. Another object of the invention is to provide server-independent map display capability based on GPS location input. A further object of the invention is to introduce a system allowing updating of dynamic location content without having to retransmit redundant map data. Yet another object of the invention is to enable map centering despite using a segmented data system.

Other objects and advantages of the present invention will become apparent from the following descriptions, taken in connection with the accompanying drawings, wherein, by way of illustration and example, an embodiment of the present invention is disclosed.

In a preferred embodiment of the present invention, a method for organizing and compressing spatial data comprises the steps of parsing a spatial database, separating topographic from attribute information, segmenting the data into rectangles, eliminating subsets of the data points, further reducing the data size by converting the data from a real number format to an integer format, generating location-relevant file names for each of the rectangles and storing the files in permanent storage space. In accordance with a preferred embodiment of the present invention, map display client software computes data file names based on user interactions or device-supplied location information (GPS), fetches the computed file names from a remote server, combines data from several data files to produce an in-memory map image and draws the image on the display screen.

BRIEF DESCRIPTION OF THE DRAWINGS

The drawings constitute a part of this specification and include exemplary embodiments to the invention, which may be embodied in various forms. It is to be understood that in some instances various aspects of the invention may be shown exaggerated or enlarged to facilitate an understanding of the invention wherein:

FIG. 1 is a schematic block diagram illustrating the steps to generate a compressed spatial database;

FIG. 2 is a sample view of a road segment before and after applying a data size reduction algorithm;

FIG. 3 is a schematic block diagram illustrating the algorithms used for data conversion as well as data segment naming;

FIG. 4 is a schematic block diagram showing the different components and interactions of a network-based map display system;

FIG. 5 illustrates which file names are computed by the map display program given a geodetic coordinate;

DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS

Detailed descriptions of the preferred embodiment are provided herein. It is to be understood, however, that the present invention may be embodied in vanous forms. Therefore, specific details disclosed herein are not to be interpreted as limiting, but rather as a basis for the claims and as a representative basis for teaching one skilled in the art to employ the present invention in virtually any appropriately detailed system, structure or manner.

FIG. 1 shows the steps involved in organizing and compressing a spatial database 10. A spatial database comprises topographic information in the form of polygons, lines and points expressed in a geodetic coordinate system (longitude and latitude), and a set of attributes related to the topographic data entities. It is well known in the art that functions using spatial data such as routing or map display only require a subset of the entire data set. For instance, routing does not need to know about lakes and rivers, and map display does not need to know about road turn restrictions and speed limits. It is therefore possible to optimize data sets for use with a particular function. The purpose of this invention is to optimize the data set for map display functionality. The optimization process comprises a number of steps, which are described in more detail below. The initial step 11 consists of parsing the geographic database and extracting all the data for a pre-determined set of features and geographic area. The set of features comprises roads, railways, airports, rivers, lakes, shore lines, parks, points of interest and possibly others, depending how feature-rich the final map display is intended to be. In the preferred embodiment, the pre-determined geographic area is a rectangle of 1 longitude and 0.5 latitude, which will be referred to as a level 2 segment.

The parsed data from step 11 is segmented into topographic components and attribute components in step 12. Attribute information is highly redundant and is therefore an obvious compression target. Attribute information is consolidated using a simple attribute pointer or index mechanism. The topographic and attribute components are then further segmented based on location in two steps. In the preferred embodiment, the first segmentation evenly divides the area into an 88 grid. Each topographic data entity along with its attributes of each selected feature is assigned to one of the 64 segments. If the data entity is a polygon or a line and falls into several segments, the data entity is decomposed into two or more pieces using mathematical line and polygon splitting algorithms, and each piece is assigned to the correct segment. The resulting data segments are referred to as level 1 segments and are stored in non-volatile memory. Another segmentation is performed on the parsed data from step 11, this time dividing the area into a 6464 grid. The resulting 4096 data segments are referred to as level 0 data segments, which are also stored in non-volatile memory.

In step 13, reduction algorithms are performed on level 1 and level 2 data. In the preferred embodiment, level 1 data covers a geographic area of ⅛ longitude by 1/16 latitude. When a map picture is generated for such an area, it is neither desirable nor practical to show all the details, especially when the map picture is shown on a small screen. For instance, it is desirable to show only the main roads, while suppressing the smaller roads. The reduction algorithm used in the preferred embodiments takes these facts into consideration. Two types of data reductions are performed. First, some topographic features such as secondary roads are completely eliminated. Second, the resolution of the remaining topographic features is reduced. Many road data entities contain a number of data points, as shown in FIG. 2, which can be safely eliminated without affecting much the overall geometry of the line or polygon. For instance, the algorithm used in the preferred embodiment eliminates every other data point, provided that the angle between the two lines connecting the point to its adjacent points does not exceed n degrees. Block 20 in FIG. 2 shows a road segment consisting of data points 21 through 26. Block 27 in FIG. 2 shows the same road after two data points, 22 and 25, have been eliminated using the above algorithm. It should be obvious from this example that eliminating these data points did not significantly change the overall shape of the road. Furthermore, it should be noted that the map resolution at this level is fairly low, meaning that data points appearing on a display screen are very close together or even overlapping. Therefore, eliminating data points as described will have no effect on what the viewer sees. After processing all 64 level 1 data files in this way, the level 2 data file is processed in similar fashion. Even more topographic features are completely eliminated. For instance, all roads except for freeways and highways are eliminated, as well as parks, points of interest and possibly other features. Resolution of the remaining topographic features is reduced even further than for level 1 data, for instance by applying the algorithm several times to the data set.

Integer conversion as referred to in block 15 of FIG. 1 has two advantages. It reduces the data size by at least a factor of two, and it improves processing speed on potentially slow devices. Every geodetic coordinate is broken into two components: an offset and a value. The offset may be an aggregation of multiple offsets, but it always represents the topleft corner of a given rectangle. For any level 2 data segment (Lx-min, Lx-max, Ly-min, Ly-max), where Lx-min stands for minimum longitude, Lx-max for maximum longitude, Ly-min for minimum latitude and Ly-max for maximum latitude, the following formulas are used to compute offsets and values for each data point (x, y), where x is the longitude and y the latitude:
X2-offset=Lx−min
Y2-offset=Ly−max
X2-value=N * (x−x2-offset)
Y2-value=N * (y2-offset−y)
N=upper limit of valid integer values (50000 in the preferred embodiment)

The formulas for computing level 1 offsets and values are:
X1-offset=Abs((x−x2-offset)/((Lx-max−Lx-min)/K))
Y1-offset=Abs((y2-offset-y)/((Ly-max−Ly-min)/K))
X1-value=K*N*(x1−x2-offset−x1-offset)
Y1-value=K*N*(y2-offset−y1-offset−y1)
K=segment divisor (8 in the preferred embodiment for level 1 segments)

The formulas for computing level 0 offsets and values are the same as for level 1, except that K equals 64 in the preferred embodiment.

The example shown in FIG. 3 applies the above formulas to convert the geodetic coordinates 37.308805 and −122.843710 in block 30 to level 1 integers 1278 and 12516 respectively in block 35.

Level 2 offsets are shown in 31 and 32, while level 1 offsets are shown in 33 and 34. In the preferred embodiment of this invention, the upper limit N is set to 50000, but it could be a different number. The number should not exceed 65536 or 2*16, allowing it to be stored as a 2 byte integer (a short). The number should not be too low, which would result in a loss of spatial accuracy, because several real numbers would map to the same integer. The loss of accuracy is about 1 meter as implemented in the preferred embodiment of this invention.

Once a data segment has been processed and all real numbers converted to integers, a file name is assigned to the data segment as the last step in block 15 of FIG. 1. Since the computed integer values are only distance values from a given base value or offset, they are not reversible to the original real number value without the offset. A simple and efficient way to supply the necessary offset values is to make them part of a file name. As shown in the example of FIG. 3 block 36, a level 1 segment file name is comprised of a total of 4 numbers representing the 4 offsets used to compute integer values for that segment, as well as a letter to indicate the level, the letter b representing level 1. The first number in 36 represents the level 2 latitude offset and the second number in 36 represents the level 2 longitude offset. The third number in 36 represents the level 1 latitude offset, and the fourth number in 36 represents the level 1 longitude offset.

In order to simplify computing requirements, a new geodetic coordinate system is introduced. The North Pole of the earth is at coordinate (0,0) and the South Pole is at (360,360). Unlike in the standard coordinate system, no negative values are used. Every latitude degree in the standard coordinate system corresponds to 2 latitude degrees in the new system. The conversion from the standard to the new coordinate system is accomplished as follows:
New latitude=90−old latitude*2

    • New longitude=old longitude when range is 0 to 180
    • New longitude=180+(180−old longitude) when range is −180 to 0

In the new coordinate system, moving south and east always results in greater coordinates, while moving west and north always results in smaller coordinates, until the respective end points 0 and 360 are reached. This system significantly reduces the number of exception checking operations required by map display software when compared to the standard coordinate system.

This shows that the file name contains the offset information for the spatial data stored in the file. Thus, map display software can perform a few simple calculations to compute a file name from any geodetic coordinate, which may be supplied by GPS output. It should also be evident that the task of computing file names for data segments adjacent to a given segment is very straightforward using said file-naming system.

The following section describes how a map display program can use said file system and offer desirable functionality such as combined online/offline operation. In a typical embodiment, the map display program is installed on a wireless device such as a smartphone or personal digital assistant. As shown in FIG. 4, a map display system 40 consists of several functional components. The input interface layer 44 handles communication with the user or device. A text-input component lets the user type location information such as an address, a city, a zip code or a start/end point of a trip. The input interface 44 transmits said location information over the network to a geocoding engine 48 residing on a server 47. As is well known in the art, a geocoding engine computes a geodetic coordinate (longitude/latitude) from said information. Once the input interface 44 receives said geodetic coordinate from the geocoding engine 48, it notifies the map display engine 46. Some devices may have voice recognition capabilities. Instead of typing the user speaks said location information. The input interface 44 transmits the information from the voice recognition system 42 to the geocoding engine 48, waits for an answer and forwards it to the map display engine 46. Some devices may have a GPS receiver attached to or incorporated into the device. The input interface 44 processes the GPS output and relays said output to the map display engine 46 without the need to communicate with the geocoding engine 48.

The map display engine 46 uses said geodetic coordinates received from the input interface 44 to calculate four file names. The input interface 44 also tells the map display engine 46 which data level is needed, e.g. high-resolution level 0 is appropriate when the user specified an address, while level 1 may be more appropriate when the user specified a city or zip code. As has been shown in detail in a previous section, a geodetic coordinate can be decomposed and produce a unique file name. The map display engine 46 could then request said file name from a server 47 on which all files 49 are stored. However, in the preferred embodiment, the map display engine actually computes a total of four file names. If only one file is fetched, the geodetic coordinate of interest to the user could be located somewhere near the edge of said file. It would look awkward to the user and be less informative if the point of interest is not shown at or near the center of the map display screen. The ability to center the map picture has been lost by segmenting the spatial database. The solution employed by the map display engine 46 is to fetch three additional data segment files, which are most adjacent to said geodetic coordinate. The map display engine simply determines into which area, top-left, top-right, bottom-left or bottom-right, said coordinate falls. If a point falls in the top-left quadrant of a file, as does point 54 in FIG. 5, the map display program first finds file 105.237.3.1.b shown in block 53, and then also fetches the file to the top, block 51, to the left, block 52, and to the top-left, block 50. After fetching all 4 files from the server 47, the map display engine combines the data of the 4 files using simple offset calculations before drawing the map picture to the screen. Said geodetic coordinates can now be displayed fairly close (within 25%) of the screen center. An even better center approximation could be achieved by using nine files. Perfect centering can be achieved by not showing a map picture of the entire available data, but instead generate a slightly zoomed-in map picture centered at said coordinate.

One objective of the invention is to provide a flexible mapping system in the sense that the map display system can function online as well as offline. Offline functionality is desirable because it offers the highest speed, since the data is accessed from local storage. The map display engine 46 gives users several options to enable offline capability. Users can select a city or zip code and download all data files for said city or zip code. Furthermore, users can reserve a certain amount of local disk space to be allocated for map data caching. When caching is enabled, the map display engine 46 automatically stores downloaded files on the local disk. As the cache fills up, new data files replace the least frequently accessed data files. A different caching algorithm, for instance based on last accessed time stamps, could be used as well. When the user has selected caching or preloading of data, the map display engine 46 always first scans the local disk space and, if available, loads data files from local space into memory instead of downloading said files from a remote server. Local caching is very useful when users frequently request the same maps. For instance, a user may want to check road traffic conditions on a daily basis. In this case, only updated traffic information such as traffic incident locations or traffic speed maps (a list of measured traffic speeds at different locations) needs to be downloaded. Said updated traffic information can be displayed on a map, which is generated from the map display engine 46 using local map data. Said offline/online capability offers optimal performance for frequently used maps as well as great flexibility regarding local storage capacities of different devices.

While the invention has been described in connection with a preferred embodiment, it is not intended to limit the scope of the invention to the particular form set forth, but on the contrary, it is intended to cover such alternatives, modifications, and equivalents as may be included within the spirit and scope of the invention as defined by the appended claims.

Patent Citations
Cited PatentFiling datePublication dateApplicantTitle
US4520506Oct 20, 1981May 28, 1985Harris CorporationMethod and system for compression and reconstruction of cultural data for use in a digital moving map display
US4630209Jun 14, 1982Dec 16, 1986Toyota Jidosha Kogyo Kabushiki KaishaAudio/visual display system for multiple maps
US4780717Sep 17, 1986Oct 25, 1988Nippondenso Co., Ltd.Electronic map display system for use on vehicle
US4888698Oct 19, 1987Dec 19, 1989U.S. Philips CorporationMethod for storing a parcelwise divided digital data base as well as of addressing a data parcel in a mass memory, and apparatus for carrying out the method
US4970682Mar 15, 1988Nov 13, 1990Harris CorporationDigital map generator and display system
US5202829Jun 10, 1991Apr 13, 1993Trimble Navigation LimitedExploration system and method for high-accuracy and high-confidence level relative position and velocity determinations
US5299300Jun 8, 1993Mar 29, 1994Harris CorporationInterpolation processing of digital map imagery data
US5444618Jul 24, 1992Aug 22, 1995Hitachi, Ltd.Apparatus and method for topographic processing
US5543789Jun 24, 1994Aug 6, 1996Shields Enterprises, Inc.Computerized navigation system
US5629854Mar 3, 1995May 13, 1997U.S. Philips CorporationDevice for displaying cartographic information, method for displaying cartographic information, navigation system provided with the device and vehicle provided with the navigation system
US5694534Dec 13, 1996Dec 2, 1997Etak, Inc.Apparatus storing a presentation of topological structures and methods of building and searching the representation
US5737508Sep 2, 1994Apr 7, 1998Hammond, IncorporatedMethod for smoothing fractally-curved lines
US5754846Oct 1, 1991May 19, 1998U.S. Philips CorporationMethod of storing a topological network, and methods and apparatus for identifying series of 1-cells in a network stored by such a method
US5802492Jun 11, 1996Sep 1, 1998Delorme Publishing Company, Inc.Computer aided routing and positioning system
US5839088Aug 22, 1996Nov 17, 1998Go2 Software, Inc.Navigational apparatus
US5848373Jul 18, 1997Dec 8, 1998Delorme Publishing CompanyComputer aided map location system
US5881074Aug 28, 1997Mar 9, 1999Level One Communications, Inc.1000base-t packetized trellis coder
US5953722Sep 5, 1997Sep 14, 1999Navigation Technologies CorporationMethod and system for forming and using geographic data
US5966135Oct 30, 1996Oct 12, 1999Autodesk, Inc.Vector-based geographic data
US5968109Oct 25, 1996Oct 19, 1999Navigation Technologies CorporationSystem and method for use and storage of geographic data on physical media
US5974419Sep 5, 1997Oct 26, 1999Navigation Technologies CorporationParcelization of geographic data for storage and use in a navigation application
US6018695Jun 11, 1999Jan 25, 2000Navigation Technologies CorporationSystem and method for distributing information for storage media
US6038559Mar 16, 1998Mar 14, 2000Navigation Technologies CorporationSegment aggregation in a geographic database and methods for use thereof in a navigation application
US6049753Apr 25, 1997Apr 11, 2000Aisin Aw Co., Ltd.Device for searching and guiding route and for searching route
US6076039Sep 3, 1998Jun 13, 2000Garmin CorporationNavigation device and method for displaying cartographic markers
US6092076Mar 24, 1998Jul 18, 2000Navigation Technologies CorporationMethod and system for map display in a navigation application
US6107944Sep 10, 1998Aug 22, 2000Navigation Technologies CorporationElectronic navigation system and method
US6122594Oct 12, 1999Sep 19, 2000Denson CorporationSystem and method for designating points on a map using reduced designation information
US6141454Nov 1, 1996Oct 31, 2000MotorolaMethods for data compression and decompression using digitized topology data
US6163749Jun 5, 1998Dec 19, 2000Navigation Technologies Corp.Method and system for scrolling a map display in a navigation application
US6178380Oct 22, 1998Jan 23, 2001Magellan, Dis, Inc.Street identification for a map zoom of a navigation system
US6188955Dec 30, 1998Feb 13, 2001Garmin CorporationMethod and apparatus for storing cartographic route data
US6201498 *Nov 17, 1998Mar 13, 2001Judy FanGPS receiver with close range wireless communication port
US6222483Sep 29, 1998Apr 24, 2001Nokia Mobile Phones LimitedGPS location for mobile phones using the internet
US6278939Jul 24, 2000Aug 21, 2001Navigation Technologies Corp.Method and system for providing data from a remotely located geographic database for use in navigation system units
US6292745Jul 24, 2000Sep 18, 2001Navigation Technologies Corp.Method and system for forming a database of geographic data for distribution to navigation system units
US6295502Aug 24, 2000Sep 25, 2001S. Lee HancockMethod of identifying geographical location using hierarchical grid address that includes a predefined alpha code
US6307573Jul 22, 1999Oct 23, 2001Barbara L. BarrosGraphic-information flow method and system for visually analyzing patterns and relationships
US6308177Jul 28, 1999Oct 23, 2001Vijaya S. IsraniSystem and method for use and storage of geographic data on physical media
US6324467 *Mar 3, 2000Nov 27, 2001Hitachi, Ltd.Information providing system
US6336073Jul 26, 2000Jan 1, 2002Matsushita Electric Industrial Co., Ltd.Information terminal device and method for route guidance
US6424933Mar 17, 2000Jul 23, 2002Vicinity CorporationSystem and method for non-uniform scaled mapping
US6487495Jun 2, 2000Nov 26, 2002Navigation Technologies CorporationNavigation applications using related location-referenced keywords
US6505186Apr 26, 1999Jan 7, 2003Hitachi, Ltd.Method of managing feature data
US6526284Feb 22, 2000Feb 25, 2003International Business Machines CorporationTransmission of geographic information to mobile devices
US6556919Mar 31, 2000Apr 29, 2003Toyota Jidosha Kabushiki KaishaMap data storage medium
US6574551Jun 19, 1998Jun 3, 2003Magellan Dis, Inc.Autoscaling of recommended route
US6591270Jul 28, 2000Jul 8, 2003Navigation Technologies CorporationMethod for organizing map data
US6628278May 22, 2000Sep 30, 2003Siemens AktiengesellschaftMethod for obtaining a three-dimensional map representation, and a navigation system
US6703947Sep 22, 2000Mar 9, 2004Tierravision, Inc.Method for organizing and compressing spatial data
US6704645Dec 11, 2001Mar 9, 2004Garmin Ltd.System and method for estimating impedance time through a road network
US6708112Apr 25, 2003Mar 16, 2004Garmin LtdSystem and method for calculating a navigation route based on adjacent cartographic map databases
US6795450Sep 28, 2000Sep 21, 2004Tdk Semiconductor CorporationMethod and apparatus for supporting physical layer link-suspend operation between network nodes
US6868088Apr 26, 2001Mar 15, 20053Com CorporationAutomatic detector of media interface protocol type
US6912596Aug 2, 2002Jun 28, 2005Texas Instruments IncorporatedAutomatic resume from suspend for IEEE-1394 PHY
US7047428Jun 14, 2002May 16, 2006Broadcom CorporationMethod and apparatus for performing wake on LAN power management
US7054947Sep 4, 2001May 30, 2006Samsung Electronics Co., Ltd.Auto-negotiation method for high speed link in gigabit Ethernet using 1000 Base-T standard and apparatus thereof
US7079551Sep 7, 2001Jul 18, 2006Kiribati Wireless Ventures, LlcPrivate network link verification procedure in free space optical communication network
US7174243 *May 7, 2004Feb 6, 2007Hti Ip, LlcWireless, internet-based system for transmitting and analyzing GPS data
US7181438May 30, 2000Feb 20, 2007Alberti Anemometer, LlcDatabase access system
US7363126Aug 22, 2003Apr 22, 2008United Parcel Service Of AmericaCore area territory planning for optimizing driver familiarity and route flexibility
US7496082 *Dec 9, 2002Feb 24, 2009Lee Howard KDedicated device for automatically accessing wireless internet network and supplying wireless packet data-based indoor-capable GPS locations
US7532158 *Mar 6, 2007May 12, 2009New Jersey Institute Of TechnologyWireless network assisted GPS system
US20010037305Apr 26, 2001Nov 1, 2001Yoshiyuki MochizukiInteractive navigation system
US20030060973May 29, 2002Mar 27, 2003Infomove, Inc.Method and system for distributed navigation and automated guidance
US20040003132Dec 6, 2001Jan 1, 2004Biosentients, Inc.Data pool architecture, system, and method for intelligent object data in heterogeneous data environments
US20040260678Jun 18, 2003Dec 23, 2004Microsoft CorporationState based configuration failure detection using checkpoint comparison
US20050004945May 3, 2004Jan 6, 2005Cossins Robert N.Geographic management system
US20050125143Dec 8, 2004Jun 9, 2005Garmin Ltd., A Cayman Islands CorporationSystem and method for estimating impedance time through a road network
US20050135413Dec 7, 2004Jun 23, 2005Kewei YangSignaling and coding methods and apparatus for long-range 10 and 100 MBPS Ethernet transmission
JP2000197103A Title not available
KR20000030232A Title not available
KR20000054183A Title not available
Non-Patent Citations
Reference
1O'Rafferty et al., "A Rapidly Configurable Location-Aware Information System for an Exterior Environment", PRISM, Dept. of Computer Science, University College Dublin (UCD), Dublin 4, Ireland, pp. 334-336, 1999.
Referenced by
Citing PatentFiling datePublication dateApplicantTitle
US8504393 *Sep 7, 2011Aug 6, 2013State Farm Mutual Automobile Insurance CompanySystems and methods for grid-based insurance rating
US8676613 *Mar 27, 2013Mar 18, 2014State Farm Mutual Automobile Insurance CompanyMethods for grid-based insurance rating
US8686880Oct 10, 2012Apr 1, 2014Chersoft LimitedCommunicating electronic map data
US8738407 *Mar 27, 2013May 27, 2014State Farm Mutual Automobile Insurance CompanyComputer readable medium containing a set of computer readable instructions for grid-based insurance rating
US8738408 *Mar 27, 2013May 27, 2014State Farm Mutual Automobile Insurance CompanyMethods for grid-based rating insurance products using a programmed computer system
US20120066005 *Sep 7, 2011Mar 15, 2012State Farm Mutual Automobile Insurance CompanySystems and methods for grid-based insurance rating
USRE43923Aug 13, 2010Jan 15, 2013Tierravision, Inc.Method for organizing and compressing spatial data
Classifications
U.S. Classification341/50, 341/51
International ClassificationH03M7/00, H03M7/30
Cooperative ClassificationH03M7/30
European ClassificationH03M7/30
Legal Events
DateCodeEventDescription
Oct 25, 2013ASAssignment
Effective date: 20030619
Owner name: TIERRAVISION, INC., CALIFORNIA
Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:WALLNER, ALFRED;REEL/FRAME:031483/0138
Dec 20, 2011RRRequest for reexamination filed
Effective date: 20111102
Aug 12, 2011FPAYFee payment
Year of fee payment: 8