Take the 2-minute tour ×
Android Enthusiasts Stack Exchange is a question and answer site for enthusiasts and power users of the Android operating system. It's 100% free, no registration required.

I spent almost entire day looking for decent apps for maps (decent = free, up to date, being open-source is a plus).

I ended up with TrekBuddy, GoPenS, RMaps, Maverick, OruxMaps (the emphasized ones look the best, in my opinion).

However, now I have another problem -- how to prepare maps for those apps (please help me with one, and hopefully I will manage the rest) for off-line usage?

I would like to go on a ride, pick up the phone somewhere in the forest and see on the map where I am. For now it works only with internet connection, but without it I have a huge-scale map and after zoom-in blank space or "loading" icon.

In short -- QUESTION -- how to feed phone/apps with maps, so I could zoom-in/out map freely when I am in the wild (offline)?

I would like avoid tricks like relying on caching -- so "solution" to scan interesting region with all possible scales and in such case acquire off-line version of the map is a no-go!

Clarification: I am not looking for another app (however thank you for the hints/links), I am looking for maps (data). I want to get map from on-line version (which are automatically downloaded) to off-line one.

share|improve this question
    
Just to clarify: You want to use offline-maps, but you don't want to store them in advance? How shall this work? –  Izzy Aug 12 '12 at 19:26
    
@Izzy, I want to store them in advance, however by single action, not by manually scanning map on-line, cm by cm just to create cache in given app. Did I explain the difference clearly? –  greenoldman Aug 12 '12 at 19:30
    
osmand maps (who was it that told me about it?!) Its Offline maps fwiw –  t0mm13b Aug 12 '12 at 19:33
    
@t0mm13b, osmand is an app, not a map. And I am looking for way to transfer on-line maps to off-line ones. –  greenoldman Aug 12 '12 at 19:47
    
For what it's worth, TomTom is coming to Android in October. –  Al E. Sep 11 '12 at 13:49

4 Answers 4

up vote 7 down vote accepted

OsmAnd (on Play store or F-droid.org (version is sometimes a little behind)) has those features:

  • Fully open source
  • Fully offline (w/ option for some online features)
  • Play Store: Limited to 16 downloads (free) or costs ~3EUR (for funding)
    (build it yourself or use a nightly build if don't want to pay or use the free one)
  • Offline vector maps:

  • Online tile-based maps (data-caching plugin for GMaps/Bing/Yahoo/ and 25? others)
  • OSM integration (bug report, GPX uploads, live editing)
  • Voice guided offline navigation
  • GPX tracking

The unlimited app (in Google Play) costs a small fee (around 3EUR) to fund the project. Please consider buying it once you tested the free version and like it and don't just leech the nightly if you don't just want to test the bleeding edge features. You can of course also build your own (its FOSS).

in-app offline map downloade

share|improve this answer
    
Thank you very much, I already played a little with OSM data, I downloaded the maps, they are truly offline ones, and today it saved my skin (because GM deleted "cache" on update). I hope I will manage to support this app as well. –  greenoldman Aug 21 '12 at 18:57
    
While I bumped into this thread, nice addition to OsmAnd is OsmTracker -- IMHO it is way better than tracker plugin for OsmAnd. One can annotate the track on the fly and after finished riding/walking, directly upload the trace to the OSM for further editing for example. –  greenoldman Sep 11 '12 at 21:25
    
OpenStreetMap has a good comparison wiki too. –  ce4 Sep 11 '12 at 22:00
    
great app indeed –  Francesco Sep 11 at 4:03

Since Jun 27th 2012, Google Maps for Android is offline featured.

They provide a 10-mile radius of map cache, and since you can point to different locations and cache them, you can virtually cache the entire world.

  1. Open Google Maps App;
  2. After the map loads, press the menu button and select "Settings";
  3. From the "Settings" panel, select "labs" and enable the "Precache Map Area" option.
  4. Return to map view, navigate to the area you want to save for offline use;
  5. Once loaded, click on it to open the detailed view and select the option "Precache map area".

Repeat this process as many times as you would like to cache all the desired areas.


Links

More Detailed step by step instructions at: How to Use Offline Feature of Google Maps in Android.

Official Google Support page for Offline maps here.

share|improve this answer
    
This is the perfect solution... –  Sachin Shekhar Aug 12 '12 at 20:05
1  
Great answer indeed, I will keep the question open for a while, because I really would like to use mentioned apps, and also I am afraid of the expiration of such maps. See here: android.stackexchange.com/questions/13641/… –  greenoldman Aug 12 '12 at 20:31
    
Not quite the perfect solution: keep in mind that even if you downloaded the maps, searching for a street address won't work. (Not to mention directions...) –  fdierre Aug 12 '12 at 23:50
    
My fear was valid -- GM either is in very alpha stage, or it treats offline maps as cache on purpose. Anyway, after update I found out (when I was already somewhere on the track) that my GM maps are blank and I am lost in void. Luckily I have also OsmAnd installed with truly off-line maps. –  greenoldman Aug 21 '12 at 18:55
    
@macias Personally, I use Navfree for offline navigation, I've got the entire world on my phone and don't need any internet connection :) –  Zuul Aug 21 '12 at 18:58

Thanks to your clarification I assume it is OK when you can acquire the map data from within the app. In this case I'd suggest you take a look at Locus Maps, which is an excellent solution. It has already a lot of map sources built-in -- and if that's not enough for you, the Map Tweak Addon offers additional sources.

Additional ressources on Locus Maps include:

