OsmAnd plugin for off-road surveys

I am currently working on a new OsmAnd plugin for enduro/offroad and planning to release it later this month.
The plugin will include a profile and a lightweight map style improving the appearance of unpaved roads and paths.

Based on off-road guidelines discussed in this thread:

Noticeable features of the OsmAnd plugin compared to standard offroad/topo map styles:

  • roads colored based on OSM surface tag (paved/unpaved/unspecified)
  • tracks share the same line thickness as residential and service roads
  • path use a straight line when motorcycle=yes is enabled

Customizable Details:

  • Ground survey mode: unpaved roads/paths that were not added based on a ground survey (source=GPS) will have their color faded to grey
  • Show fixme notes: show fixme notes on roads/paths including text (e.g. fixme=precision|continue|resurvey)
  • Highlight service roads: Show red border around service roads (highway=service)
  • Highlight residential roads: Show orange border around residential roads (highway=residential)

Anyone interested in this topic, please feel free to subscribe, I will use this thread to post future updates.

Preview (full image on click):

That looks like a “rendering style” for OsmAnd, which gets placed as a file into some sub-folder of OsmAnd.

Please check that during the map creation process, all the data required by your style get into the map files (file extension obf). There are also some tag transformations during the map creation process - they could interfere with your objectives.

I do not remember the details - it is some time ago that I tried to create “my” Osmand map, and eventually cancelled that project.

Thank you Berhnard, your previous threads on this topic were very useful.

