IP Library Granted Patent US 10,928,216
Granted Patent B2
US 10,928,216 · App. 16/215,582 · Granted Feb 23, 2021

Systems and methods for controlling viewport movement in view of user context

Inventors: David X. Wang (Arncliffe, AU); Stephen Broadfoot (Neutral Bay, AU); Fabian Tamp (Stanmore, AU); Robertus Christianus Elisabeth Mariet (Mountain View, CA); Taylah Hasaballah (Sydney, AU)
Assignee: GOOGLE LLC
G01C21/367G01C21/3664G06F3/0488G09B29/007G09B29/10
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 10,928,216
App. No.
16/215,582
Granted
Feb 23, 2021
Kind
B2
Abstract

As part of a technique for positioning viewports over interactive digital maps, a digital map of a geographic area is provided via a user interface of a computing device. The currently visible portion of the digital map is displayed in a viewport. A user gesture is detected, where the user gesture communicates a particular acceleration to the viewport, along a particular direction, to move the viewport from its current position to a target position over the digital map. A current user context for the digital map is determined. A new position of the viewport over the digital map is determined in accordance with (i) the user gesture and (ii) the current user context, such that the new position is different from the target position, and the viewport is moved from its current position to the new position.

Claims (68)

1. A method for positioning viewports over interactive digital maps, the method comprising:

providing, by one or more processors, a digital map of a geographic area via a user interface of a computing device, including displaying a currently visible portion of the digital map in a viewport;

displaying a navigation route for travelling from a source location to a destination location in the geographic area on the digital map;

detecting, by one or more processors, a user gesture that communicates a particular acceleration to the viewport, along a particular direction, to move the viewport from its current position to a target position over the digital map;

determining, by one or more processors, whether the computing device is operating in a vehicle;

determining, by one or more processors, a trajectory of the viewport to a new position over the digital map, including:

modifying the direction communicated to the viewport in view of a geometry of the navigation route, so that the viewport is repositioned along the navigation route, when the computing device is determined to be operating in the vehicle, and

not modifying the direction communicated to the viewport in view of the geometry of the navigation route when the computing device is not determined to be operating in the vehicle, to move the viewport in the direction of the user gesture; and

moving the viewport from its current position to the new position.

2. The method of claim 1 , wherein moving the viewport according to the modified direction along the navigation route includes:

moving the viewport faster along a first portion of the navigation route than along a second portion of the navigation route.

3. The method of claim 2 , further comprising:

determining that the viewport should move faster along the first portion of the navigation route based on a density of points of interest along the first portion of the navigation route.

4. The method of claim 2 , further comprising:

determining that the viewport should move faster along the first portion of the navigation route based on a traffic level along the first portion of the navigation route.

5. The method of claim 2 , further comprising:

determining that the viewport should move faster along the first portion of the navigation route based on indications received from a navigation server via a communication network.

6. The method of claim 1 , wherein determining the trajectory of the viewport includes dampening the acceleration communicated to the viewport when no portion of the navigation route is visible in the viewport.

7. The method of claim 1 , wherein determining trajectory of the viewport includes modifying the direction communicated to the viewport to simulate attraction to the navigation route when at least a portion of the navigation route is visible in the viewport.

8. The method of claim 1 , wherein determining the trajectory of the viewport includes modifying the direction communicated to the viewport to simulate attraction to the destination location when the destination location is visible in the viewport.

9. The method of claim 1 , wherein determining the trajectory of the viewport includes:

(i) determining a first direction of the route,

(ii) determining a second direction perpendicular to the first direction,

(iii) applying a low-friction model to a component of the acceleration communicated to the viewport along the first direction, and

(iv) applying a damped spring model to a component of the acceleration communicated to the viewport along the second direction.

10. The method of claim 1 , further comprising:

determining a primary navigation route for travelling from a source location to a destination location in the geographic area, and

determining an alternate navigation route for travelling from the source location to the destination location in the geographic area,

wherein determining the new position of the viewport includes:

simulating attraction of the viewport toward the primary navigation route with a first strength, and

