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.
|
0. 23. A method to reduce data in a digital map, comprising:
suppressing selected geographic features; and
reducing resolution of remaining geographic features,
wherein the reducing comprises eliminating data points, provided that an angle between two lines connecting a data point to its adjacent data points does not exceed a predetermined angle.
0. 27. A system for reducing data in a digital map, comprising:
means for suppressing selected geographic features; and
means for reducing resolution of remaining geographic features, wherein the reducing comprises eliminating data points, provided that an angle between two lines connecting a data point to its adjacent data points does not exceed a predetermined angle.
0. 31. A non-transitory 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:
suppressing selected geographic features; and
reducing resolution of remaining geographic features, wherein the reducing comprises eliminating a data points, provided that an angle between two lines connecting the data point to its adjacent data points does not exceed a predetermined angle.
0. 43. A system for reducing data in a digital map, the system comprising:
means for suppressing selected geographic features; and
means for reducing resolution of remaining geographic features by eliminating at least one data point between two adjacent data points only if an angle formed between a first line and a second line does not exceed a predetermined angle, the first line extending through the at least one data point and one of the adjacent data points and the second line extending through the at least one data point and another adjacent data point.
0. 38. A method for reducing data in a digital map, the method comprising:
suppressing selected geographic features; and
reducing resolution of remaining geographic features by eliminating at least one data point between two adjacent data points only if an angle formed between a first line and a second line does not exceed a predetermined angle, the first line extending through the at least one data point and one adjacent data point of the adjacent data points and the second line extending through the at least one data point and another adjacent data point of the adjacent data points.
0. 48. A non-transitory computer readable storage medium that stores instructions that, when executed by a machine, cause the machine to reduce data in a digital map, the instructions causing the machine to perform steps comprising:
suppressing selected geographic features; and
reducing resolution of remaining geographic features by eliminating at least one data point between two adjacent data points only if an angle formed between a first line and a second line does not exceed a predetermined angle, the first line extending through the at least one data point and one of the adjacent data points and the second line extending through the at least one data point and another adjacent data point.
0. 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.
0. 2. The method of
0. 3. The method of
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.
0. 4. The method of
generating a substantially rectangular element comprising about 1° longitude and about ½° latitude.
0. 5. The method of
wherein the topographic element comprises elements expressed using a geodetic coordinate system; and
the attribute element is related to the topographic element.
0. 6. The method of
dividing the packets into at least one element, the element selected from a group consisting of: an 8×8 grid, a 64×64 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.
0. 7. The method of
eliminating elements selected from a group consisting of: a polygon, a lake, a geographic area, a topographic element and an attribute element.
0. 8. The method of
eliminating a plurality of data points from a topographic element.
0. 9. The method of
transforming a geodetic coordinate from a real number to an integer number, wherein the integer number ranges from about 0 to about 65535.
0. 10. The method of
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°.
0. 11. The method of
0. 12. The method of
0. 13. The method of
0. 14. The method of
0. 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.
0. 16. The method of
computing the at least one data packet name using a geodetic coordinate.
0. 17. The method of
calculating a request location; and
using the request location to calculate the at least one packet name.
0. 18. The method of
computing four adjacent data packet names;
fetching the packets from a server; and
combining an information contained in the packets to generate a map.
0. 19. The method of
determining a resolution level selected from a group consisting of: an address, a city, a zip code and a building floor plan.
0. 20. The method of
caching at least one data packet until an amount of computer storage space is filled, and
determining which packets should be replaced.
0. 21. The method of
checking a local cache before requesting a data packet from a remote device.
0. 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.
0. 24. The method of claim 23, wherein the selected geographic features include secondary roads.
0. 25. The method of claim 23, wherein the remaining geographic features include primary roads.
0. 26. The method of claim 23, wherein the elimination of data points does not significantly change the overall shape of a remaining geographic feature.
0. 28. The system of claim 27, wherein the selected geographic features include secondary roads.
0. 29. The system of claim 27, wherein the remaining geographic features include primary roads.
0. 30. The system of claim 27, wherein the elimination of data points does not significantly change the overall shape of a remaining geographic feature.
0. 32. The non-transitory computer readable storage medium of claim 31, wherein the selected geographic features include secondary roads.
0. 33. The non-transitory computer readable storage medium of claim 31, wherein the remaining geographic features include primary roads.
0. 34. The non-transitory computer readable storage medium of claim 31, wherein the elimination of the data points does not significantly change the overall shape of the remaining geographic features.
0. 35. The method of claim 23, wherein the predetermined angle is greater than 180 degrees.
0. 36. The system of claim 27, wherein the predetermined angle is greater than 180 degrees.
0. 37. The non-transitory computer readable storage medium of claim 31, wherein the predetermined angle is greater than 180 degrees.
0. 39. The method of claim 38, wherein the reducing comprises eliminating a plurality of selected data points where, for each of the plurality of selected data points, an angle between a first line extending through the selected data point and a first adjacent data point and a second line extending through the selected data point and a second adjacent data point does not exceed the predetermined angle.
0. 40. The method of claim 39, wherein the selected geographic features include secondary roads.
0. 41. The method of claim 39, wherein the remaining geographic features include primary roads.
0. 42. The method of claim 39, wherein the elimination of the at least one data point does not significantly change the overall shape of the remaining geographic features.
0. 44. The system of claim 43, wherein the means for reducing comprises means for eliminating a plurality of selected data points where, for each of the plurality of selected data points, an angle between a first line extending through the selected data point and a first adjacent data point and a second line extending through the selected data point and a second adjacent data point does not exceed the predetermined angle.
0. 45. The system of claim 43, wherein the selected geographic features include secondary roads.
0. 46. The system of claim 43, wherein the remaining geographic features include primary roads.
0. 47. The system of claim 43, wherein the elimination of the at least on data point does not significantly change the overall shape of a remaining geographic feature.
0. 49. The non-transitory computer readable storage medium of claim 48, wherein the reducing comprises eliminating a plurality of selected data points where, for each of the plurality of selected data points, an angle between a first line extending through the selected data point and a first adjacent data point and a second line extending through the selected data point and a second adjacent data point does not exceed the predetermined angle.
0. 50. The non-transitory computer readable storage medium of claim 48, wherein the selected geographic features include secondary roads.
0. 51. The non-transitory computer readable storage medium of claim 48, wherein the remaining geographic features include primary roads.
0. 52. The non-transitory computer readable storage medium of claim 48, wherein the elimination of the at least one data point does not significantly change the overall shape of the remaining geographic features.
|
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
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
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
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
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
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 | Priority | Assignee | Title |
10192254, | Aug 04 2005 | Microsoft Technology Licensing, LLC | User interface and geo-parsing data structure |
11423457, | Aug 04 2005 | Microsoft Technology Licensing, LLC | User interface and geo-parsing data structure |
Patent | Priority | Assignee | Title |
4630209, | Jul 01 1981 | Toyota Jidosha Kogyo Kabushiki Kaisha | Audio/visual display system for multiple maps |
4888698, | Oct 23 1986 | Mannesmann VDO AG | Method 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 |
4972319, | Sep 25 1987 | Electronic global map generating system | |
5699255, | Oct 18 1995 | Trimble Navigation Limited | Map transmission for in-vehicle navigation system with dynamic scale/detail adjustment |
5727057, | Dec 27 1994 | AG Communication Systems Corporation | Storage, transmission, communication and access to geographical positioning data linked with standard telephony numbering and encoded for use in telecommunications and related services |
5754846, | Oct 01 1990 | Mannesmann VDO AG | Method of storing a topological network, and methods and apparatus for identifying series of 1-cells in a network stored by such a method |
5848373, | Jun 24 1994 | Garmin Switzerland GmbH | Computer aided map location system |
5890070, | Jul 26 1995 | Canon Kabushiki Kaisha | Navigation apparatus using radio communication device |
5946687, | Oct 10 1997 | Alcatel Lucent | Geo-enabled personal information manager |
5953722, | Oct 25 1996 | HERE GLOBAL B V | Method and system for forming and using geographic data |
5966135, | Oct 30 1996 | AUTODESK, Inc | Vector-based geographic data |
5968109, | Oct 25 1996 | HERE GLOBAL B V | System and method for use and storage of geographic data on physical media |
5974419, | Oct 25 1996 | HERE GLOBAL B V | Parcelization of geographic data for storage and use in a navigation application |
5987381, | Mar 11 1997 | TomTom International BV | Automobile navigation system using remote download of data |
6018695, | Jan 26 1996 | HERE GLOBAL B V | System and method for distributing information for storage media |
6038559, | Mar 16 1998 | HERE GLOBAL B V | Segment aggregation in a geographic database and methods for use thereof in a navigation application |
6055478, | Oct 30 1997 | Sony Corporation; Sony Electronics INC | Integrated vehicle navigation, communications and entertainment system |
6073075, | Nov 01 1995 | Hitachi, Ltd. | Method and system for providing information for a mobile terminal |
6073076, | Mar 27 1998 | HERE GLOBAL B V | Memory management for navigation system |
6081803, | Feb 06 1998 | NAVIGON AB; Navigon AG | Support for alternative names in a geographic database used with a navigation program and methods for use and formation thereof |
6107944, | Jun 24 1994 | HERE GLOBAL B V | Electronic navigation system and method |
6122520, | Feb 13 1998 | Apple Inc | System and method for obtaining and using location specific information |
6222483, | Sep 29 1998 | Nokia Technologies Oy | GPS location for mobile phones using the internet |
6240360, | Aug 16 1995 | Microsoft Technology Licensing, LLC | Computer system for indentifying local resources |
6249740, | Jan 21 1998 | Kabushikikaisha Equos Research | Communications navigation system, and navigation base apparatus and vehicle navigation apparatus both used in the navigation system |
6253151, | Jun 23 2000 | HERE GLOBAL B V | Navigation system with feature for reporting errors |
6262741, | Mar 17 1998 | Northrop Grumman Systems Corporation | Tiling of object-based geographic information system (GIS) |
6263343, | Jan 11 1996 | Sony Corporation | System for providing and linking regularity updated map data with data related to the map |
6304212, | Dec 24 1997 | Casio Computer Co., Ltd. | Position data display/control apparatus and methods |
6321158, | Jun 24 1994 | Garmin Switzerland GmbH | Integrated routing/mapping information |
6324467, | Mar 05 1999 | Hitachi, Ltd. | Information providing system |
6330453, | Feb 06 1998 | Matsushitas Electric Industrial Co., Ltd. | Map information providing method and system and terminal device used therein |
6336073, | Jul 29 1999 | Matsushita Electric Industrial Co., Ltd. | Information terminal device and method for route guidance |
6343290, | Dec 22 1999 | Celeritasworks, LLC | Geographic network management system |
6363392, | Oct 16 1998 | Microsoft Technology Licensing, LLC | Method and system for providing a web-sharable personal database |
6393149, | Sep 17 1998 | HERE GLOBAL B V | Method and system for compressing data and a geographic database formed therewith and methods for use thereof in a navigation application program |
6477526, | Apr 14 1998 | Increment P Corporation; Pioneer Electronic Corporation | System for and method of providing map information |
6487495, | Jun 02 2000 | HERE GLOBAL B V | Navigation applications using related location-referenced keywords |
6526284, | Nov 10 1999 | International Business Machines Corporation | Transmission of geographic information to mobile devices |
6532475, | May 28 1998 | Increment P Corporation; Pioneer Electronic Corporation | Map information providing system and map information searching method |
6584328, | Jan 10 2000 | Compal Electronics, Inc. | Wireless communication system that uses keywords to find and display map graphic data |
6636802, | Nov 24 1998 | Matsushita Electric Industrial Co., Ltd. | Data structure of digital map file |
6647336, | Aug 11 1999 | LENOVO INNOVATIONS LIMITED HONG KONG | Map display terminal and map display method |
6674849, | Jul 28 2000 | Trimble Navigation Limited | Telephone providing directions to a location |
6718344, | Jan 10 1996 | Sony Corporation | Data providing structure, data providing method and data providing terminal |
6748426, | Jun 15 2000 | DEUTSCHE BANK AG NEW YORK BRANCH | System and method for linking information in a global computer network |
6973386, | Dec 20 2002 | Honeywell International Inc. | Electronic map display declutter |
6983313, | Jun 10 1999 | Nokia Technologies Oy | Collaborative location server/system |
7010567, | Jun 07 2000 | ALPINE ELECTRONIC, INC | Map-data distribution method, and map-data distribution server and client |
7049981, | Jun 24 1994 | HERE GLOBAL B V | Electronic navigation system and method |
7577520, | Jan 20 2004 | CLARION CO , LTD | Method for updating map data used in on-vehicle navigation apparatus, map data update system, authentication key generation apparatus and navigation apparatus |
7698057, | Sep 07 2006 | Denso Corporation | Map display control apparatus, program product therefor, and method for controlling an in-vehicle navigation apparatus |
7705852, | Nov 16 2001 | Lockheed Martin Corporation | System and method for managing compressed graphic image data |
7769541, | Jun 24 2005 | Apline Electronics, Inc | Vehicle navigation system and method of generating updated map data for vehicle navigation system |
7894986, | Jun 02 2000 | HERE GLOBAL B V | Method and system for forming a keyword database for referencing physical locations |
20010044803, | |||
20020055924, | |||
EP816802, | |||
EP932134, | |||
EP990119, | |||
JP1013961, | |||
JP10282879, | |||
JP9287964, | |||
RE41983, | Sep 22 2000 | Tierravision, Inc. | Method of organizing and compressing spatial data |
WO9707467, | |||
WO31663, | |||
WO9607170, | |||
WO9859215, | |||
WO9909374, |
Executed on | Assignor | Assignee | Conveyance | Frame | Reel | Doc |
Jun 19 2003 | WALLNER, ALFRED | TIERRAVISION, INC | ASSIGNMENT OF ASSIGNORS INTEREST SEE DOCUMENT FOR DETAILS | 031483 | /0138 | |
Aug 13 2010 | Tierravision, Inc. | (assignment on the face of the patent) | / | |||
Sep 20 2012 | WALLNER, ALFRED M | TIERRAVISION, INC | ASSIGNMENT OF ASSIGNORS INTEREST SEE DOCUMENT FOR DETAILS | 029019 | /0468 |
Date | Maintenance Fee Events |
Oct 16 2015 | REM: Maintenance Fee Reminder Mailed. |
Mar 07 2016 | M2553: Payment of Maintenance Fee, 12th Yr, Small Entity. |
Mar 07 2016 | M2556: 11.5 yr surcharge- late pmt w/in 6 mo, Small Entity. |
Date | Maintenance Schedule |
Jan 15 2016 | 4 years fee payment window open |
Jul 15 2016 | 6 months grace period start (w surcharge) |
Jan 15 2017 | patent expiry (for year 4) |
Jan 15 2019 | 2 years to revive unintentionally abandoned end. (for year 4) |
Jan 15 2020 | 8 years fee payment window open |
Jul 15 2020 | 6 months grace period start (w surcharge) |
Jan 15 2021 | patent expiry (for year 8) |
Jan 15 2023 | 2 years to revive unintentionally abandoned end. (for year 8) |
Jan 15 2024 | 12 years fee payment window open |
Jul 15 2024 | 6 months grace period start (w surcharge) |
Jan 15 2025 | patent expiry (for year 12) |
Jan 15 2027 | 2 years to revive unintentionally abandoned end. (for year 12) |