Google, Microsoft, and the USGS

April 8th, 2005

Doing a little Google Sightseeing the other day, I discovered a few interesting things about Google Maps and Microsoft’s Terra Server: they often use the same source images. Maybe this isn’t a surprise to anyone who has followed the Google Keyhole acquisition more closely, and knows more about their technology – but it was a surprise to me. I thought Keyhole’s imagery was fundamentally new and gee-whiz as compared to the Microsoft site, which was “only” serving up images from the US Geological Survey.

I was looking at the Johnson Space Center, near where I work; specifically, I was looking for the Saturn V on display near the Saturn gate. I couldn’t zoom in as much as I wanted to on the rocket, and thought I’d compare Google’s view to the map from Terra Server. At the Microsoft site, I could zoom in more, and maybe that’s why I didn’t notice the similarity at first.

Eventually, I configured both sites to the same view. I used the locations of cars on the roads and in the parking lots as a basis of comparison, and discovered that every one of them match. There’s no doubt but that the Google and Microsoft images were taken at the same time.

Here are the images I compared. Click on each thumbnail to see the full image. Click on the link below each image to view the Google Map and Microsoft Terra Server sites directly. You may have to zoom the Google Map by clicking on ‘+’; for some reason, the Google site drops back one zoom level after you visit through the bookmark.

Image from Google Maps:

Image from Microsoft Terra Server:

Next I compared images of another interesting place, the US Space and Rocket Center in Huntsville, Alabama. Again, the Google and Microsoft images come from the same source. Compare the locations of the cars and buses in the parking lots. Compare the locations of the cars on the roads. They match one for one.

I say that the images are from the same source, not that they are the same image. The Google image is clearly foreshortened compared to the Microsoft image. Google and Microsoft are using different transformations to flatten the images (”orthorectification”); so Google is clearly not just serving up the same USGS image.

Image from Google Maps:

Image from Microsoft Terra Server:

So which image has the right transformation – Google or Microsoft? I haven’t found out yet, but a baseball diamond would make a good reference: 90 feet on a side.

The aerial views from Google and Microsoft don’t always match. Looking at the Kennedy Space Center in Florida, the Microsoft image is not only taken at a different time, but appears to be from a different class of imagery. (But check out the Crawler Transporter on the crawlerway in the Microsoft image!)

Image from Google Maps:

Image from Microsoft Terra Server:

Other Differences

The Microsoft Terra Server can zoom in more than the Google Maps site. For example, the US Space and Rocket Center screen grab above shows the Google map at maximum magnification, whereas the Terra Server can zoom in two steps further:


Is the Microsoft Terra Server really showing us more image information, or is it just serving up fatter pixels? Well, if you use the “info” link on the Microsoft site, it says that the source image is at a resolution of 0.3 meters per pixel, whereas the image has been scaled to 0.25 meters per pixel. However, the magnification level that appears to match the Google Maps view most closely is scaled to 1.0 meters per pixel. Thus, Google isn’t showing us as much information as is available in the source image, by a factor of about 3.

So, Which Is Better?

I hate questions like that; I always ask, “Better for what purpose?” For just plain fun browsing, Google Maps is way way better. For image quality, on the other hand, Microsoft’s images are sometimes better. Sometimes not. It just depends on what you’re looking at. One thing I prefer about Terra Server is that it is easy to grab an entire image using the “download” link. With Google, I haven’t been able to find any way to grab an image except for screen capture. And, of course, with Terra Server there’s no copyright notice overlaid all over the place.

My recommendation: browse with Google Maps. When you find something you like, flip over to the Microsoft Terra Server and pull up the same image. You can do that by pulling the latitude and longitude out of the Google Map URL. Here’s the recipe:

After you’ve found the view in Google Maps that you want to view in Terra Server, click the “Link to this page” link. Now examine the URL in your browser’s location field. It will look something like this:,-114.738711

