blankblank blank




Creating Offline Maps For Android Apps With MOBAC – I



Some Android apps can download and store cached map data from online data sources like Google Maps and OpenStreetMap servers. I’ve already posted about a few of these:

.. and expect to post about many more of them in the future. But in-app caching has limitations:

  • Map sources are limited to online map services
  • Map variety is usually fairly limited
  • Map selection process is limited by the size of the Android unit
  • Issues with download speed and bandwidth caps (WiFi and cellular data connections)

There are also a fair number of Android apps that don’t cache map data directly, but instead use offline mapsets created with desktop software. While perhaps less convenient than direct in-app caching in that they require you to prepare the mapsets on a desktop and then transfer them to your Android unit, they have some significant advantages:

  • Desktop interface usually offers more options, and is easier to use
  • Choice of online map servers can be larger
  • Map management is somewhat easier
  • In addition to online map sources, you can also create mapsets from scanned maps, aerial/satellite photos, and output from mapping software (GIS)

I’m going to be posting on a number of these offline mapset apps in the coming months. Some of them have their own custom mapset creation software, and I’ll cover those separately. But there are several free programs out there that can create mapsets for more than one of these apps, and I thought I’d cover a couple of these first before moving on to the apps themselves. After all, the apps aren’t worth that much without usable maps already in hand.

The first program I’ll be looking at is Mobile Atlas Creator, aka MOBAC, which downloads map tiles from online map services, and converts them into an app-appropriate format. This is a Swiss army knife app, as it creates offline maps not only for a fair number of Android apps, but also for programs that run on Windows, Windows Mobile and Symbian platforms, and even some standard handheld GPS units from Garmin and Magellan. It’s a Java program, so it should run in Windows, Linux and OS X; Java 1.6 required (check this at the Java website). While the current stable release is version 1.7, I’ll be looking at the most recent 1.8 beta release.

No program installation required; just unzip the contents into Start the program up using the .jar program file. There’s a separate Window executable in the distribution, but I think that’s just a stub to start up the .jar file. Documentation is minimal. Program screen looks like this:

mobacoverview

There are two sections to the program view. The left pane contains program controls, while the larger right pane has the map view. Navigating the map view is a little different than other programs:

  • To scroll the map view, click and drag with the right mouse button (not the usual left button).
  • Zoom in and out using either the zoom control at upper left, or with the mouse wheel.
  • Use the left mouse button to select an area you want to download map data for. With the grid control at upper left “disabled”, you can freely select any area. With the grid enabled for a particular zoom level, a red grid is laid on top of the map, and selection is automatically “quantized” to full grid squares:

zoomgrid

gridsquares

You have to select grid squares in adjacent groups by clicking and dragging; you can’t turn on/off individual squares separate from the rest with Alt-click or Ctrl-click, as you can with some other similar mapset programs (e.g. Garmin’s Mapsource).

The control panel consists of a number of discrete sections, which can be minimized/maximized by clicking on the blue arrows. First section displays the area you’ve selected at right:

coordselection

You can also enter coordinates manually, then press the “Select entered coordinates” button to refresh the selected area.

Next, there’s a dropdown menu with a list of preprogrammed map sources:

maplist

There are currently 56 map sources in this list, some of which cover all of the world, others which are only good for limited areas (and some, like the mytopo.com server, that don’t seem to be currently working at all). Using the Settings section, you can choose to turn off mapsets that you’re not interested in, as well as update the map sources:

selectmaps

You can even add your own map services, though the process is a bit technical, and requires that the map tiles be in a very specific format. Most of these map sources are freely redistributable, and aren’t limited by licensing terms. For some of the commercial sources, (Google Maps, Microsoft/Bing), it’s not clear. In my post on MultiMap, I noted that caching of map tiles is allowed by Google under certain circumstances, and I thought that MultiMap met those restrictions; for MOBAC, I’m not so sure. Bing’s map licensing tends to be a bit looser than Google’s, but even there I’m not sure. Consult a lawyer.

Next post: Creating a mapset for use with an Android app.


Looking for something else? Enter some keywords below, then click "Search".    




4 Responses to “Creating Offline Maps For Android Apps With MOBAC – I”


  1. 1 Mort

    This is what I use to make my offline maps. I use OruxMaps to display them. It’s a great navigator for hiking and other outdoor activities. You can even connect to the external bluetooth GPS (big android shortcoming) in the recent beta.

  2. 2 leszekp

    Thanks. OruxMaps was on my list of apps to look at, but I’ll have to move it up. TrekBuddy (the first one I’ll be reviewing) also has external bluetoth GPS support. I agree this is a big thing – the lack of GPS WAAS support on most Android phones doesn’t matter much now, but as the sun becomes more active over the next few years, it could make a big difference.

    I’m trying to figure out a good way to test and compare the accurary and repeatability of the Android built-in GPS, external Bluetooth GPS, and a high-quality handheld GPS unit. Stay tuned …

  3. 3 Mort

    When testing remember that every software saves GPS data (track) with different intervals. Keeping this constant is essential to acquire comparable data.

    I have a Qstarz 1000P BT GPS that I can connected to my Android phone and save tracks with OruxMaps, but the current Orux beta doesn’t have an option to change track saving intervals from BT GPS. So my track has lot less points then the one saved with internal GPS.

    In the future I shall compare tracks saved with internal GPS with tracks saved by Qstarz data logger.

    Good luck with your test!

  4. 4 vgps

    you can try vector offline map for android from http://www.digitalmobilemap.com