The present invention relates generally to apparatus and methods for displaying maps, and more specifically, to apparatus and methods that generate curved labeling on portable GPS (Global Positioning System) devices.
Global positioning systems allow automatic route calculation from a current position to a destination location. Such systems guide a driver of a vehicle along a calculated trip route from the particular instantaneous vehicle location to the destination location by outputting trip instructions in conjunction with a visual display of route segments as the vehicle progresses.
One exemplary geographical position location system receives and analyzes location parameters derived from the Global Positioning System (GPS), a radio-navigation system, developed and operated by the U.S. Defense Department, which includes a series of 24 constellation satellites orbiting the earth at a distance of approximately 20,000 kilometers. The GPS position location parameters permit wireless device processors to determine their respective three dimensional positions and velocities using very precise location parameters and timing signals received from the satellites.
The displays on many portable GPS devices are small and the data populating the screen must be efficiently presented. Care must be taken to prevent overcrowding the screen with too much data. Furthermore, text labels accompanying objects should be accurately positioned so as to best associate the text with the object, i.e. road, river, etc., with minimal crossovers and crowding.
Accordingly, the interest and the demand of finding efficient map labeling methods is increasing. Most discussions of map labeling are concentrating on straight line, horizontal or slant, based labeling. However, not all roads and rivers are straight objects wherein their accompanying text may be drawn on a baseline calculated using a linear equation of the form y=mx+b. Curved labeling may deliver better results for labeling map polylines such as rivers and roads because it can be more faithful to the original polylines.
Alexander Wolff provides in reference [1] a method of curved labeling by generating circular arcs. The method executes in O(n2) time, where n is the number of points of the polyline.
However, the number of points of polylines can be very large and the computation burden of generating curved labels may compromise the map drawing performance of a handheld or vehicle navigation GPS device.
Accordingly there is a need for apparatus and methods that efficiently generate curved labels for maps drawn on portable GPS devices.
[1] Alexander Wolff, Lars Knipping, Marc van Kreveld, Tycho Strijk and Pankaj K. Agarwal, 2002, A Simple and Efficient Algorithm for High-quality Line Labeling. http://i11www.iti.uni-karlsruhe.de/map-labeling/papers/wkksa-seahq-00.pdf
The present invention provided an efficient method and apparatus for calculating a curved baseline for display text on an end user's portable map displaying device, and in particular, on a portable global positioning system (GPS) device, that may for instance, be handheld by a user and/or mounted in a vehicle.
Under control of processor within the portable end user device, position information retrieved from the GPS network, and map data that, in at least one embodiment, is stored in the end user device, a display of the current location of the device is displayed. Map information includes for example, a representation of objects such as roads, which are formed by polylines. In many cases, the polylines are best annotated with a curved label for visual clarity.
According to one aspect, a portable GPS device is configured to perform the actions performed on the end user device as disclosed above. Such a device may include a computer platform further including a memory that comprises a map display module that further includes a curved baseline generator module. The curved baseline generator module comprises an input of a polyline P of n points, where P={p1,p2, . . . ,pn} and logic operable to generate a supporting polyline Q of m points at an expected distance d between P and a curved base line L, where Q={q1,q2, . . . ,qm} (m≧n). The curved baseline generator module further includes logic operable to generate a predetermined number of B-Spline points based upon the generated supporting polyline Q. An output of the curved baseline generator module comprises the B-Spline points, which is connected to form curved baseline L for displaying a label.
In a second aspect, a method to generate curved labels for maps drawn on portable GPS devices includes receiving a polyline P of n points, where P={p1,p2, . . . ,pn} and generating a supporting polyline Q of m points an expected distance d between P and a to be determined curved base line L, where Q={q1,q2, . . . ,qm} (m≧n). Based upon the supporting polyline Q, a predetermined number of B-Spline points are generated and outputted.
A third aspect of the method includes connecting the generated B-Spline points to form the curved baseline L for displaying a label.
A fourth further aspect includes a computer-readable medium embodying logic to perform the steps described in the second and third aspects described above.
Another aspect includes a processor capable of executing the logic stored in the computer-readable medium of the fourth aspect.
The present apparatus and methods are illustrated by way of example, and not by limitation, in the figures of the accompanying drawings, wherein elements having the same reference numeral designations represent like elements throughout and wherein:
In one exemplary embodiment, the system 100 determines the position of a portable user device 102 using location parameters derived from, a radio-navigation system, such as the Global Positioning System (GPS), developed and operated by the U.S. Defense Department. In some embodiments, the GPS navigation system 100 receives data from several satellites 132 orbiting the earth at a distance of approximately 20,000 kilometers. The GPS position location parameters permit a user device 102, in communication with the satellites, to determine their respective three dimensional positions and velocities using very precise location parameters and timing signals received from the satellites 132.
The user device 102 includes an integrated/external display unit, i.e., display screen 106, on which a map 134, or portion thereof, is displayed. In some embodiments the map 134 includes curved objects, e.g., roads, rivers, topographical boundaries, etc., which, for the sake of visual clarity, a curved baseline is best suited for displaying text related to the curved object.
In some embodiments, map data is stored on the user device 102. In other embodiments, a particular map 134, or map object, e.g., points of interest along a predetermined may be downloaded from another computer, i.e., remote server 120, over a communication network 130.
Non-limiting, the remote server 120 includes a memory 122 including maps and map related information stored in a map database 136. The remote server 120 includes a communication module 128 that under control of a processor assembly 126, receives a request for information from, and transmits the requested data to, the end user device 102 over a communications network 130.
The portable end user device 102 illustrated in
Non-limiting, the portable end user device 102 may comprise a computer platform 104 operable to determine and display a position of the portable end user device 102 and display its position on an output display 106 integrally or remotely connected to the device 102. The map information displayed on the output display 106 is based upon map information 144 stored on internal/external memory devices 110, such as a compact disk (CD) and a secure digital (SD) product. Alternatively, map information may be is downloaded from a remote computing system 126. Still further, map information may be obtained from a desktop or notebook computer maintained by the user that may communicate with the end user device 102 over a communication link that includes a hardwired connection or wireless connection, using such technologies as BLUETOOTH and infra-red (IR) radio transmissions.
As illustrated in
In some aspects, computer platform 104 includes a processor 108 for controlling the operation of the device 102. Processor 108 may comprise an application-specific integrated circuit (ASIC), or other chipset, processor, microprocessor, logic circuit, or other data processing device operable to perform one or more processing functions for the end user device 102. Furthermore, processor 108 may include various processing subsystems, embodied in hardware, firmware, software, and combinations thereof, that enable the functionality of the end user device 102.
In some aspects, computer platform 104 includes a location module 114 that comprises, in whole or in part, a geographic information system (GIS), such as a tool used to gather, transform, manipulate, analyze, and produce information related to the surface of the earth. In some aspects, such a GIS may include a global positioning system (GPS), such as a satellite navigational system formed by satellites 132, orbiting the earth and their corresponding receivers on the earth. The GPS satellites continuously transmit digital radio signals that contain data on the satellites' location and the exact time to the earth-bound receiver. The satellites are equipped with atomic clocks that are precise, for example, to within a billionth of a second.
The computer platform 104 of portable end user device 102 further includes a communication module 116 operable to transfer data between components of the portable end user device 102 and between the portable end user device 102 and external devices, such as GPS satellite 132 and remote computer system 120.
For instance, communication module 116 may include one or any combination of input and/or output ports, transmit and receive chain components, transceivers, antenna, etc, i.e., a wired or wireless universal serial bus (USB) port. Communication module 116 may include, but is not limited to, technologies such as a one or any combination of a wireless GPS satellite interface; a serial port, i.e., a universal serial bus (USB) port and a FIREWIRE serial bus interface; an infrared interface; and a short range radio frequency interface, such as a BLUETOOTH technology interface.
Memory 110 includes any type of memory, including read-only memory (ROM), random-access memory (RAM), EPROM, EEPROM, flash memory cells, secondary or tertiary storage devices, such as magnetic media, optical media, tape, or soft or hard disk, whether resident on computer platform 102 or remote therefrom. Processor 108 is operable to execute programs stored in memory 110, including a map display module 136 that includes program instructions to receive inputs from location module 114 and display the position of portable end user device 102 on display unit 106 along with memory resident map information 144 stored on device 102 or downloaded from remote server 120.
Map display module 136 also includes control logic 140 operable to manage the operation of map display module 136 and, based upon commands from input/output logic 138, retrieve and store map information 144 on portable end user device 102 or on another device not shown.
Under control of processor 108, position information retrieved from satellites 132, as well as portions of map information 144, is processed and data is transmitted to display unit 106, to display the location of device 102 on a varying background of highways, roads, bridges, and rivers.
Still referring to
Depending upon the specific portable end user device 102, and more specifically, the available computing power within the portable device 102, curved baseline generating module 142 is located in the portable end user device 102 or alternatively, in a remote device in communication with portable device 102.
Curved baseline generator module 142 is operable to generate, above and not touching polyline P, curved baseline L upon which a curved label is drawn. At step 400, a supporting polyline Q is generated based upon polyline P. At step 500, curved baseline L is generated based upon polyline Q. At step 600, curved baseline generator module 142 outputs discrete points along curved baseline L upon which map display module 110 displays a curved map label above and the left of polyline P.
In one aspect, curved baseline generating module 136 is operable to generate a curved baseline L based upon a polyline P={p1,p2, . . . ,pn} with a plurality of points pi=(xi,yi), (i=1,2, . . . ,n) input at step 300. Polyline P is defined as a polyline having n points. In one aspect, points xi≦xi+1 (i=1,2, . . . ,n−1) and polyline P is directed from pi to pn and the labels are placed on the upper side, i.e., the left side, of the polyline P without touch it.
Each point pi (i=1,2, . . . ,n) includes a turning property that, in one embodiment, is defined as follows, based upon the geometric drawings of
i) The first point p1 and the last point pn are both defined as left-turning points.
ii) For i=2, 3, . . . ,n−1, pi is said to be a right-turning point if the point pi+1 lies to the right of the directed line through pi−1 and pi (
Preliminary treatment of polyline P is performed by modifying the individual points pi making up the polyline P. At
At
The preliminary treatment disclosed above generates a polyline P, wherein P={p1,p2, . . . ,pn}. Supporting set Q={q1,q2, . . . ,qm} (m≧n), which is also a polyline, is also built according to distance d.
Referring to the geometric drawing of
and let vector wx=d·uy, wy=−d·ux.
Referring to
and let vector z be calculated as follows.
z
x
=d·v
y
, z
y
=−d˜v
x
Then, calculate qm=pn+Z, wherein point qm satisfies the following three conditions.
Referring to the flowcharts illustrated in
Referring to step 416 of
w
x
=d·u
y
, w
y
=−d·u
x; and
z
x
=d·v
y
, z
y
=−d˜v
x.
The diagram of
If point pi (0<i<n) is a right-turning point, there are the following three cases, as illustrated in
and
(
Based upon steps described above, polyline Q={q1,q2, . . . ,qm} (m≧n) include the following properties.
1) Q is above the original line polyline P and does not touch P.
2) Each triangle Δququ+1qu+2 (u=1,2, . . . ,m−2) in
3) Because the operations required to build the supporting points Q are limited, the total run time to generate Q is O(n), the time required to execute the above procedure for n points.
4) Q satisfies
Referring back to
Choosing a constant k>1, let
and tν=ν·Δ (ν=0,1,2, . . . ,k).
Calculate Si(tj)(i=1,2, . . . ,m−2 and j=0,1,2, . . . ,k).
Connecting these points in order generates the following polyline:
L={S
1(t0), S1(t1), . . . , S1(tk−1), S2(t0), S2(t1), . . . , S2(tk−1), . . . , Sm−2(t0), Sm−2(t1), . . . , Sm−2(tk−1), Sm−2(tk)}.
Since S1(tk)=S2(t0), S2(tk)=S3(t0), . . . , Sm−3(t0)=Sm−2(tk), there's no need to keep both Si(tk) and Si+1(t0) if 1≦i≦m−3. Only when i=m−2, the last point Sm−2(tk) is needed.
Once polyline L is generated, it is used to draw a curved label. According to a property of B-Spline generated points, polyline L has following three properties:
1. L is above the original polyline P and does not touch it because each sub curve Li{Si(t0), Si(t1), . . . , Si(tk)} is totally contained in the triangle Δqiqi+1qi+2 (i=1, 2, . . . , m−2), based upon the teachings of Fujio Yamaguchi, as previously disclosed.
2. L is “continuous” for two reasons:
2. L is “smooth” because the derivatives of function S, that is S′, are continuous, i.e.:
Following is an analysis of the performance of the method heretofore disclosed.
For a fixed t (0≦t≦1), from equation III, the number of multiplications for calculating Xi(t) (i=0,1,2) is a constant, for example C1. Then, the number of multiplications for calculating one point Su(tν) for a fixed u and fixed ν (1≦u≦m−2; 0≦ν<k−1) is 3C1. The total number of multiplications for calculating k points Su(t0), Su(t1), . . . , Su(tk−1) for a fixed u (1≦u≦m−2) is 3 kC1. Therefore, the total number of multiplications for generating L is 3(m−2)kC1+3C1=3((m−2)k+1)C1≦3mkC1. The extra 3C1 is for the last point Sm−2(tk).
The total number of points of Q is no more than 3n, where n is the number of points of the original polyline, i.e., m≦3n. Therefore, the total number of multiplications for calculating (m−2)k+1 points of L is no more than 9C1kn. Because both C1 and k are constants, the run time for generating L s O(n).
The preliminary treatment and the supporting set build runs in O(n) time. Accordingly, the over all run time of the algorithm is O(n).
While the foregoing disclosure shows illustrative aspects and/or aspects, it should be noted that various changes and modifications could be made herein without departing from the scope of the described aspects and/or aspects as defined by the appended claims. Furthermore, although elements of the described aspects s described or claimed in the singular, the plural is contemplated unless limitation to the singular is explicitly stated. Additionally, all or a portion of any aspect and/or aspects may be utilized with all or a portion of any other aspect and/or aspect, unless stated otherwise.