simulating attraction of the viewport toward the secondary navigation route with a second strength,

wherein the first strength is larger than the second strength.

11. The method of claim 1 , wherein:

the user interface includes a touch surface;

the user gesture is a first gesture in which motion parallel to the touch surface continues when there is no more contact with the touch surface;

the method further comprising:

detecting, by one or more processors in another instance, a second user gesture in which motion parallel to the touch surface occurs only when there is contact with the touch surface;

determining, by one or more processors, a new position of the viewport over the digital map in accordance with the second user gesture, independently of whether the computing device is determined to be operating in the vehicle;

moving the viewport from its current position to the new position.

12. A computing device comprising:

a user interface configured to receive gesture-based input;

one or more processors; and

a non-transitory memory readable by the one or more processors, wherein the memory stores instructions that, when executed by the one or more processors, cause the computing device to:

provide a digital map of a geographic area via the user interface, including display a currently visible portion of the digital map in a viewport,

display a navigation route for travelling from a source location to a destination location in the geographic area on the digital map,

detect a user gesture that communicates motion to the viewport,

determine how the viewport is to be repositioned over the digital map based on at least one of (i) a direction of the communicated motion relative to the navigation route (ii) a lock condition indicative of motion of the viewport being restricted to the navigation route, wherein the lock condition corresponds to one of (ii) the computing device operating in a vehicle, or (ii) an explicit user command, and

reposition the viewport in accordance with (i) the user gesture and (ii) the lock condition.

13. The computing device of claim 12 , wherein the instructions cause the computing device to:

when the lock condition is met, reposition the viewport along the navigation route, and

when the lock condition is not met, reposition in a direction of the user gesture, independently of a geometry of the navigation route.

14. The computing device of claim 12 , wherein to determine the new position of the viewport, the instructions cause the computing device to dampen the acceleration communicated to the viewport when no portion of the navigation route is visible in the viewport.

15. The computing device of claim 12 , wherein to determine the new position of the viewport, the instructions cause the computing device to modify the direction communicated to the viewport to simulate attraction to the navigation route when at least a portion of the navigation route is visible in the viewport.

16. The computing device of claim 12 , wherein to determine the new position of the viewport, the instructions cause the computing device to modify the direction communicated to the viewport to simulate attraction to the destination location when the destination location is visible in the viewport.

17. The computing device of claim 12 , wherein to determine the new position of the viewport, the instructions cause the computing device to:

(i) determine a first direction of the route relative to the viewport,

(ii) determine a second direction perpendicular to the first direction,

(iii) apply a low-friction model to a component of the acceleration communicated to the viewport along the first direction, and

(iv) apply a damped spring model to a component of the acceleration communicated to the viewport along the second direction.

18. The computing device of claim 12 , wherein the instructions further cause the computing device to:

display, within the viewport at the new position, a position indicator overlaying the navigation route, wherein the viewport is centered at the position indicator once the computing device reaches the location corresponding to the position indicator.

19. The computing device of claim 12 , wherein:

the user interface includes a touch surface;

the user gesture is a first gesture in which motion parallel to the touch surface continues when there is no more contact with the touch surface;

the instructions further configured to:

detect, in another instance, a second user gesture in which motion parallel to the touch surface occurs only when there is contact with the touch surface;

determine a new position of the viewport over the digital map in accordance with the second user gesture, independently of the lock condition,

move the viewport from its current position to the new position.

Assignments (2)
CHANGE OF NAME Recorded Jan 22, 2019
From: GOOGLE INC.
To: GOOGLE LLC
Reel/Frame 049638/0199 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 22, 2019
From: WANG, DAVID X.; BROADFOOT, STEPHEN; TAMP, FABIAN; MARIET, ROBERTUS CHRISTIANUS ELISABETH; HASABALLAH, TAYLAH
To: GOOGLE INC.
Reel/Frame 048086/0810 →
Continuity (4)
Continuation 14952676 · Nov 25, 2015
Provisional Application 62167176 · May 27, 2015
Provisional Application 62084442 · Nov 25, 2014
Related Publication 20190120648A1 · Apr 25, 2019