Author Topic: Using MOBAC for offline maps - finer points (Revised August 2014)  (Read 6138 times)

Offline Bob Denny

  • More than Newbie
  • *
  • Posts: 80
    • View Profile
Once you have created your offline maps using MOBAC, there are a few things to be aware of.

To complete the installation of offline maps from MOBAC
  • Unless the map type is already syupported by Locus, make sure that you have set up a provider for the maps in Locus (see Custom Online Maps in Locus Help}.
  • You do not need to put all of your custom maps into the Locus/Maps folder. You can create new folders under Locus and organize them into groups. In the Maps panel, Personal tab, menu (triple-dot), Add Maps. In the Personal Maps directories list that appears you will see an Add button at the bottom that will let you select a folder containing the .sqlitedb maps. They will appear under a folder category in the Person list.
  • Once you have them showing in Locus, for each new map select the menu  (vertical triple-dot) on the right, then Reinitialize Map. You will be asked to select a provider (see #1 above!). When you do this for all of the maps that belong to the newly created set, they will show the provider in the Personal Maps list and they will automatically tile together.

Edit: These are the old instructions. No longer needed.
The Locus SQLite map databases have a table named info. It has one row and the following columns

... deleted ...

The maps that MOBAC produces have only the minzoom and maxzoom columns; they are missing the last 4 columns (center_x through provider). This can cause some odd behavior, and you will not be able to tell the source of the maps in the Locus Personal Map list.

To make these maps just right, you need to add the missing columns, add the INTEGER datatype to the maxzoom and minzoom columns, then put 0 (zero) into center_x and center_y, and fill in the zooms and provider (see below), all on the PC before transferring the map to the Android. You can do this with the free SQLite Browser program (which runs on Windows, Mac OSX and I think Linux).

In the zooms column, you list the actual zooms (zoom level checkboxes) you set in MOBAC when making the map, separated by semicolons, for example, "5;6;7;8;9;10;12;14;15").

The Provider is an integer. It corresponds to the provider ID as known to Locus. To get this for a built-in Locus provider such as MapQuest Classic, turn on map caching if needed then movearound on that map to make a (e.g.) MapQuest_Classic.sqlite file in Locus/mapsOnline. Copy that to the PC and open in SQLite Browser and look at the provider ID. If you put that into your new MOBAC map you will see that provider for the MOBAC map too. For the extra providers that you get via the Locus Map Tweaker, look in the mapsonline/custom/providers.xml file for the provider and lift the provider ID out of there.

Now load the MOBAC map onto the Android device in Locus/maps and let Locus find it. Confirm it is listed in your Personal maps. Now select it and try to get the map display to the center of the region of highest zoom tiles you have. It's tough but it does not have to be accurate. This "map center" is not related to the geo-referencing of the maps. It is just used to decide what other personal maps are "close". Anyway, once you have the new map centered on the display, select the tools icon for it in the maps page, set center, Map Center. Now the center_x and center_y columns will have the right info (as close as you can get it, a topic of another post here). At this point you may want to copy the now-completed map back to the PC for backup.
« Last Edit: August 03, 2014, 20:20:30 by Bob Denny »

Offline berkley

  • Expert
  • Master of Locus
  • ****
  • Posts: 900
  • Thanked: 1 times
    • View Profile
  • Device: 1+1, N7
Re: Using MOBAC for offline maps - finer points
« Reply #1 on: December 09, 2012, 08:25:01 »
Is this something for the Locus knowledge base?
« Last Edit: January 01, 1970, 01:00:00 by Guest »
Search before posting!!!
XDA Orbit, HTC Touch HD, SGS1, SGS2, Nexus S, S4 Active, OnePlus One, Innos D6000
OnePlus X