I started this little project while playing with Google Earth and I wondered what it would look like when you assemble individual Google Street View images into a time lapse video. I wasn't sure about which places would even be worth watching using this method and I could only come up with the ones below. Maybe you'll find them interesting as well or you may be able to suggest other interesting places?

Email: ejtaal at gmail dot com


Please note, these videos are best watched in HQ mode and full screen. The kml files show both the path as well as the places where my script found the camera turning around, which means that a different sequence of images begins as taken by Google's Street View car.

If there's enough demand I could make a torrent containing all the higher quality videos, which are 3000 kbs as opposed to the youtube versions of 500 kbs below.

Index of currently available videos:


TODO:


US-163, Monument Valley, USA

My initial thought as I discovered Street View was, how would it be to drive through Monument Valley? Obviously not as good as in the movies, galloping through it on a horse during the sunset ;) Anyway, here's the result:

Download the kml file for this video!

US 1, USA (Florida Keys Highway or Overseas Highway)

The video starts off at the edge of the Florida main land and follows the road all the way up to Key West.

Download the kml file for this video!

I-70, Utah/Colorado

This particular stretch of highway, the start of the I-70 leading all the way up to Denver, has apparently been voted the most scenic highway in the US and therefore is the most suitable target of my timelapse endeavours.


Part 1 of 3:

Part 2 of 3:

Part 3 of 3:

Download the kml file for this video!

Akashi Kaikyo bridge, Japan

This is the longest suspension bridge in the world, so let's see how it would be to drive over it:

Download the kml file for this video!

90 Mile Straight, Nullabor Plain, Australia

Ok, this may be one of the most boring videos ever, but since I had the opportunity to make it, I felt it had to be done!

Download the kml file for this video!

How was it done?

Each Street View panorama image is identified by a certain hash string. I could only find out this string by sniffing network traffic and extracting the urls that were requested from Google's server by Google Earth. I've also noticed that this string can also be found in the 'link to here' link in the Google Maps interface (after where it says '&panoid='. However Google Earth is more suitable for setting up the start and end point, as well as the boundaries of the trip I want the script to follow. Anyways, apart from this Google seems to have kept the rest of the protocol open enough to allow me to create some automation scripts.

When the panoid string for the starting point is known you can fetch the panorama's corresponding xml file with the following url:

http://cbk1.google.com/cbk?output=xml&panoid=$panoid&cb_client=maps_sv

This is an example of what the xml file will contain, it's more or less self explanatory:

<?xml version="1.0" encoding="UTF-8"?>
<panorama>
  <data_properties image_width="3328" image_height="1664" tile_width="512" tile_height="512" pano_id="aar9Fj2a6oMcEhJzeNJi0Q" num_zoom_levels="3" lat="25.079855" lng="-80.457067">
    <copyright>© 2009 Google</copyright>
    <text>Overseas Hwy</text>
    <street_range>98390</street_range>
    <region>Key Largo, FL</region>
    <country>United States</country>
  </data_properties>
  <projection_properties projection_type="spherical" pano_yaw_deg="226.87" tilt_yaw_deg="34.86" tilt_pitch_deg="0.84"/>
  <annotation_properties>
    <link yaw_deg="45.11" pano_id="NSx1kx5Y0xkchKlDCdZZWg" road_argb="0x80fffa73">
      <link_text>Overseas Hwy</link_text>
    </link>
    <link yaw_deg="225.11" pano_id="n0muYnSXNb1wGxaZqOVIng" road_argb="0x80fffa73">
      <link_text>Overseas Hwy</link_text>
    </link>
  </annotation_properties>
</panorama>

Next, you can fetch the tiles of each panorama by substituting different values for zoom, x and y in the following url:

http://cbk1.google.com/cbk?output=tile&panoid=${panoid}&zoom=${zoom}&x=${x}&y=${y}&cb_client=maps_sv

From the link area in the above xml you can see it's relatively straight forward to let a scrip loop in the desired angle of direction to fetch all subsequent xml files. Once this is done, all panorama tile images will need to be downloaded, stitched together and cropped according to preference.

Now I'm waiting for someone to tell me how easy it would have been had I used the Google Maps API ;)

Links