UPDATE: There is an updated version of Brut Maps – http://forum.xda-developers.com/showthread.php?t=1007132. Use the built-in Labs feature to download map tiles.
If you’ve used Google Maps before, you may appreciate it’s simplicity and ease of use, but one of the main drawbacks is requiring a data connection when you are searching for places and loading maps. What if you were travelling into an area where you didn’t have data coverage: For example travelling into a remote country area, overseas or you didn’t want to use your mobile allowance? Or if you constantly reference an area in Maps, you might find it handy to always have that area ready to use without having to re-download it each time.
For navigation only, an alternative is to use another standalone commercial navigation app, for example: one from Copilot, Sygic Mobile Maps, Andnav, NavDroyd, Ndrive, Navigon, iGo, Navitel or others, and they vary in terms of functionality and cost, though they generally work extremely well (my personal recommendation is for Sygic or Copilot). But for those that want a free option using Google Maps, there is a way. This guide will instruct you on how to save Google Maps information from your PC onto your phone.
Skill required: Low-Medium
Time required: Varies depending on map area
A Maps Primer
Before starting, it helps to understand how Google Maps saves it’s map information, both on the web browser and on the mobile app. Whenever you view any location on Google Maps, there are two crucial components. If you notice a map loading, you will notice it loads up in ’tile’ chunks, tile-by-tile. Maps constructs it’s view based on loading individual bitmaps up of where you are. The second part is the zoom level you are at, since there are a different set of tiles at each zoom level. Zoom level 0 is the furthest out (where the entire world is covered by one large tile), with zoom level 19 being the furthest in (which is around the size of 1 or 2 house blocks and consists of the most detail). Maps loads tiles as required, streaming them over your data connection.
A modified Maps
The current iteration of Google Maps at time of writing does not have an option to save or read map tiles to/from the SD card. With the huge microSD cards present in today’s devices, storage of these tiles (most of which are small in size) is possible, the key is to be able to load and organise them. Fortunately, a smart cookie by the name of Brut has modified the Google Maps program to allow this functionality. You can download Brut maps for Android (free) here. Follow my guide on installing APK’s if you need help on installing this to your phone.
Once installed, you will notice a 2nd Maps installed in your App Drawer, which has a Brut overlay. It also includes it’s own set of Latitude, Places and Navigation icons (which are a subset of the Maps app). At this point, if you know how to, you can remove your standard Maps as it is no longer required. Brut maps functions as normals Maps does in every way, with the exception that there is now an additional menu option to enable reading from and saving to the SD card. Make sure both these options are ticked. Even if you proceed no further from here on, Brut maps will do the hard work of caching map tiles that you load, saving you time and bandwidth in the future.
How to save maps
Now comes the hardest part, which is saving the actual map tiles to the phone. You may notice that on your /sdcard/ the new maps program creates a /brut.googlemaps/tiles folder. In here, depending on your country will be another folder. In Australia, this is called ‘map-end_AU-andnav/. Self explanatory, with the ‘andnav’ indicating that it is using the Andnav storage format. Within this folder, will be a series of subfolders of the zoom levels (for example: 12, 13, 14, 15) which have been saved so far, and the map tiles live in them. By now, you will probabaly have realised that the slow way to pre-load all maps is to actually find the location you’re looking for, zoom in and out to all required levels and wait for the maps program to cache it. This works, but you may miss some tiles and it takes a huge amount of effort. Enter Mobile Atlas Creator (requires Java installed). Mobile Atlas Creator (which I’ll refer to as MAC) is an easy way of selecting and saving map tiles, which you can then copy across to the phone. Here’s how to do it:
1) On opening MAC, you will see a map of the world. Select ‘Google Maps’ from the Map Source drop down box on the top left.
2) Use right click drag to move the map to the area you want to save. Use the zoom slider at the top to help you narrow down the area.
3) Once you have the area you want to view, draw a box with left-click drag around it. A red translucent rectangle will appear.
4) Now that you have the area you want to save selected, you need to choose the zoom levels you want to save. Remember, a lower number zoom level has bigger tiles, and a larger number zoom level has smaller, more detailed tiles. You can select these in the check boxes in the top left and it will show the number of tiles you will have to download. It is not unusual for the more detailed tiles to number up to the millions. Ask yourself what is the range of tiles and selected area do I really need?
4) Once it’s selected, press the ‘Add Selection‘ button. If you restart the process, make sure you clear previous selections.
5) In ‘Format’, choose ‘AndNav Atlas Format’.
6) Finally, we need to select where the files are to be saved, you can set output folder in Settings – Directories. If you have a reasonably fast internet connection, you can bump up the number of simultaneous downloads in ‘Network Connections’ to reduce download time.
7) Press Create Atlas.
While you’re waiting, you will notice the progress bar rapidly climbing as it downloads map tiles. If you’ve read this far, you will know that depending on your level of detail required, there most likely thousands, maybe millions of tiles to download. This will usually take a long time, sometimes more than a couple of hours, and in extreme cases, you may have to leave it downloading for days. However, note that it’s a once off exercise and once the files are stored on your phone, you won’t have to download them again.
How long and how much space does this take?
Once again, it depends on the number of tiles you’re downloading. As an example, I saved the Melbourne Metropolitan area, with a zoom level of 12-18 (inclusive), probably the maximum possible detail level a person would ever use, resulting in 1.5 million tiles required. This resulted in an 8GB download, and an approximately 11 hour once-off download. Most people will use a lower range of zoom information (most likely just the ‘standard’ zooms of 15-16), which is enough for direction and side street detail, resulting in a 135MB download and 15 minute download time. The download time will vary depending on your internet connection.
The reason these map sizes are so large compared to stand alone navigation software is because bitmaps take a far larger amount of information than vector based maps, which are basically just coordinates and can be compacted further. As such, this method is ideally suited to detailed metro areas, since map tiles take nearly the same amount of storage regardless of how much detail is on them.
Copy the files to your Phone
In the output folder that MAC dumps it’s files, navigate down and you will eventually find a series of numbered subfolders. Unsurprisingly, this is the exact structure and file type that the Maps application will use. Now it’s just a matter of copying the files across to your phone in the /sdcard/brut.googlemaps/tiles/map-end_AU-andnav/ folder and overwrite the old numbered folders. (Folder may vary if you are in another country). If you are unsure on how to copy files to your phone, either mount the SDcard as a USB mass storage device as normal and drag/drop, or use an FTP method, or use an SMB method. This could take a while as there are most likely many thousands of small files.
After files are copied, start the Brut Maps program and you will notice in the areas that you have saved tiles, loading is quicker, all information is available, even if you have no data connection. Enjoy!
Maps Navigation (the turn by turn, 3D animated, voice guided navigation part of Maps), does not use tile information. Instead it uses vectors for road and destination information. As a result, tile-caching will not save this info and there is no current way to cache vector information. However, it’s important to note that when inputting a destination in Navigation mode, required data is transferred at the start of the journey, so you can shut off data connection after that and still be guided by voice.
Address and business information will also require a data connection, regardless of whether tiles are cached.
Due to the block size on the SD card, you can imagine that having thousands of individual map tile files saved in the SD card will result in a large amount of wasted space, as files take up the maximum block size and may not fill it entirely. There is an alternative, which is simply to zip all numbered folders (keeping structure intact) into one large file, called andnav.zip. Place this file into /sdcard/brut.googlemaps/tiles/map-end_AU-andnav/andnav.zip and remove the current numbered folders. Brut Maps will then access this zip file for tile information whenever it needs. The single large zip file results in much lower wasted space than individual files, although the trade off is the phone requires extra overhead to unpack the file and process the zip.