Friday, October 8, 2010

Android map applications

There is an incredible application Maverick that shows several different maps, including the Google Maps, and - what is the punch line - it caches them for the offline usage. Once you browse them on your phone (e.g. using the free WiFi connection), you can go out, stay offline and you still see and use the maps! Only in the zoom levels that you browsed them at home, of course. There is a free version of Maverick and then there is a Maverick Pro version. These versions differ in number of custom waypoints, and perhaps in few other details, but the main feature, the map caching, is in both of them.

Maverick can also be used for recording your tracks.

The real miracle behind Maverick, however, is another application, a PC-based program Mobile Atlas Creator (aka TrekBuddy Atlas Creator). It is an open-source program that prepares map tiles for several different mobile applications, including Maverick. As I said, Maverick can cache its maps itself - but if you need a bigger area prepared automatically, without manually browsing it on your phone, you install and use Mobile Atlas Creator. It is a Java-based application and, therefore, it runs on any operating system (definitely Linux, Windows, Mac). It allows to cache not only Google maps (both road and satellite maps) but many others. The OpenStreetMap project is, of course, supported. Incredibly, you can also get maps such as UK OS Multimap:

The maps are stored as "tiles" - a rectangle pictures of the earth surface; each tile in a separate file. Depending on the zoom level, there can be several hundreds thousands or even millions of tiles for not that big area. Therefore, it can take a lot of space on the SD card in your mobile device. It is recommended to format your SD card as the FAT32 filesystem with cluster size of 2048 KB (a cluster size is a minimum size any file takes even if it contains just a single character).

I do not know about a good way how to remove tiles that I do not need anymore. Because you do not easily know which tiles belongs to which area - all tiles are just numbered according to some coordinate system. For the Google maps, the system is known, and I found a useful Perl script that can calculate tiles numbers of a rectangular area (given by coordinates of its two corners).

No comments:

Post a Comment