I could name even more ressources -- and will do, if you wish.

share|improve this answer
    
Thank you for that answer, all what you wrote is very valuable, but I am looking for way to transfer maps from on-line to off-line mode, not to use another map app -- I am looking for data, not a program. –  greenoldman Aug 12 '12 at 19:46
3  
Problem here is whether data are compatible with what program. Each app uses its own standard, more or less. So data suitable for one might not be fitting another -- though they might use the same sources, they may differ in how to store the material. Wonderful thing about Locus is you can create your own KMZ including images (e.g. for POIs etc), and a lot more. But AFAIK there are also some Websites or PC programs allowing you to prepare map data for either Locus or OruxMaps. For Locus, some of them are mentioned/described on its forum (last link in my answer goes there). –  Izzy Aug 12 '12 at 19:54
    
Many of them mention OpenStreetMap, but all I see in options is caching, not downloading them. –  greenoldman Aug 12 '12 at 20:32
    
Which essentailly is the same (they get downloaded to the cache). Actually, in Locus it is called "downloading", and they are stored into special databases. You can even restrict Locus to only use this downloaded map data -- or let it check for updates for the area you're currently in. –  Izzy Aug 12 '12 at 20:51

Use vector maps instead of pre-downloading or caching rendered map tiles.

Vector Maps versus Bitmap, Pre-rendered, Tiled Maps

Here's the difference: Caching Google Maps or any other pre-rendered maps stores dozens to thousands tiles of (bitmap) images on your device. Even though these are compressed, they take up gigabytes of storage, especially if you're in to storing maps for a full country.

Also, bitmap images are just that: Images. Mapping, and especially navigation applications cannot interpret what's displayed on the image. So they don't know about the nearest gas station, bus stop, what river you're on paddling, etc.

A vector map is in some special data format. To be displayed it has to be rendered which means an image must be calculated out of the raw data first. So the biggest drawback is that applications using those might be more cpu intensive. However, depending on the quality and contained features of the vector map, and the quality and features of the application, you can query the map for navigation by car, by foot, by boot, by bike. You can get info about nearest restaurants, or the nearest letterbox.

Another main advantage of vector maps is its much smaller size compared to bitmap data. While a pre-rendered map tile image may contain some greenish and varying pixel data to represent a wooded area which is linear proportional to the covered area, the same vector map may just say "wooded area" and store the coordinates of the boundary.

Another advantage thus is that the application decides how to render said wooded area and thus the user has some influence on how she likes maps to look like. You might be able to tell your mapping application to switch to a red/blue/black color scheme during the night without having to download a second set of bitmap tiles. It's just recalculated on the fly upon changing some settings, and does not take up any additional memory.

The amount of storage, and the available feature set is restricted by the data contained in the vector map. So depending on your needs, and those of your applications, some may want to have the full open street map data, while some get by with just a basic set.

Also, with vector maps and their small amount of storage, and their ability to customize their rendering inside applications, there's no need to use any additional application on your desktop to prepare the maps. Download files, and off you go. While in theory, this works, in practice the original data files of the OpenStreetMap project have to be converted into a syntactically different format. See below.

Coming back to howtos and applications, I'm still a beginner on android. Here's what I use today.

Open Street Map is a project to provide full featured vector maps for free. Like Wikipedia, the map data can be improved by users, and this happens all the time.

Mapsforge Vector Maps

Pre assembled vector maps of open street map can be found courtesy of the mapsforge project, at http://download.mapsforge.org/maps/

Using original Open Street Map files

The above mapsforge files can be used as-is, and are thus the most convenient solution. However, if you'd like to start from the original Open Street Map files you can follow this guide to convert the original files from the PBF format to the map format using Osmosis. A typical command line example would be:

osmosis --read-pbf "hungary.osm.pbf" --mapfile-writer file="hungary.osm.map"

Locus

As a mapping application you can use Locus Free. Download and install.

Download any of the vector maps file and store it on your phone in the folder /mnt/sdcard/Locus/MapsVector/_themes/. Personally, I download the maps on my desktop pc, store them in a folder which I share via Samba on Linux, or share on a Windows machine. Then I use any android filemanager (Ghost Commander with Samba plugin, ES File Explorer File Manager) on my phone to copy the files from the shared location to the Android device's Locus mapping folder.

OruxMaps

You can also use the OruxMaps app. Unfortunately I have not yet found a way to use both applications without having to store the map data twice. (SD Cards do not support symbolic links. If you've got the data on internal memory you could use them, and store the maps only once). You can use again your preferred filemanager on android to copy the *.map files from the aforementioned Locus folder to the folder where OruxMaps stores its map files. By default this is /mnt/sdcard/oruxmaps/mapfiles

Switch to the new map:

  1. Click the upper right hand "map" icon
  2. Click "new map" in the pop up menu
  3. Click "offline" in the upper right hand side
  4. Choose any of the *.map map files

Note that in OruxMaps you can navigate through subfolders. So if you like you can use your filemanager to organize maps in subfolders. Hint: You could fully copy the mapsforge data into your OruxMaps map folder, and never worry anymore :-)

Note also that if you have the OruxMaps app open while you are copying new map files into it's data folder, then you may have to click on "reset map sources" in the "new map" dialogue to ensure it rereads the map folder for new files.

Here's a howto on those two applications for theming your maps maps. As mentioned before, depending on the app, you may influence the way the vector maps are rendered. This includes color settings as well as which data is to be included in the display and which is not.

share|improve this answer

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.