Three-Dimensional Overlays Within Navigable Panoramic Images, and Applications Thereof
A panorama viewer is disclosed which facilitates navigation from within the panorama of a larger, structured system such as a map. The panorama viewer presents a viewport on a portion of a panoramic image, the viewport including a three-dimensional overlay rendered with the panoramic image. As the orientation of the viewport within the panoramic image changes, the three-dimensional overlay's orientation in three-dimensional space also changes as it is rendered with the panoramic image in a manner that matches the change in orientation of the viewport.
1 . A method for viewing panoramic images, comprising:
(a) receiving at least a portion of a first panoramic image geocoded to a first location;
(b) receiving configuration information specifying an overlay for the first panoramic image;
(c) rendering, in a three-dimensional space, the at least a portion of the first panoramic image for display;
(d) rendering the overlay in the three-dimensional space of the first panoramic image for display with the first panoramic image in a viewport;
(e) in response to receipt of a first input to change orientation of the viewport, changing the orientation of the overlay in three-dimensional space as it is rendered with the first panoramic image so as to match a change in orientation of the first panoramic image within the viewport; and
(f) in response to receipt of a second input specifying a position on the first panoramic image, presenting a second panoramic image geocoded to a second location different from the first location, the second location determined according to the position.
2 . The method of claim 1 , wherein the rendering (d) comprises modeling the overlay using a pinhole camera model, wherein a focal length of the pinhole camera model corresponds to a height of the viewport and a depth of the three-dimensional space.
3 . The method of claim 1 , wherein the rendering (c) comprises texture mapping the at least a portion of the first panoramic image to a surface having canonical homomorphism.
4 . The method of claim 1 , wherein the overlay comprises an annotation describing a feature of the first panoramic image, the annotation positioned to correspond to a position of the feature in the first panoramic image.
5 . The method of claim 4 , wherein the annotation is a street line positioned to correspond to the direction of a street in the first panoramic image, and wherein the overlay further comprises a street name positioned to identify the street in the first panoramic image.
6 . The method of claim 1 , wherein the overlay includes a navigation icon associated with the second panoramic image and wherein the second input in (f) is a selection of the navigation icon.
7 . The method of claim 1 , wherein the receiving (a) comprises receiving street-level imagery.
8 . The method of claim 1 , further comprising:
(g) displaying a user orientation character at a first position on a map, the first position corresponding to the first location; and
(h) in response to the second input, displaying the user orientation character at a second position on the map, the second position corresponding to the second location.
9 . The method of claim 8 , further comprising:
(j) presenting a first line on the map representing a first street where panoramic image data is unavailable; and
(k) presenting a second line on the map differently from the presenting in (j), the second line representing a second street where panoramic image data is available,
whereby the difference in the presenting (j) and the presenting (k) indicates to a user where panoramic image data is available.
10 . A system for viewing panoramic images, comprising:
a panorama viewer that
(i) receives at least a portion of a first panoramic image and configuration information, the first panoramic image geocoded to a first location, and the configuration information specifying an overlay for the first panoramic image,
(ii) renders, in a three-dimensional space, the at least a portion of the first panoramic image and the overlay of the first panoramic image for display in a viewport,
(iii) in response to receipt of a first input to change orientation of the viewport, changes the orientation of the overlay in three-dimensional space as it is rendered with the first panoramic image so as to match a change in orientation of the first panoramic image within the viewport, and
(iv) in response to receipt of a second input specifying a position on the first panoramic image, presents a second panoramic image geocoded to a second location different from the first location, the second location determined according to the position.
11 . The system of claim 10 , wherein the panorama viewer models the overlay using a pinhole camera model to render the overlay in the three-dimensional space, wherein a focal length of the pinhole camera model corresponds to a height of the viewport and a depth of the three-dimensional space.
12 . The system of claim 10 , wherein the panorama viewer models texture maps the at least a portion of the first panoramic image to a surface having canonical homomorphism to render the first panoramic image.
13 . The system of claim 10 , wherein the overlay comprises an annotation describing a feature of the first panoramic image, the annotation positioned in the first panoramic image to correspond to a position of the feature.
14 . The system of claim 13 , wherein the annotation is a street line positioned to correspond to the direction of a street in the first panoramic image, and wherein the overlay further comprises a street name positioned to identify the street in the first panoramic image.
15 . The system of claim 10 , wherein the overlay includes a navigation icon associated with the second panoramic image and wherein the second input is a selection of the navigation icon.
16 . The system of claim 10 , wherein the first and second panoramic images comprise street-level imagery.
17 . The system of claim 10 , further comprising:
a mapping service that displays a user orientation character at a first position on a map, the first position corresponding to the first location and, in response to the second input, displays the user orientation character at a second position on the map, the second position corresponding to the second location.
18 . The system of claim 17 , wherein the mapping service presents a first line on the map representing a first street where panoramic image data is unavailable and presents a second line on the map differently from the presentation of the first line, the second line representing a second street where panoramic image data is available,
whereby the difference in the presentation of the first line and the presentation of the second line indicates to a user where panoramic image data is available.
19 . A system for serving panoramic images and metadata, comprising:
a server that sends data to a client, the data including at least a portion of a panoramic image geocoded to a location, a configuration information specifying an overlay for the panoramic image, and a file,
wherein the file instructs the client to render, in a three-dimensional space, the at least a portion of the panoramic image for display and to render the overlay in the three-dimensional space of the panoramic image for display with the panoramic image in a viewport,
wherein the file instructs the client, in response to receipt of a first input to change orientation of the viewport, to change the orientation of the overlay in three-dimensional space as it is rendered with the panoramic image so as to match a change in orientation of the panoramic image within the viewport, and
wherein the file instructs the client, in response to receipt of a second input specifying a position on the panoramic image, to present a second panoramic image geocoded to a second location different from the first location, the second location determined according to the position.
20 . The system of claim 19 , wherein the file is a Flash file.