User:CMoffroad/Unpaved Rendering
Unpaved Roads Rendering
Status: draft, in progress. Feedback welcomed. Section will be later moved later under: https://wiki.openstreetmap.org/wiki/Rendering/Unpaved_Roads
While Routing is crucial to prevent or favor unpaved road conditions, unpaved roads rendering is very important for outdoor enthusiasts and explorers who do not rely on fixed itineraries. Whereas surface conditions tags have been fairly well supported by routers, their support for renderers has been very limited and controversial:
Controversy
highway=track has been misused for years all over the world by mappers to indicate any kind of unpaved conditions regardless of their main road function.
Countries where minor/major unpaved roads are common have updated their guidelines (e.g. Australia or Africa) to make sure that roads should be tagged according to their use within the road network regardless of surface or smoothness.
Regardless, this strongly discouraged "tagging for the renderer", driven essentially by outdoor application end-users, will continue as long as most common renderers do not support additional unpaved tags for all road classifications.
Solutions
For mappers
Until a good number of common renderers support additional tags:
- Allow mappers to continue using highway=track for non-agricultural/forestry roads, but encourage them to fill in additional tags such as tracktype, smoothness and surface
- Contact renderers dev teams and request additional unpaved tags support (see list of renderers below)
For renderers
Since tracktype=* is already commonly supported for highway=track, it would make sense for renderers in a chronological order to:
- enable tracktype=* support for all type of roads (e.g. residential, unclassified, tertiary...)
- enable smoothness=* support for all type of roads
- enable surface=* support for all type of roads
Implementation
While routers can support any tag combinations, renderers cannot and should not display too much information, at the risk of making maps unreadable.
In terms of User Experience best practices, a maximum of 4-5 categories based on 3 factors (e.g. width, color, dash) is typically best practice.
For paths rendering, Hiking Maps has a great example of 4 rendering proposals based on 2 attributes sac_scale and trail_visibility.
The link below include a general rendering proposal for road with 4 profiles:
- Normal roads
- Drive with care
- 4WD only
- Impassable
Based on various tags ordered by priority
Additionally:
- highway defines the fill color, thickness and stroke thickness
- access defines the stroke color
- computed profile above defines the dash style
https://www.cmoffroad.com/unpaved-rendering/
Status Quo
Below is a table listing most common outdoor renderers and their current unpaved tag support for both highway=track and other road classifications.
For each renderer, a link to their technical support is provided.
To get their attention, please add new comment and a few likes on previous posts (Github), or send them a message (Email).
Last updated: March 2022.
Renderer | highway=track | highway=residential/unclassified/tertiary/.... | Contact | |||||||
---|---|---|---|---|---|---|---|---|---|---|
Name | Web | Mobile | Garmin | tracktype | smoothness | surface | tracktype | smoothness | surface | Support |
OpenStreetMap | X | - | - | Yes | - | - | - | - | - | Github |
cyclOSM | X | - | - | Yes | Yes | - | Yes | Yes | - | - |
Open Cycle Map | X | - | - | - | - | - | - | - | - | Github |
OpenTopoMap | X | - | X | Yes | - | - | - | - | - |
Github |
Komoot | X | X | - | Yes | - | - | - | - | - | |
alltrails | X | X | - | - | - | - | - | - | - | |
mapy.cz | X | X | - | Yes | - | Yes | - | - | - | Github |
OsmAnd | - | X | - | Yes | Yes | Yes | - | - | - | Github |
maps.me | - | X | - | - | - | - | - | - | - | Github |
Organic Maps | - | X | - | - | - | - | - | - | - | Github |
Contact template
Please enable OSM tag tracktype=* support for all road classifications to prevent further misuse of highway=track.
Because most renderers like yours do not support additional tag describing road surface conditions, highway=track has been misused for years all over the world to indicate any kind of unpaved road conditions, regardless of their actual function.
Please join the OpenStreetMap community in making better maps by rendering unpaved roads for all kind of road classifications based on tracktype, smoothness and surface tags.
In terms of UX/implementation, this could be simply achieved with a different solid/dashed stroke or fill color.
More details including UI implementation proposals are available in this OpenStreetMap wiki page: User:CMoffroad