OsmAnd has been very supportive and they helped me:

  • integrate missing data attributes in the OBF creation process (motorcycle + source:geometry)
  • provide a custom package configuration for easier distribution (https://osmand.net/blog/custom-package)

The plugin will include both a routing profile and a rendering map style. It’s working nicely so far, I will be testing it further this week on a survey trip up north.
Additionally, I am waiting for the next country dataset update so that the existing motorcycle tags show up.

Good luck with this…

I use OsmAnd when not actually riding and find the ‘offroad’ style setting OK, but use a Garmin while on bike as various phone holders + water/bash-proof cases (presuming you’ll be using OsmAnd on a phone) combinations never lasted me long. (The hard/extreme riders I know in C.Mai use Garmin too.) I source OSM>Garmin map files from https://www.nightrider.info/ and then convert appearance to a look I prefer with an .img hack tool: https://mega.nz/file/91tGTKhI#xsVv2_pcxh45qXNyc9aYEEebT_3AbyjCSEBB_c8C30k

Re. offroad/enduro OSM mapping and edits (C.Rai region mostly), I’m really just concerned with Track (source:GPS, surface:unpaved) Path (source:GPS, surface:unpaved, motorcycle:yes) and Footpath (source:GPS, surface:unpaved). I don’t elaborate on further detail as not so useful, open to differing interpretation, track condition can change relatively quickly…

Note, if you tag a Path with ‘motorcycle: yes’ then Nighrider’s script displays it differently - and that works for me. I leave Track open to the assumption that some kind of 4 wheel vehicle ‘may’ be able to use it, Path as some kind of 2 wheel vehicle ‘may’ be able to use it and Footpath for extreme/dangerous stuff - or where there may be issues with private property, damage, noise, etc… This is so can show them differently and also to hopefully avoid problems with apps plotting routes where they shouldn’t. Sometimes I don’t plot tracks or parts of them for similar reasons.

@crsCR thanks for your valuable input!

I completely understand, and if there is enough demand in the future, I may provide a compatible Garmin plugin.
Personally, due to a bad knee, I now avoid anything extreme and stick to double tracks and easy single trails.

One of the main reasons I use OsmAnd is that I can refresh data only 20 minutes after making changes in OSM, which is very useful when preparing a ground survey. Also, it’s more accessible and affordable for beginners and new mappers.

Is it easy for you to adapt the map file to include “source:geometry=GPS” ?

“source=*” can be contradicting as it may have multiple values and it is not clear to which change the value refers (“name”, “addr”, “geometry”?)
It is often preferable to use separate source tags with a single value, and a few active users (AlaskaDave, me) have already started using “source:geometry=GPS”


I also encourage mappers to upload their GPS traces in OSM so they can be used to:

  • improve the precision of road geometries
  • make it possible later to add missing GPS tag

This was my initial assumption when I started mapping. Until I tried some “path” that was only appropriate for hard enduro.
When I contacted the author, a well-known extreme enduro rider, about the ‘wrong’ classification, he referred me to the official wiki definition and this is where I realized I was wrong:

  • highway=path excludes by default all non-motorized traffic including motorcycles
  • highway=footway are only meant to be used in urban areas, sites/parks and are most of the time paved.

The recent Thailand wiki update includes these definitions: https://wiki.openstreetmap.org/wiki/WikiProject_Thailand#Urban_and_Local_Road_that_a_motor_car_cannot_pass

Yet I understand the reason why footway was used this way: most standard mobile applications do not support motorcycle or other tags, so they render them differently from “path”. This is why I do not plan to convert the existing “footway” to “path” in OSM as per the official wiki, but I will render them the same way unless a “motorcycle=yes” is specified.

To be on the safe side, since a path is for you accessible on a motorcycle, could you please always include an additional “motorcycle=yes”?

I completely agree. Additionally, tags like “tracktype” (firmness) have been often used incorrectly to reflect difficulty level (grade4, grade5) or to indicate the main way (grade1). For these reasons, I do not plan to use them in the rendering process.

Not sure if they show up in your Garmin plugin, but OsmAnd will show a red overlay when access=private or access=no is set on path/road… Additionally in my plugin, I apply a red border to service roads.


Source was the tag entered when using the menu in the old Flash based web editor - and it’s there in the drop-down menu in the iD web editor - so that’s what I’ve always used. It could maybe be batch processed using JOSM or something - but that’s not something I’m going to go back and do for all the tracks I’ve added/edited - and I know others who’ve added lots of new dirt tracks in Thailand using same tag.

I can’t see me adding too many more tracks though anyway as I’ve surveyed the CR area thoroughly…

I do upload all my traces - but they are private and will remain so to avoid others adding track or parts of tracks I don’t think should be added. Sometimes I have to remove tracks.

Yeh, that’s developed country and city thinking - not rural SE Asia and similar where scooters are typical transport and there aren’t track use restrictions like you might find in more developed countries. And why a footpath should be limited to or usually in urban areas, I have no idea. I can see how people may interpret a footpath and a footway as being different (a footway being made/maintained) but the editors I’ve used call them footpaths so I’ll go with that over tag symantics…

You can DM if want to let me know who that is - I’d be surprised if I don’t know or know of them if based in Thailand esp’ in the north. Consistency is important.

Yeh, as I stated, that’s what I always do… I’d rather work for practical use benefits (like hiking, enduro, 4x4 using a GPS) esp’ when safety/survival might be an issue - over trying to best fit a Wiki definition. They way I’ve done it I can get easy to use/recognise trails that matter for my (and others) use case on a Garmin or phone.

Labelling as private or similar isn’t always sufficent IMO.


I use to travel on a bicycle without any engine, just powered by my muscle strength. I prefer minor roads in rural areas, and sometimes get onto smaller paths which local people may use on their small motorbikes. With their width of a hand span, they are called “jalan se-tapak” (one hand span wide road) in Indonesian (I do not know how it’s called in Thai). I am sure that I added the bicycle=yes tag for such paths, but I am not sure if I always added a motorbike=yes tag, too. So you might consider to include such paths. And sometimes, there are small bridges which cannot be used by car (not wide enough), but good for bicycles and motorbikes.

Moving discussions related to off-road guidelines to this other thread:

I will update this page later with news regarding the OsmAnd plugin.

A little update from my side for those interested in this topic:

I found a way to generate images of the mobile plugin so I built a small web page to showcase some of the areas around Chiang Mai province I have cleaned up and surveyed:


I might later extend this to a fully functional map with zoom and drag features.

If you are interested, please feel free to follow this page or reply here if you have any questions.