New Google Maps for Android gives mobile devs a masterclass

With the Google Nexus S arriving in the US tomorrow with Android Gingerbread baked in, Google have been talking up the changes in the latest update of their mobile OS.

At the end of last week, they wrote on their official Blog on the subject of how they have managed to improve the capabilities in Google Maps 5 for Android which has now shipped. It really is a masterclass in how to optimise for mobile devices.

Previously, the application used 256x256 pixel image tiles, containing all of the map, layout, and metadata in a single image. The application on the phone then stitched the images together client-side, downloading them as and when required. Unfortunately while this was a fairly generic and flexible approach (and nice and easy on client-side processing), huge amounts of data is required to store the individual images at each zoom level, and caching images for offline use was near impossible due to device restrictions. “It takes more than 360 billion tiles to cover the whole world at 20 zoom levels!”

The new content delivery mechanism uses a technique called vector maps. This instead transmits the data as a series of vectors, capable of describing road direction, features, distance, orientation, and much more world metadata (such as buildings) in a significantly smaller volume of data. This also means entire cities can be comfortably stored on the device (they compress quite well too), and routing directions can be recalculated on-the-fly without the need for a data connection. The downsides are it is a bit more difficult to figure out which bits of data the device actually needs to download, and a bit more expensive on client-side processing – but the advantages far outweigh the cost.

Check out the blog post for more on how the engineers accomplished the big update.

You might also like...

Comments

Contribute

Why not write for us? Or you could submit an event or a user group in your area. Alternatively just tell us what you think!

Our tools

We've got automatic conversion tools to convert C# to VB.NET, VB.NET to C#. Also you can compress javascript and compress css and generate sql connection strings.

“We should forget about small efficiencies, say about 97% of the time: premature optimization is the root of all evil.” - Donald Knuth