The official blog for Google Maps
Under the hood of Google Maps 5.0 for Android
December 17, 2010
[Cross-posted from the
Official Google Blog
]
Yesterday we
introduced Google Maps 5.0 for Android
with two significant new features: 3D interaction and offline reliability. In order to create these features, we rebuilt Maps using
vector graphics
to dynamically draw the map as you use it. Building a vector graphics engine capable of achieving the visual quality and performance level you expect from Google Maps was a major technical challenge and enables all sorts of future possibilities. So we wanted to give you a closer look under the hood at the technology driving the next generation of mobile maps.
Vector graphics
Before diving into how Maps uses vector graphics, it may be helpful to understand how maps were created before. Previously, Google Maps downloaded the map as sets of individual 256x256 pixel “image tiles.” Each pre-rendered image tile was downloaded with its own section of map imagery, roads, labels and other features baked right in. Google Maps would download each tile as you needed it and then stitch sets together to form the map you see. It takes more than 360 billion tiles to cover the whole world at 20 zoom levels!
Now, we use vector graphics to dynamically draw the map. Maps will download “vector tiles” that describe the underlying geometry of the map. You can think of them as the blueprints needed to draw a map, instead of static map images. Because you only need to download the blueprints, the amount of data needed to draw maps from vector tiles is drastically less than when downloading pre-rendered image tiles. Google Maps isn’t the first mobile app to use vector graphics—in fact, Google Earth and our Navigation (Beta) feature do already. But a combination of modern device hardware and innovative engineering allow us to stream vector tiles efficiently and render them smoothly, while maintaining the speed and readability we require in Google Maps. Just try it out and see for yourself!
See the difference between image tiles (left) and vector tiles (right) tilted to show 3D buildings.
One map, many perspectives
Using vector tiles instead of image tiles gives Maps the flexibility to re-draw the same map from different perspectives using the same set of data. Zooming is one example of this at work. If you magnify an map image tile by 2x, lines such as roads and text would get twice as wide and appear blurry. As a result, we had to constrain Maps to 20 fixed “zoom levels,” each one twice as close as the last. Every time you zoomed in further, you’d need to download a completely new set of image tiles. It took time to load new data over a mobile data connection, and would fail when you lost your connection in a subway or large building.
Compared to image tiles (left), vector tiles (right) keep lines and labels crisp as you zoom.
With vector graphics, you no longer need to “round” to the nearest zoom level and then download all the tiles for that level. One vector tile has the underlying vector data (or blueprints) to draw the map at many different levels of scale. So when you zoom, the map stops when your fingers stop, and roads and labels always stay crisp. This same technique powers the new 3D map interactions: tilt, rotate and compass mode. Just like with zooming, Maps uses the same vector data to draw the map from any angle or direction as you tilt or rotate.
We can also display entirely new levels of detail that weren’t possible with flat image tiles. For example, in the
100+ cities
where we have 3D building data, each building is drawn in 3D using a polygonal building footprint and heights for different parts of the building. And with tilt and rotate, you can see them from a variety of different angles.
Reading the map
Just like other map features, labels are dynamically drawn so they continue to face you and stay legible if you rotate the rest of the map or use compass mode. Maps also “chooses” the best labels to show you based on several factors. You’ll notice labels fade in and out as you interact with the map so that the most useful ones appear and the map never gets too cluttered.
See the difference between rotating maps with static labels (left) and dynamic labels (right).
Vector graphics also allow us to draw additional data on the map more clearly. For example, traffic or transit lines no longer block the labels beneath them. We can also draw the same map in different styles—like “satellite view” where the roads are translucent over aerial imagery, or Navigation’s “night mode” where a darker palette helps your eyes adjust quickly in the lower light.
Previously, map features like labels and traffic could conflict (left) instead of blend seamlessly (right).
Offline reliability
Vector graphics also enable another significant new feature: the ability to continue viewing maps even when you have poor—or no—network connections. Because each vector tile works across multiple zoom levels, it requires more than 100 times less data to view maps across all zoom levels than before, allowing Maps to cache much larger areas of the map on your device.
With this first version, Maps proactively caches map data for the places you use Maps the most—where you’re actively using it as well as places for which you search or get directions. Then when you’re plugged in and connected over WiFi, caching happens automatically. Near your frequent places, you’ll get detailed vector tiles for city-sized regions so you can see every road labeled. Further away, you’ll have less detail but will typically have towns and highways labeled for miles. We’re continuing to work on these algorithms, so you’ll see improvements over time.
Offline rerouting
With Google Maps Navigation (Beta), you’ll also see the benefits of additional caching with offline rerouting. This feature is only possible because Navigation caches not only map data but also data like turn restrictions for the areas surrounding your route. You’ll still need to be connected when you first start a trip to download and cache your route. But this way, even if you take a wrong turn after losing your connection, Navigation can use the cached data to get you back on your way. We will be rolling this feature out gradually over the next few weeks.
This is just the start, and we’re really excited about all the possible ways to use vector graphics technology for the next generation of Google Maps. So please stay tuned!
Posted by Andrew Miller, Software Engineer, Google Maps for mobile
No comments :
Post a Comment
Note: Only a member of this blog may post a comment.
Labels
#streetview
#treasuremap
+1
3D
8bitmaps
Adwords Express
Africa
Amazon
Andorra
Android
api
Art Project
Audi
biking
Boost
Boulder
Brazil
Bulgaria
Business Photos
Business View
businesses
Canada
check-in
community
competition
contest
crisis response
Culture
custom maps
developer
Developers
directions
disaster response
discovery
earth outreach
education
Emmy Awards
Enterprise
Estonia
Europe
Explore
Fusion Tables
gadgets
Gibraltar
GMM
google
Google Earth
Google Earth Engine
Google Map Maker
Google Maps
Google Maps API
Google Maps Engine
Google Maps for Mobile
Google Maps Gallery
Google Maps Navigation
Google Maps Transit
Google Places
Google Plus
Google Search
Google Street View
google.org
Google+
googlenew
Grand Canyon
ground truth
Halloween
historical
history
holiday
Hotpot
Hungary
imager
imagery
Indoor Maps
iOS
iPhone
Iraq
Japan
Latitude
Latvia
layers
LBC
Lithuania
London
Making of Maps
Malaysia
Mall of America
Map Maker
Maps Blog
Maps Gallery
mapsgl
Matt Harding
Mexico
Mobile
Monticello
My Maps
my places
my tracks
National Geographic
navigation
new Google Maps
oblique imagery
ocean
offline maps
Olympics
Outreach
Pakistan
Panoramio
Parks Canada
Pegman
Photo Spheres
photo tours
photos
picasa
Polar Bears
Quiz
real estate
restaurants
road trips
Russia
Santa
Santa Tracker
search stories
SketchUp
Slovakia
Slovenia
South Sudan
space
Spain
sports
Street View
summer
SXSW
Tags
Thomas Jefferson
Thomas Jefferson Foundation
Tip of the week
tips
tour guide
traffic
Train
Transit
travel
trees
Trekker
Trike
Trolley
U.S. National Park Service
Ukraine
University of Virginia
Valentine's Day
Veterans Day
Views
voice search
walking
Waze
weather
webgl
Your Timeline
zagat
Archive
2016
Sep
Aug
Jul
Jun
May
Apr
Mar
Feb
Jan
2015
Dec
Nov
Oct
Sep
Aug
Jul
Jun
May
Apr
Mar
Feb
Jan
2014
Dec
Nov
Oct
Sep
Aug
Jul
Jun
May
Apr
Mar
Feb
Jan
2013
Dec
Nov
Oct
Sep
Aug
Jul
Jun
May
Apr
Mar
Feb
Jan
2012
Dec
Nov
Oct
Sep
Aug
Jul
Jun
May
Apr
Mar
Feb
Jan
2011
Dec
Nov
Oct
Sep
Aug
Jul
Jun
May
Apr
Mar
Feb
Jan
2010
Dec
Nov
Oct
Sep
Aug
Jul
Jun
May
Apr
Mar
Feb
Jan
2009
Dec
Nov
Oct
Sep
Aug
Jul
Jun
May
Apr
Mar
Feb
Jan
2008
Dec
Nov
Oct
Sep
Aug
Jul
Jun
May
Apr
Mar
Feb
Jan
2007
Dec
Nov
Oct
Sep
Aug
Jul
Jun
May
Feed
Google
on
Follow @googlemaps
Follow
Give us feedback in our
Product Forums
.
No comments :
Post a Comment
Note: Only a member of this blog may post a comment.