IP Library Granted Patent US 8,686,995
Granted Patent B2
US 8,686,995 · App. 13/302,596 · Granted Apr 1, 2014

Path planning for street level navigation in a three-dimensional environment, and applications thereof

Inventor: Gokul Varadhan (San Francisco, CA)
Assignee: Google Inc.
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 8,686,995
App. No.
13/302,596
Granted
Apr 1, 2014
Kind
B2
Abstract

Embodiments relate to navigating along a street network in a geographic information system. In an embodiment, a computer-implemented method navigates a virtual camera in a three-dimensional environment at street-level. The virtual camera defines a perspective to display the three-dimensional environment. In the method, a target location is determined in the three-dimensional environment. A path along a representation of a street in the three-dimensional environment is determined. The path is from a first position corresponding to an initial location of the virtual camera to a second position corresponding to the target location. A virtual camera is moved in the three-dimensional environment toward the target location along the path. Finally, the virtual camera is oriented to face the target location as the virtual camera moves along the path.

Claims (34)

1. A computer-implemented method for street-level navigation of a virtual camera in a three-dimensional environment, the virtual camera defining a perspective to display the three-dimensional environment, comprising:

(a) determining, by one or more computing devices, a target location in the three-dimensional environment, the three-dimensional environment including a plurality of points, each point corresponding to a location where a panoramic photograph was taken;

(b) determining, by one or more computing devices, a path specified by a discontinuous series of two or more of the plurality of points in the three-dimensional environment such that the path runs from a first position corresponding to an initial location of the virtual camera to a second position corresponding to the target location, and wherein at least a portion of the path is determined to run along a representation of a street;

(c) moving, by one or more computing devices, the virtual camera in the three-dimensional environment toward the target location along the path determined in (b) such that the virtual camera is moved to each point in the series of points in an order specified by the series, wherein the three-dimensional environment includes a plurality of building models, at least one building model in the plurality of building models is positioned between the initial location of the virtual camera and the target location, and the virtual camera avoids colliding with the at least one building model by moving along the path specified the series of points; and

(d) orienting, by one or more computing devices, the virtual camera to face the target location as the virtual camera moves along the path.

2. The method of claim 1 , wherein determining (b) comprises:

(i) determining the path to turn at an intersection in a representation of a street network in the three-dimensional environment, and

(ii) interpolating a spline at the turn in the path to smooth motion of the virtual camera at the turn.

3. The method of claim 1 , wherein determining (b) comprises determining a first point in the series of points to be a position of the panoramic photograph closest to the initial location of virtual camera that does not specify that the virtual camera move away from the target location.

4. The method of claim 1 , wherein determining (b) comprises determining a final point in the series of points to be a position of the panoramic photograph closest to the target location of virtual camera that does not specify that the virtual camera move past the target location.

5. The method of claim 1 , wherein determining (b) comprises determining the path not to exceed a maximum length value.

6. The method of claim 1 , wherein determining (a) comprises:

(i) receiving position data representing a position on a viewport selected by a user;

(ii) extending a ray based on the position selected by the user;

(iii) determining the target location to be an intersection of the ray with an object in the three-dimensional model.

7. The method of claim 1 , further comprising:

(e) before the virtual camera is moved in (c) such that a view frustum of the virtual camera captures three-dimensional model data along the path, prefetching the three-dimensional model data.

8. A system for street-level navigation of a virtual camera in a three-dimensional environment, the virtual camera defining a perspective to display the three-dimensional environment, comprising:

a target module, implemented on one or more computing devices, that determines a target location in the three-dimensional environment, the three-dimensional environment including a plurality of points, each point corresponding to a location where a panoramic photograph was taken;

a path planner module, implemented on one or more computing devices, that determines a path specified by a discontinuous series of two or more of the plurality of points in the three-dimensional environment such that the path runs from a first position corresponding to an initial location of the virtual camera to a second position corresponding to the target location, and wherein at least a portion of the path is determined to run along a representation of a street; and

a path motion module, implemented on one or more computing devices, that, after the path planner module determines the path, moves the virtual camera in the three-dimensional environment toward the target location along the path and orients the virtual camera to face the target location as the virtual camera moves along the path such that the virtual camera is moved to each point in the series of points in an order specified by the series, wherein the three-dimensional environment includes a plurality of building models, at least one building model in the plurality of building models is positioned between the initial location of the virtual camera and the target location, and the virtual camera avoids colliding with the at least one building model by moving along the path specified by the series of points.

9. The system of claim 8 , wherein the path planner module determines the path to turn at an intersection in a representation of a street network in the three-dimensional environment and interpolates a spline at the turn in the path to smooth motion of the virtual camera at the turn.

10. The system of claim 8 , wherein the path planner module determines a first point in the series of points to be a position of the panoramic photograph closest to the initial location of virtual camera that does not specify that the virtual camera move away from the target location.

11. The system of claim 8 , wherein the path planner module determines a final point in the series of points to be the position of the panoramic photograph closest to the target location of virtual camera that does not specify that the virtual camera move past the target location.

12. The system of claim 8 , wherein the path planner module determines the path not to exceed a maximum length value.

13. The system of claim 8 , wherein the target module receives position data representing a position on a viewport selected by a user, extends a ray based on the position selected by the user, and determines the target location to be an intersection of the ray with an object in the three-dimensional model.

14. The system of claim 8 , wherein the path motion module, before the virtual camera is moved such that a view frustum of the virtual camera captures three-dimensional model data along the path, prefetches the three-dimensional model data.

15. The system of claim 8 , further comprising:

at least one computing device that implements the target module, the path planner module, and the path motion module.

16. A computer-implemented method for street-level navigation of a virtual camera in a three-dimensional environment, the virtual camera defining a perspective to display the three-dimensional environment, comprising:

(a) determining, by one or more computing devices, a target location in the three-dimensional environment, the three-dimensional environment including a plurality of points, each point corresponding to a location where a panoramic photograph was taken;

(b) determining, by one or more computing devices, a path specified by a discontinuous series of two or more of the plurality of points in the three-dimensional environment such that the path runs from a first position corresponding to an initial location of the virtual camera to a second position corresponding to the target location, and wherein at least a portion of the path is determined to run along a representation of a real-world pathway;

(c) moving, by one or more computing devices, the virtual camera in the three-dimensional environment toward the target location along the path determined in (b) such that the virtual camera is moved to each point in the series of points in an order specified by the series, wherein the three-dimensional environment includes a plurality of building models, at least one building model in the plurality of building models is positioned between the initial location of the virtual camera and the target location, and the virtual camera avoids colliding with the at least one building model by moving along the path specified by the series of points; and

(d) orienting, by one or more computing devices, the virtual camera to face the target location as the virtual camera moves along the path.

Assignments (3)
CHANGE OF NAME Recorded Oct 2, 2017
From: GOOGLE INC.
To: GOOGLE LLC
Reel/Frame 044101/0299 →
CORRECTIVE ASSIGNMENT TO CORRECT THE DOCKET NUMBER PREVIOUSLY RECORDED ON REEL 027269 FRAME 0413. ASSIGNOR(S) HEREBY CONFIRMS THE DOCKET NUMBER 2525.4640001. Recorded Jan 20, 2012
From: VARADHAN, GOKUL
To: GOOGLE INC.
Reel/Frame 027567/0405 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 22, 2011
From: VARADHAN, GOKUL
To: GOOGLE INC.
Reel/Frame 027269/0413 →
Continuity (2)
Provisional Application 61416920 · Nov 24, 2010
Related Publication 20120127170A1 · May 24, 2012