The “ll=” part contains the latitude and longitude, in that order. If your URL doesn’t have a latitude and longitude, then grab the map with your mouse and wiggle it around a little, then click on “Link to this page” again.

Select the latitude and longitude and copy it, then bring up this Terra Server page:

Paste the latitude and longitude into the form, and click “Go”.

Finally, a couple of plugs before I sign off.

Microsoft’s Terra Server uses imagery from the US Geological Survey. The USGS has its own National Map site that I like to use in addition to Google Maps and Terra Server. The National Map Viewer has some nice features. In addition to the orthoimagery like you’ll find at the Terra Server, you can access TELSAT7 imagery, topographic maps, and you can overlay the maps with symbology indicating roads, boundaries, place names, and so on. It has its quirks, though: the site can be exceptionally slow, and it’s not always easy to figure out. I’d love to see a site that combines the kinds of features found at the National Map with the speed and ease of use of Google Maps.

Second plug: Joel Webber has been doing digging into the Google Maps code, and describing how it works beneath the hood. Today he posted a cool analysis and some unobfuscated code showing how the Google Maps coordinate system works, and how the images are organized. Maybe Joel can give us some insight into the differences in how the Google and Microsoft sites use the USGS source images, in particular the differences in their orthorectification.

Happy mapping…

2 Responses to “Google, Microsoft, and the USGS”

  1. Tim Peterson Says:

    A few notes:

    TerraServer does indeed serve only USGS images, but there are two datasets available (as I’m sure you know). The first is the NAPP (National Aerial Photography Program) 1 meter per pixel grayscale imagery, which covers nearly all of the US. (Some of these images were actually taken in infrared, but they’ve been made grayscale for TerraServer.) The second is the USGS Urban Areas 1 foot resolution color imagery, which covers 30+ major cities. Some sites (such as GlobeXplorer) fall back on the NAPP imagery when they don’t have anything better to display. However, Google (and hence Keyhole) apparently accepts only color imagery, so they instead default to the lower resolution Landsat for the unimaged reaches of the country. Keyhole does make use of the Urban Areas imagery, which you’re seeing in most of the images above.

    I rather doubt that Keyhole does their own orthorectification, and even if they did it wouldn’t come out as squished as you see on Google compared with TerraServer’s rendition. The difference between the two is actually the map projection being used. TerraServer uses the UTM (Universal Transverse Mercator) projection, which slices the globe up into zones 6 degrees of longitude wide and then flattens them such that the resulting image pixels closely approximate square meters on the ground. This makes it easy to compare distances and directions on the image, but it also creates gaps between UTM zones. As a compromise between accuracy, user-friendliness, and easy programmability, Google Maps uses a simple lat-long projection, where pixels on the X and Y axes correspond directly to fractions of degrees of longitude and latitude, respectively. Due to the Earth’s curvature, however, this results in a horizontal stretching of the image in areas far from the equator. This is why the Google “Satellite” image is compressed vertically relative to TerraServer even though they both use the same source image. (The Maps view actually has a constant scale factor built in, which returns the map to approximately correct proportions for viewing the US. This scaling wasn’t applied to the Satellite imagery, though, perhaps because Keyhole already had everything in normal lat-long projection.)

    As you noted, the USGS Urban Areas imagery has 0.3m (1ft) resolution, which on TerraServer is scaled to 0.25m resolution (to match the powers-of-two zoom levels). Google’s maximum zoom level has a resolution of 1.2m/pixel vertically, and a horizontal resolution that ranges from 0.8m to 1m as you move from north to south in the US (due to the projection). So, Google’s zoom levels are approximately equivalent to TerraServer’s, all the way down to 1m.


  2. Jim Says:

    Thanks for the notes, Tim.

    I was aware that there was a second set of imagery in addition to the USGS Urban Areas imagery, but I didn’t know what it was called.

    And yeah, you’re right that Google/Keyhole probably isn’t doing their own orthorectification. Why would they, if the USGS is already doing it? But it never occurred to me that the difference might be simply due to the map projection.