IP Library Granted Patent US 9,099,056
Granted Patent B2
US 9,099,056 · App. 11/685,912 · Granted Aug 4, 2015

Method of labelling a highly curved path on a map rendered on a wireless communications device

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

Claims (80)

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; and

rendering 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

2

y

x

2

of a map feature at the map location where the label is to be rendered.

3. The method as claimed in claim 2 wherein the predetermined threshold varies as a function of a zoom level of the map.

4. 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; and

populating 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.

5. 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

2

y

x

2

of a path at the map location where the label is to be rendered.

6. The method as claimed in claim 5 wherein the predetermined threshold varies as a function of a zoom level of the map.

7. 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; and

determining 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.

8. The method as claimed in claim 7 wherein the predetermined threshold varies as a function of a zoom level of the map.

9. The method as claimed in claim 7 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; and

populating 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 7 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; and

populating 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 1 wherein the predetermined threshold varies as a function of a zoom level of the map.

12. 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; and

populating 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 non-transitory computer readable medium comprising code adapted to perform the steps of claim 1 when the computer readable medium is loaded into memory and executed on a processor of a wireless communications device.

14. A non-transitory computer readable medium comprising code adapted to perform the steps of claim 2 when the computer readable medium is loaded into memory and executed on a processor of a wireless communications device.

15. A non-transitory computer readable medium comprising code adapted to perform the steps of claim 3 when the computer readable medium is loaded into memory and executed on a processor of a wireless communications device.

16. A non-transitory computer readable medium comprising code adapted to perform the steps of claim 4 when the computer readable medium is loaded into memory and executed on a processor of a wireless communications device.

17. A non-transitory computer readable medium comprising code adapted to perform the steps of claim 5 when the computer readable medium is loaded into memory and executed on a processor of a wireless communications device.

18. A non-transitory computer readable medium comprising code adapted to perform the steps of claim 6 when the computer readable medium is loaded into memory and executed on a processor of a wireless communications device.

19. A non-transitory computer readable medium comprising code adapted to perform the steps of claim 7 when the computer readable medium is loaded into memory and executed on a processor of a wireless communications device.

20. A non-transitory computer readable medium comprising code adapted to perform the steps of claim 8 when the computer readable medium is loaded into memory and executed on a processor of a-wireless communications device.

21. A non-transitory computer readable medium comprising code adapted to perform the steps of claim 9 when the computer readable medium is loaded into memory and executed on a processor of a wireless communications device.

22. A non-transitory computer readable medium comprising code adapted to perform the steps of claim 10 when the computer readable medium is loaded into memory and executed on a processor of a wireless communications device.

23. A non-transitory computer readable medium comprising code adapted to perform the steps of claim 11 when the computer readable medium is loaded into memory and executed on a processor of a wireless communications device.

24. A non-transitory computer readable medium comprising code adapted to perform the steps of claim 12 when the computer readable medium 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; and

a 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; and

render 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

2

y

x

2

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

2

y

x

2

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.

Assignments (7)
CORRECTIVE ASSIGNMENT TO CORRECT 12817157 APPLICATION NUMBER PREVIOUSLY RECORDED AT REEL: 064015 FRAME: 0001. ASSIGNOR(S) HEREBY CONFIRMS THE ASSIGNMENT. Recorded Sep 5, 2023
From: OT PATENT ESCROW, LLC
To: MALIKIE INNOVATIONS LIMITED
Reel/Frame 064807/0001 →
CORRECTIVE ASSIGNMENT TO CORRECT THE COVER SHEET AT PAGE 50 TO REMOVE 12817157 PREVIOUSLY RECORDED ON REEL 063471 FRAME 0474. ASSIGNOR(S) HEREBY CONFIRMS THE ASSIGNMENT. Recorded Sep 5, 2023
From: BLACKBERRY LIMITED
To: OT PATENT ESCROW, LLC
Reel/Frame 064806/0669 →
NUNC PRO TUNC ASSIGNMENT Recorded Jun 19, 2023
From: BLACKBERRY LIMITED
To: MALIKIE INNOVATIONS LIMITED
Reel/Frame 064269/0001 →
NUNC PRO TUNC ASSIGNMENT Recorded Jun 16, 2023
From: OT PATENT ESCROW, LLC
To: MALIKIE INNOVATIONS LIMITED
Reel/Frame 064015/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 27, 2023
From: BLACKBERRY LIMITED
To: OT PATENT ESCROW, LLC
Reel/Frame 063471/0474 →
CHANGE OF NAME Recorded Nov 4, 2014
From: RESEARCH IN MOTION LIMITED
To: BLACKBERRY LIMITED
Reel/Frame 034161/0093 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 14, 2007
From: BOWMAN, GORDON GREGORY
To: RESEARCH IN MOTION LIMITED
Reel/Frame 019010/0633 →