METHOD OF LABELLING A HIGHLY CURVED PATH ON A MAP RENDERED ON A WIRELESS COMMUNICATIONS DEVICE

Abstract
In displaying a map on a wireless communications device, a method is provided that resolves labelling of sharp curves. The method entails a determination of whether a curvature of a map element associated with the map feature exceeds a predetermined threshold (e.g. whether a rate of change in slope of a path or the change in angular orientation of each successive character in the label exceeds a threshold that is a function of zoom level. If the curvature exceeds the threshold, the label is rendered on the map in a new map location that avoids the map location where the curvature exceeds the threshold.
Description

BRIEF DESCRIPTION OF THE DRAWINGS

Further features and advantages of the present technology will become apparent from the following detailed description, taken in combination with the appended drawings, in which:



FIG. 1 is a block diagram schematically illustrating pertinent components of a wireless communications device and of a wireless communications network;



FIG. 2 is a more detailed block diagram of a wireless communications device;



FIG. 3A is a system diagram of network components which provide mapping functionality in the wireless communications devices of FIG. 1 and FIG. 2;



FIG. 3B illustrates a message exchange between a wireless communications device and a map server for downloading map content to the wireless communications device based on the system of FIG. 3A;



FIG. 3C is a diagram showing a preferred Maplet data structure;



FIG. 4 is a schematic depiction of a wireless network having an applications gateway for optimizing the downloading of map data from map servers to wireless communications devices;



FIG. 5 is a flowchart presenting steps of a method of displaying a map on a wireless device by proscribing label locations where the curvature of the label, or its associated path segment, exceeds a predetermine threshold;



FIG. 6A is an example of an onscreen map on which labels are rendered both on a curved path and on a curved non-path map feature (e.g. a river);



FIG. 6B depicts a process of determining the change in angular orientation for each successive character of the label;



FIG. 7A shows the map of FIG. 6A after it has been zoomed out, depicting the effect of the zoom factor (or magnification factor) on the curvature of labels;



FIG. 7B depicts the change in angular orientation between successive characters for the map of FIG. 7A, thus demonstrating how the change in angular orientation increases when the map is zoomed out;



FIG. 8A depicts a label on a cul-de-sac at a relatively high level of magnification, thus providing sufficient space for the map label;



FIG. 8B shows the map of FIG. 8A after it has been zoomed out, demonstrating how the map label “cul de sac” is no longer easily readable;



FIG. 9A shows a character-by-character analysis of the map label “cul de sac” at the high level of magnification used to generate the map of FIG. 8A;



FIG. 9B shows a corresponding character-by-character analysis of the map label “cul de sac” at the low level of magnification used to generate the map of FIG. 8B, showing that the change in angular orientation is greater than the change in angular orientation shown in FIG. 9A;



FIGS. 10A and 10B respectively depict an onscreen map and a corresponding collision-avoidance array wherein particular elements of the array have been proscribed as representing points where the curvature exceeds a predetermined threshold;



FIG. 10C depicts the map of FIG. 10A after repositioning of the path label “cul de sac” in order to avoid the “collision points” in the array where the curvature has been found to exceed the predetermined threshold;



FIG. 11A is a depiction of a map of a curving path upon which a curving path label is rendered;



FIG. 11B is a depiction of analysis wherein the rate of change of slope is determined for a portion of the path along which the label is to be rendered;



FIG. 11C is a depiction of the map of FIG. 11A after the path label has been repositioned to avoid the zone(s) where the rate of change of slope exceeds a predetermined threshold;



FIG. 12A depicts a map in which a 4-lane highway becomes a 2-lane highway whereupon, using conventional labelling techniques, the path label is susceptible to being wrapped or folded back on itself;



FIG. 12B depicts how slightly offset vector path segments are used to render the thickness of the 4-lane highway, thus causing the label to be wrapped or folded on itself;



FIG. 12C depicts the map of FIG. 12A after the path label has been repositioned to avoid the zone(s) where the curvature (either of the path itself or in terms of the change in orientation of each successive label character) exceeds a predetermined threshold;



FIG. 13 is a screenshot of a map rendered without detecting and avoiding sharp turns, showing how the path label “Columbia St W” is folded back on itself as the street transitions from four lanes to two; and



FIG. 14 is a screenshot of a map rendered after first detecting and avoiding sharp turns, showing how the path label “Columbia St W” is displaced to avoid the high-curvature transition point where the street goes from four to two lanes.


Claims
  • 1. A method of displaying a map on a wireless communications device, the method comprising steps of: obtaining map data for rendering the map to be displayed on the wireless communications device, the map data including label data for rendering a label for identifying a map feature on the map;determining whether a curvature of a map element associated with the map feature exceeds a predetermined threshold; andrendering the label on the map in a new map location that avoids the map location where the curvature exceeds the predetermined threshold.
  • 2. The method as claimed in claim 1 wherein the step of determining whether the curvature exceeds the predetermined threshold comprises a step of determining a rate of change in slope
  • 3. The method as claimed in claim 1 wherein the step of determining whether the curvature exceeds the predetermined threshold comprises a step of determining a rate of change in slope
  • 4. The method as claimed in claim 1 wherein the step of determining whether the curvature exceeds the predetermined threshold comprises steps of: virtually rendering the label along its respective path by provisionally orienting each character of the label; anddetermining whether a change in angular orientation of each character in the label relative to its preceding character in the label exceeds a predetermined angular threshold.
  • 5. The method as claimed in claim 1 wherein the predetermined threshold varies as a function of a zoom level of the map.
  • 6. The method as claimed in claim 2 wherein the predetermined threshold varies as a function of a zoom level of the map.
  • 7. The method as claimed in claim 3 wherein the predetermined threshold varies as a function of a zoom level of the map.
  • 8. The method as claimed in claim 4 wherein the predetermined threshold varies as a function of a zoom level of the map.
  • 9. The method as claimed in claim 1 further comprising steps of: generating a collision-avoidance array representative of the map to be rendered for testing potential label positions prior to actually rendering the labels on the map; andpopulating the collision-avoidance array by designating one or more undesirable locations in the array corresponding to map locations on the map where the curvature exceeds the predetermined threshold.
  • 10. The method as claimed in claim 2 further comprising steps of: generating a collision-avoidance array representative of the map to be rendered for testing potential label positions prior to actually rendering the labels on the map; andpopulating the collision-avoidance array by designating one or more undesirable locations in the array corresponding to map locations on the map where the curvature exceeds the predetermined threshold.
  • 11. The method as claimed in claim 3 further comprising steps of: generating a collision-avoidance array representative of the map to be rendered for testing potential label positions prior to actually rendering the labels on the map; andpopulating the collision-avoidance array by designating one or more undesirable locations in the array corresponding to map locations on the map where the curvature exceeds the predetermined threshold.
  • 12. The method as claimed in claim 4 further comprising steps of: generating a collision-avoidance array representative of the map to be rendered for testing potential label positions prior to actually rendering the labels on the map; andpopulating the collision-avoidance array by designating one or more undesirable locations in the array corresponding to map locations on the map where the curvature exceeds the predetermined threshold.
  • 13. A computer program product comprising code adapted to perform the steps of claim 1 when the computer program product is loaded into memory and executed on a processor of a wireless communications device.
  • 14. The computer program product comprising code adapted to perform the steps of claim 2 when the computer program product is loaded into memory and executed on a processor of a wireless communications device.
  • 15. The computer program product comprising code adapted to perform the steps of claim 3 when the computer program product is loaded into memory and executed on a processor of a wireless communications device.
  • 16. The computer program product comprising code adapted to perform the steps of claim 4 when the computer program product is loaded into memory and executed on a processor of a wireless communications device.
  • 17. The computer program product comprising code adapted to perform the steps of claim 5 when the computer program product is loaded into memory and executed on a processor of a wireless communications device.
  • 18. The computer program product comprising code adapted to perform the steps of claim 6 when the computer program product is loaded into memory and executed on a processor of a wireless communications device.
  • 19. The computer program product comprising code adapted to perform the steps of claim 7 when the computer program product is loaded into memory and executed on a processor of a wireless communications device.
  • 20. The computer program product comprising code adapted to perform the steps of claim 8 when the computer program product is loaded into memory and executed on a processor of a-wireless communications device.
  • 21. The computer program product comprising code adapted to perform the steps of claim 9 when the computer program product is loaded into memory and executed on a processor of a wireless communications device.
  • 22. The computer program product comprising code adapted to perform the steps of claim 10 when the computer program product is loaded into memory and executed on a processor of a wireless communications device.
  • 23. The computer program product comprising code adapted to perform the steps of claim 11 when the computer program product is loaded into memory and executed on a processor of a wireless communications device.
  • 24. The computer program product comprising code adapted to perform the steps of claim 12 when the computer program product is loaded into memory and executed on a processor of a wireless communications device.
  • 25. A wireless communications device for enabling a user of the device to display a map on the device, the wireless device comprising: an input device for enabling the user to cause the device to obtain map data for rendering the map to be displayed on a display of the device, the map data including label data for rendering labels on the map for identifying one or more map features; anda memory for storing code to instruct a processor to: obtain map data for rendering the map to be displayed on the wireless communications device, the map data including label data for rendering a label for identifying a map feature on the map;determine whether a curvature of a map element associated with the map feature exceeds a predetermined threshold; andrender the label on the map in a new map location that avoids the map location where the curvature exceeds the predetermined threshold.
  • 26. The wireless communications device as claimed in claim 25 wherein the processor determines a rate of change in slope ∂2y/∂x2 of a map feature at the map location where the label is to be rendered.
  • 27. The wireless communications device as claimed in claim 25 wherein the processor determines a rate of change in slope ∂2y/∂x2 of a path at the map location where the label is to be rendered.
  • 28. The wireless communications device as claimed in claim 25 wherein the processor virtually renders the label along its respective path by provisionally orienting each character of the label and then determines whether a change in angular orientation of each character in the label relative to its preceding character in the label exceeds a predetermined angular threshold.
  • 29. The wireless communications device as claimed in claim 25 wherein the predetermined threshold varies as a function of a zoom level of the map.
  • 30. The wireless communications device as claimed in claim 25 wherein the processor generates a collision-avoidance array representative of the map to be rendered for testing potential label positions prior to actually rendering the labels on the map and then populates the collision-avoidance array by designating one or more undesirable locations in the array corresponding to map locations on the map where the curvature exceeds the predetermined threshold.
Provisional Applications (2)
Number Date Country
60788434 Mar 2006 US
60787541 Mar 2006 US