Type “77 Massachusetts Avenue 02139” into Google Earth, and you’ll see MIT’s Great Dome in all its glory. Click a button to zoom out, and soon you’ll see the state capitol, the celebrated Zakim Bridge, and maybe some other college up the river. (Watch a video demonstration.) These images, which are shared by Google Maps, are actually a combination of aerial photos and satellite imagery–and a lot of postprocessing. Technology Review interviewed engineers at Google and at DigitalGlobe, the company that supplies Google’s satellite photos, and did a little bit of reverse-engineering to figure out how it works.
Credit: Bryan Christie
1. High-Resolution Imagery
As it passes overhead at an altitude of 450 kilometers, DigitalGlobe’s QuickBird satellite photographs the planet’s surface. The satellite can take “snapshots” roughly 16.5 kilometers square or record “strips,” which measure 16.5 by 330 kilometers. The average resolution is roughly 60 square centimeters per pixel if the satellite is looking straight down, or less if it is looking at an angle. But because the satellite makes only 15 orbits per day, and because there is huge competition for its camera, most regions of the planet have not been photographed at high resolution. (Just try looking at Hazelton, WV, in Google Earth.) Lower-resolution data is provided by other satellites, like the Landsat-7, which has imaged the entire planet at a resolution of 15 meters. Information about an image’s absolute position is captured with the help of GPS.
2. Ground Station and Postprocessing
The satellite stores the image, then sends it down to DigitalGlobe’s ground station in either Norway or Alaska when it passes overhead. The data then travels to a data center in Colorado, where differences in photographic angle are corrected, and the images are mapped onto a 3-D digital elevation model. This process, called orthorectification, prevents features on the tops of hills and mountains from being smeared out or placed in the wrong locations. Finally, the image is resampled so that its pixels will be aligned with the latitude-longitude grid. (The digital elevation model is what lets Google Earth “tilt” the ground for realistic views of the Grand Canyon [video] and Mount Everest [video].)
3. Aerial Photography
Many areas of high interest, like Boston and San Francisco, are also photographed by aircraft; clearly visible in the resulting photos are car sunroofs, lampposts, and even people. As it does during satellite photography, GPS provides absolute-position information; aerial photographs may be further aligned using landmarks. Some towns, such as Bergen, Norway, have taken their own photographs and given them to Google so that vacationers and real-estate investors can get a better view.
4. Digital Pyramids
Google stores data from DigitalGlobe and other sources in a massive geographical database arranged by latitude and longitude. Multiple images of each part of the world are then generated, at varying resolutions, and these images are arranged into “pyramids” of data. Google’s servers can thus send an image of a particular location, at a particular magnification, to a Google Maps or Google Earth user, with very little delay.
5. www.google.com/maps
Running inside a Web browser, the Google Maps client application contains more than 200 kilobytes of compact and obfuscated JavaScript that is downloaded when the browser first displays the map. The application determines which piece of which pyramid should be displayed next and requests it using a standard HTTP “get” command–the same command that’s used to download Web pages and images from any Web server. The images are stored in the browser’s cache and displayed when the user scrolls to the requested area, zooms in, or zooms out. The browser automatically throws away images from the cache when they are no longer needed.
Annotation
Respected information providers like National Geographic and Google community members like your Aunt Betty can supply additional “layers” of data that are tied to particular geographical locations. That information is also stored on servers at Google and elsewhere on the Internet. The list of all available layers appears at the lower left of the Google Earth application window; checking a box makes the application ask the servers for all the layer data for the geographical area that’s on the screen and superimpose the data on the landscape.
Mashup
An annotated Google Maps satellite view can be embedded in any Web page. A developer just has to get a certain small piece of JavaScript and enter the coördinates of the location to be displayed, along with any annotations. When a browser visits the page, it downloads this information. The JavaScript directs the browser to contact Google’s server, send the coördinates, and download sections of the map.