Some embodiments of the invention provide several novel methods for generating a navigation presentation that displays a device navigating a route on a map. The method of some embodiments uses a virtual camera that, based on detected changes in the navigation context, dynamically modifies the way it captures portions of the map to produce different navigation scenes in the navigation presentation. To generate the navigation scenes, the method of some embodiments (1) identifies different sets of attributes that describe the different navigation contexts at different times during the navigation presentation, and (2) uses these different sets of attributes to identify different styles for operating the virtual camera. In some embodiments, the method uses an identified style to specify the virtual camera's positional attributes, which, in turn, define the portions of the map that the virtual camera identifies for rendering to produce several navigation scenes for a period of time (e.g., until the navigation context changes, or until the navigation presentation ends when the navigation context does not change again). During the navigation presentation, each time the navigation context changes, the identified set of attributes may change. This change, in turn, may cause the method of some embodiments to select a new style for operating the virtual camera. When the style for operating the virtual camera changes, the method of some embodiments modifies the way the virtual camera captures the portion of the map to render.
Legal claims defining the scope of protection, as filed with the USPTO.
1. A non-transitory machine readable medium storing a program for execution by at least one processing unit, wherein the program corresponds to a virtual camera (VC) engine for generating, using a virtual camera, a navigation presentation for display on a display screen of a device, said presentation displaying the device navigating on a map along a route to a destination, the program comprising sets of instructions for: presenting, by the VC engine, a first navigation scene of the navigation presentation on the display screen, the first navigation scene tracking a current location of the device; determining that a maneuver type of two or more upcoming maneuvers along the route corresponds to a grouped maneuver type; and in response to determining that the two or more upcoming maneuvers correspond to the grouped maneuver type, presenting, by the VC engine, a second navigation scene of the navigation presentation that frames the two or more upcoming maneuvers as a group, including: automatically identifying, by the VC engine, an approach along the route of a first maneuver of the two or more maneuvers; and in response to the identification, causing the virtual camera to present the current location and a group of maneuvers including the two or more upcoming maneuvers as a second navigation scene of the navigation presentation.
2. The non-transitory machine readable medium of claim 1 , wherein the program further comprises a set of instructions for: determining that the two or more upcoming maneuvers satisfy a set of grouping criteria, wherein the set of grouping criteria comprises a maximum number of maneuvers in the group; and limiting the number of maneuvers in the group to be no more than a particular number.
3. The non-transitory machine readable medium of claim 2 , wherein the set of grouping criteria comprises a minimum number of maneuvers in the group, and wherein the program further comprises a set of instructions for requiring the number of maneuvers in the group to be at least a particular number.
4. The non-transitory machine readable medium of claim 2 , wherein the set of grouping criteria comprises a criterion for grouping successive maneuvers that are associated with at least one category, wherein the program further comprises a set of instructions for: determining whether each upcoming maneuver is associated with at least one category; and identifying a subset of successive upcoming maneuvers that are associated with at least one category; defining the subset of successive upcoming maneuvers as the group of upcoming maneuvers.
5. The non-transitory machine readable medium of claim 4 , wherein at least one category for grouping maneuvers relates to whether at least two successive maneuvers are within a particular threshold distance of each other.
6. The non-transitory machine readable medium of claim 4 , wherein each maneuver has a type, wherein at least one category for grouping the maneuvers relates to whether each of at least two successive maneuvers has a type from a set of maneuver types that need to be grouped.
7. The non-transitory machine readable medium of claim 1 , wherein the maneuver type comprises roundabout maneuvers and exit ramps.
8. The non-transitory machine readable medium of claim 1 , wherein the program further comprises sets of instructions for: providing to the virtual camera the locations of the maneuvers in the group of maneuvers, said virtual camera using the provided locations to generate, for each navigation scene, a frame that encompasses all the maneuvers in the group of upcoming maneuvers.
9. The non-transitory machine readable medium of claim 8 , wherein for each navigation scene, the virtual camera adjusts a zoom level at which the virtual camera captures a portion of the map in order to ensure that the frame for that scene is shown within a particular location of a display screen of the device.
10. The method of claim 1 , further comprising: directing, by the VC engine, the virtual camera to orient toward a last maneuver in the group of maneuvers while the virtual camera frames the current location of the device and the group of maneuvers.
11. The method of claim 1 , wherein presenting the second navigation scene further comprises causing, by the VC engine, the virtual camera to zoom out from the first navigation scene to the second navigation scene.
12. The method of claim 1 , further comprising: presenting the first navigation scene in a perspective 3D presentation while the virtual camera is in a tracking mode; causing the virtual camera to enter a framing mode; and presenting the second navigation scene in a top-down 2D presentation.
13. The method of claim 1 , further comprising: determining that the device has passed the first maneuver of the group of maneuvers; and causing the virtual camera to frame the current location of the device and the group of maneuvers without the first maneuver in a framing mode, further comprising changing an orientation of the virtual camera to frame the current location and the group of maneuvers without the first maneuver.
14. The method of claim 1 , further comprising: causing, by the VC engine, the virtual camera to at least partially disassociate an angular rotation relationship between a virtual camera coordinate system and a current location indicator coordinate system, thereby allowing a current location indicator of the device to rotate independently of the map when in a framing mode.
15. The method of claim 1 , further comprising: identifying that a first maneuver of the two or maneuvers has a first maneuver type; identifying that a second maneuver of the two or more maneuvers has a second maneuver type; determining that the first maneuver type and the second maneuver type are identical; in response to the determination, grouping the first maneuver and the second maneuver into a first group of maneuvers; and causing the virtual camera to concurrently present the current location, and the first group of maneuvers as the second navigation scene.
16. A mobile device comprising: a set of processing units for executing instructions; a non-transitory machine readable medium storing a program for execution by at least one processing unit, wherein the program corresponds to a virtual camera (VC) engine for generating, using a virtual camera, a navigation presentation for display on a device, said presentation displaying the device navigating on a map along a route to a destination, the program comprising sets of instructions for: presenting, by the VC engine, a first navigation scene of the navigation presentation on the display screen, the first navigation scene tracking a current location of the device; determining that a maneuver type of two or more upcoming maneuvers along the route corresponds to a grouped maneuver type; and in response to determining that the two or more upcoming maneuvers correspond to the grouped maneuver type, presenting, by the VC engine, a second navigation scene of the navigation presentation that frames the two or more upcoming maneuvers as a group, including: automatically identifying, by the VC engine, an approach along the route of a first maneuver of the two or more maneuvers; and in response to the identification, causing the virtual camera to present the current location and a group of maneuvers including the two or more upcoming maneuvers as a second navigation scene of the navigation presentation.
17. The mobile device of claim 16 , wherein the program further comprises a set of instructions for: determining that the two or more upcoming maneuvers satisfy a set of grouping criteria, wherein the set of grouping criteria comprises a maximum number of maneuvers in the group; and limiting the number of maneuvers in the group to be no more than a particular number.
18. The mobile device of claim 17 , wherein the set of grouping criteria comprises a minimum number of maneuvers in the group, and wherein the program further comprises a set of instructions for requiring the number of maneuvers in the group to be at least a particular number.
19. The mobile device of claim 16 , wherein the set of grouping criteria comprises a criterion for grouping successive maneuvers that are associated with at least one category, wherein the program further comprises a set of instructions for: determining whether each upcoming maneuver is associated with at least one category; and identifying a subset of successive upcoming maneuvers that are associated with at least one category; defining the subset of successive upcoming maneuvers as the group of upcoming maneuvers.
20. The mobile device of claim 19 , wherein at least one category for grouping maneuvers relates to whether at least two successive maneuvers are within a particular threshold distance of each other.
21. The mobile device of claim 19 , wherein each maneuver has a type, wherein at least one category for grouping the maneuvers relates to whether each of at least two successive maneuvers has a type from a set of maneuver types that need to be grouped.
22. The mobile device of claim 16 , wherein the maneuver type comprises roundabout maneuvers and exit ramps.
23. The mobile device of claim 16 , wherein the program further comprises sets of instructions for: providing to the virtual camera the locations of the maneuvers in the group of maneuvers, said virtual camera using the provided locations to generate, for each navigation scene, a frame that encompasses all the maneuvers in the group of upcoming maneuvers.
24. The mobile device of claim 16 , wherein to generate the frame for each navigation scene, the virtual camera points towards the last maneuver in the group of maneuvers.
Cooperative Patent Classification codes for this invention. Click any code to explore related patents in that topic.
September 23, 2016
August 11, 2020
Browse 5M+ US patents with plain-English claim translations and AI-generated analysis.