Custom map themes in Locus Map

Jiří Mlavec
3 min readDec 24, 2021

--

Since Locus Map 4.5.6 / Locus Classic 3.56.4, the setup of custom themes changed and I would like to sum all possible options and information in a single place.

  1. How to create it
  2. Where to place it
  3. Special content
  4. How to validate its functionality

1. How to create it

Important is to decide if a theme should be made for Locus Map own vector maps only (still based on the highly modified “MapsForge V3” version), or for publicly available maps, usually in the so-called “MapsForge V4+” version.

LoMaps (own maps for Locus Map)

The official repository for LoMap themes, the ideal source of inspiration, is here. It is also important to check available tags in the tag-mapping files.

MapsForge V4 based themes

These themes are not 100% compatible with LoMaps, but are maps from alternative sources, like

And how to create it. Again, I highly recommend inspiring yourself with many very interesting themes made by (not just) the Locus Map community, like

2. Where to place it

Locus Map/Locus Classic allows specifying a directory for vector maps. By default, it is at the root of the app directory.

Directory for custom themes is them in this directory. So usually it is at the

  • Android 11+: /sdcard/Android/data/menion.android.locus(.pro)/files/Locus/mapsVector/_themes
  • older Android version: /sdcard/Locus/mapsVector/_themes

Support for ZIP version

Since the latest Locus Map/Locus Classic version, compressed themes are fully supported for all vector maps and are highly recommended. It has a few advantages

  • a lot easier distribution and updating
  • smaller size and reduced negative impact of the huge number of smaller files (a big problem in the latest Scoped Storage system)
  • and no performance impact during runtime!

How to? Simply “zip” your theme directory. Multiple themes in the single directory as well as special content (legend) are supported.

3. Special content

Legend file

Every theme may point to the legend with more about the map itself (map key).

Every theme is defined by an XML file in the theme directory. Let's name it “my_theme.xml”, just as an example. To add a legend, use one of (or more in case of localized) following options:

  • add “my_theme.pdf” file into the same directory as an XML file
  • add “my_theme.lnk” file with the URL to the web page (URL as text on the first line)
  • add “my_theme.lnk” file with a relative path (relative to an XML file) to *.pdf file, so for example just “my_theme_legend.pdf” on the first line. Useful if more XML themes are in a single directory and share the same legend
  • add “my_theme.lnk” file with a relative path (relative to “_themes” directory) to *.pdf
  • add “my_theme.lnk” file with a relative path (relative to the app root directory) to *.pdf > not very useful to be true.

All files may also exists in alternative version “my_theme_<2-letter locale code>.pdf/lnk”. This localized version should be used instead of default in case, locale match to user's current locale.

4. How to validate its functionality

  1. The first success is the theme visible in the list of themes in the app. Double-check you have enabled the correct vector map!
  2. To check, if all paths in the theme are correct, use the build-in “Validate” functionality of the app.

Good luck with theme creation and do not forget to share your success with the community.

--

--

Jiří Mlavec

Person responsible for own life … in all cases. And partially also for beings in my range. As everyone …