The JBnator Diaries – How to make the stock Maps app work offline

Hello there, JBnator fans! This is your blast from the future – ChiffaN. And today we’re gonna tackle a topic, which may be a life-saver for many people.

There is a story rolling around the Russian iPhone community about a guy who after returning from a two-week holiday in the Swiss Alps got hit over with a $30000 cell phone bill. Apparently he just got an iPhone and was using it extensively for GPS navigation abroad without realizing that it was pulling data via the excellent 3G connection for sky-high roaming fees. The story goes he sued the carrier for failing to communicate that the iPhone Maps app get it’s maps online and no-one heard of him since.

This a sad tale, but the good news is – you can avoid it and still have the luxury of using your iPhone to navigate even without a data connection or abroad. And the key is – Maps cache.

Feel free to discuss TMA’s JBnator Diaries in our forums

Basically the stock Maps app caches everything it downloads. Unfortunately it quickly erases the cache as well. But smart people have found out how to turn this off, as well as how to prepare the Maps cache in advance for the area you require. And I am going to tell you about it!

Today’s toolbox includes:

Ok, a little sidenote – You might have noticed that I have an “OR” in the list of Cydia apps we’ll need for this exercise. And the reason for this is that there are two ways of doing the cache link up with their pros and cons. It’s up to you to decide which is for you.

Atlas 3.1

  • Pros: You may have map caches of several cities/areas on the phone at the same time and switch between them at will.
  • Cons: The app will require additional space to hold these caches. I.e. if you have the cache of say, Moscow equaling 500MB and Helsinki equaling 300MB the app will require 800MB to store them PLUS the amount of space equaling to the one you want to use at the moment (500MB or 300MB in this example).

Maps Enhancer

  • Can limit the accessible zoom level (there are up to 18 but 17 is enough since it has all of the building numbers and the extra layer may cost up to several hundred MB of extra space), doesn’t require extra space, convenient control out of the Settings app.
  • No multiple cache support

Ok, make your choice, get the toolbox in order and let’s jump to it.

First of all we have to prepare the cache we will want to upload.

Preparing the Map cache

  1. Unpack SAS.Planet to a folder and run it.
  2. If the app has started in Russian you may switch the language using the menu shown below and restart.
  3. Switch the Source to Internet and cache as shown below.
  4. Choose the map provider you want to use using the Maps menu as shown below (We’ll stick with Google Maps).
  5. Select the area you want to make the cache for in the program using the indicated tool.
  6. In the pop-up window change the Scale to 18 and click Start. (Warning: May take a very long time. I would recommend to leave this overnight if possible.)
  7. After the download finishes close the window and click Previous Selection
  8. Switch to Export tab and select export format to iPhone (2.2 128×128). Next choose the export path and map types according to the screenshot below. Also, choose the Scale levels to export. You can either leave the 7-18 levels to get the most commonly used zooms or include the 1-6 as well if you want the most global views as well.
  9. After the process finishes you’ll get 2 files in the target folder: MapTiles.sqlitedb and com.apple.Maps.plist

Preparing the Street DB

  1. Unpack MapOffline Utilites
  2. Open www.openstreetmap.org
  3. Search for the area you want to create the street list for
  4. Switch to the Export tab
    1. In the Area to Export click on Manually select a different area
    2. Choose the area to export the street list
    3. In the Format to Export choose the OpenStreetMap XML Data checkbox
    4. Click Export
    5. Save the resulting file to the root folder of MapsOffline Utilities as map.xml
    6. Run WINDOWS.bat from the MapsOffline Utilities folder
    7. Enter the city/area name for which you are creating the list
    8. The name of the file you saved to in step 7 (map.xml)
    9. After the process finishes you’ll have a file named as in step 8. Rename it to city/area_name.plist (just add .plist to the tail of the name)

Ok then, now that we have the files prepped, it’s just a matter of getting them on to the iPhone. Choose the steps according to what you decided to use for the cache link up.

Atlas (OfflineMaps)

  1. Open Maps and detect your location. Close Maps.
  2. Install Atlas from Cydia if you haven’t already
    1. Add the apt.iguides.ru package source (Manage->Sources->Edit->Add)
    2. Install Atlas
    3. Restart your iPhone
    4. Open iPhone Folders
    5. Go to /private/var/mobile/Media/Maps/
    6. Create folder according to the name of the area you are uploading the map for (i.e. /private/var/mobile/Media/Maps/Helsinki)
    7. Copy the MapTiles.sqlitedb, com.apple.Maps.plist files there
    8. Copy the city/area_name.plist file to /private/var/mobile/Media/Maps/
    9. Run MobileTerminal
    10. Run the ln -s /private/var/mobile/Library/Caches/Maps/MapTiles/ /private/var/mobile/Library/Caches/MapTiles command
    11. Run OfflineMaps ( The name under which Atlas is displayed on the SpringBoard)
    12. In the Maps section find the name of the city/area you uploaded and tap on it
    13. Choose Copy (Link doesn’t work in 3.0+ OS versions)
    14. Wait for the message to pop up.
    15. In the BookMarks section find the name of the city/area you uploaded and tap on it
    16. Choose Copy
    17. Exit the app and enjoy Maps in offline mode

Maps Enhancer

  1. Install Maps Enhancer from Cydia if you haven’t already
  2. Open iPhone Folders
  3. Go to /private/var/mobile/Library/Caches/Maps/MapTiles/
  4. Copy the MapTiles.sqlitedb there
  5. Go to /private/var/mobile/Library/Preferences/
  6. Copy the com.apple.Maps.plist there
  7. Go to /private/var/mobile/Library/Maps
  8. Copy the city/area_name.plist as Bookmarks.plist
  9. Go to Settings->Maps Enhancer
  10. Make sure Keep maps cache is ON
  11. You can also limit the Maximum zoom level to 17 if you wish
  12. Exit the app and enjoy Maps in offline mode

And that’s all folks! Now you snigger at the obscene Data and Data Roaming rates and enjoy the pleasure of Maps anywhere you go!

Feel free to discuss TMA’s JBnator Diaries in our forums

  • Asghar

    HI there
    thank a lot for your nice post. I lern a lot in you web site. please continue, hope to see more in your web site. one question about the Atlas (offlinemaps app.). is the application works on the iphone 3GS with version of 4.0.1 and modem fireware of 05.13.04?
    i will be happy if I hear from you by email

    thanks in advance

  • http://www.touchmyapps.com/author/tma_chiffan/ ChiffaN

    Hi Ashgar,

    Atlas does not rely on modem or iPhone model in particular, so the only real thing you should consider is the iOS version. Unfortunately I haven’t yet tried it on iOS 4.0.1. Maybe you could try and testify whether it works or not. Just be advised – you’ll first have to register at iguides.ru as they have added authorization to their repository.

Next ArticleRockford Fosgate PUNCH PLUGS In-Ear Monitors - getting personal