You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
For example, I'd like it to suggest this route without adding any routing points.
Because the climb makes more sense for mountain biking, where you ascend on wide tracks and descend on singletrack. I've tried modifying the uphill_cost, but it doesn't give me much of a result.
I wanted to indicate that sac_scale is prohibited on the uphill, but I don't think that's possible.
Regarding the uphill: there is a gate without access tags in your suggested uphill path. The profile doesn't route through such gates by default (because you can not be sure if it is locked, which would be bad if you came there after a long uphill and had to turn around).
You can change this behavior through the profile parameter "use_uncertain_gates". With this enabled, the uphill should nearly look like your suggested route.
Btw: do you know this route in reality? If yes, can you say if the gate in the uphill is accessible for the general public?
For the downhill: maybe the downhill costs are sometimes too high. I had lowered them in a work in progress branch 5 years ago (which actually was about changes in the uphill-routing), but had to stop working on it because of other private priorities. I'll try to look at it again...
What do you mean by "I wanted to indicate that sac_scale is prohibited on the uphill"? Can you explain this in more detail please?
Regarding the gate: so maybe you could modify it in osm? Maybe with a (very general) access=yes or access=permissive. I mean, if you have some experience with editing osm.
Please test again with the profile from current dev branch. I reduced the downhill penalties considerably. Now it takes your suggested downhill with mtb_hard_factor 2 (demanding).
But look at the result with mtb_hard_factor 3 (hard). It now takes a completely different route downhill, with overall more route length on paths (but also a longer highway=track). Do you know this route? Can you estimate if this makes sense?
Btw.: you don't need to explicitly use the hard profile. Both normal and hard profiles are identical, only that mtb_hard_factor is preset to 0 in the former and 3 in the latter. The two profile variants only exist because LocusMap didn't support arbitrary profile parameters in old versions, so it was not possible to easily change this parameter on the fly.
Factor 3 is starting to get really good, I think.
Factor 3
What we actually did, at the beginning I didn't understand why he preferred to go back up onto the 4x4 track rather than stay on the road. And he climbed a bit too fast on a path before heading towards the refuge.
After that, it's a complicated route because you inevitably have to push at some point to reach the top, but that's what you generally do on a mountain bike, I think.
I'm going to test level 3 on other courses to get more feedback.
Factor 3 is starting to get really good, I think. Factor 3
What we actually did, at the beginning I didn't understand why he preferred to go back up onto the 4x4 track rather than stay on the road.
That's because the road is tagged as tertiary, which normally is a road that can have a lots of traffic (which is avoided by the profile). By looking at satellite imagery, I suspect the road is not tagged correctly (unclassified or service seems more suitable here, but I'm not a local)
And he climbed a bit too fast on a path before heading towards the refuge.
Yes, I see what you mean. I'll try to rework the uphill penalties if I find time.
After that, it's a complicated route because you inevitably have to push at some point to reach the top, but that's what you generally do on a mountain bike, I think.
I'm going to test level 3 on other courses to get more feedback.
In France, a tertiray isn't a high-traffic road; it's a road that connects two villages. But here it's more like an unclassified road because it doesn't connect to anything.
Sorry for the delay. I really had to get some things done in my job and private life.
I think one solution for your last scenario could be, to make the factor of "main road" avoidance configurable through a profile parameter. In the end, it is a thing of personal preference wether to use main roads or not in mountainbike tours.
I need to get back into it because for me the problem was more with the uphill and downhill paths, which weren't the right ones. If I activated paths with a scaled bag, it would take them uphill, whereas it's better to climb on farm tracks than on narrow singletracks designed for climbing.
I'll try to do some more examples this week.
Ok, I just saw that if I force the route onto the tertiary (now unclassified, did you change it in osm?) road up to the point in the south of your example where it leaves the road for the uphill track, the rest of the route is calculated exactly like you suggested (with the profile from dev branch, factor 3).
So it seems the uphill paths were only chosen because the uphill on the tertiary/unclassified is penalized to much.
Please test again with the modified profile in the current dev - Branch. I introduced the "road_factor" parameter, which reduces the major road penalty.
Please play around with this. It chooses your preferred route in the example starting from a value of 3 upwards. Please also check other places to confirm it works the intended way.
Edit: I added another commit to limit the road penalty reduction to flat and uphill sections - I think we still want to ride paths and not roads downhill, don't we? ;-)
So please use the latest commit from the dev Branch...
I have the impression that mtb_hard_factor impacts the difficulty of the climbs and descents. As a result, my climbs are correctly set to 1, but not the descents, where I should set it to 2.
Couldn't we manage to differentiate?
Level 1 uphill is more consistent, but in other places level 1 does not lead back down to the correct track because I suppose it is too complicated for it.
mtb_hard_factor=1
mtb_hard_factor=2
I tried playing around with
`assign downhillcost = max 0 ( sub 30 ( multiply mtb_hard_factor 10 ) )`
`assign downhillcutoff = 4`
`assign uphillcost = max 0 ( sub 40 ( multiply mtb_hard_factor 15 ) )
but I feel like I don't understand everything because it works for one case but not for the other.
Yes, it would be possible to change the hardness factor for uphills and downhills independently. I just tried to combine it all into one parameter at the time of initial development because LocusMap did not support arbitrary profile parameters at the time and it would have been a nightmare to create and maintain more than two variants of the profile (e.g. _easy_upphill_hard_downhill, _moderate_uphill_easy_downhill etc.).
The parameters you played with only influence the handling of height-meters, not which waytypes are used or the handling off difficulty tagging like mtb_scale, sac_scale or smoothness.
Activity
zossebart commentedon Dec 8, 2025
Yeah sure. I'll see how I can help you. But please forgive me if my answers are delayed, I don't have much time atm.
ravenfeld commentedon Dec 8, 2025
For example, I'd like it to suggest this route without adding any routing points.
Because the climb makes more sense for mountain biking, where you ascend on wide tracks and descend on singletrack. I've tried modifying the uphill_cost, but it doesn't give me much of a result.
I wanted to indicate that sac_scale is prohibited on the uphill, but I don't think that's possible.
https://brouter.damsy.net/latest/#map=15/45.2225/5.9769/cyclosm&lonlats=5.986944,45.234513;5.970535,45.225706;5.960767,45.218978;5.96274,45.216165;5.972611,45.21414;5.98673,45.23427
zossebart commentedon Dec 12, 2025
Regarding the uphill: there is a gate without access tags in your suggested uphill path. The profile doesn't route through such gates by default (because you can not be sure if it is locked, which would be bad if you came there after a long uphill and had to turn around).
You can change this behavior through the profile parameter "use_uncertain_gates". With this enabled, the uphill should nearly look like your suggested route.
Btw: do you know this route in reality? If yes, can you say if the gate in the uphill is accessible for the general public?
For the downhill: maybe the downhill costs are sometimes too high. I had lowered them in a work in progress branch 5 years ago (which actually was about changes in the uphill-routing), but had to stop working on it because of other private priorities. I'll try to look at it again...
What do you mean by "I wanted to indicate that sac_scale is prohibited on the uphill"? Can you explain this in more detail please?
ravenfeld commentedon Dec 12, 2025
Yes, the barrier can be opened, and if I remember correctly, I also tested it by modifying the parameter.
Regarding the
sac_scalesetting, I think it might help prevent someone from taking uphill paths compared to someone with a lowersac_scalesetting.ravenfeld commentedon Dec 12, 2025
With
profile hardanduse_uncertain_gates=truezossebart commentedon Dec 16, 2025
Regarding the gate: so maybe you could modify it in osm? Maybe with a (very general)
access=yesoraccess=permissive. I mean, if you have some experience with editing osm.Please test again with the profile from current dev branch. I reduced the downhill penalties considerably. Now it takes your suggested downhill with
mtb_hard_factor2 (demanding).But look at the result with
mtb_hard_factor3 (hard). It now takes a completely different route downhill, with overall more route length on paths (but also a longer highway=track). Do you know this route? Can you estimate if this makes sense?Btw.: you don't need to explicitly use the hard profile. Both normal and hard profiles are identical, only that
mtb_hard_factoris preset to0in the former and3in the latter. The two profile variants only exist because LocusMap didn't support arbitrary profile parameters in old versions, so it was not possible to easily change this parameter on the fly.zossebart commentedon Dec 16, 2025
And I forgot: regarding
sac_scale: it is only taken into account in the downhill penalty atm.Do you have an example of an uphill which you would like to avoid (and that has
sac_scaletagging)?ravenfeld commentedon Dec 16, 2025
Factor 3 is starting to get really good, I think.
Factor 3
What we actually did, at the beginning I didn't understand why he preferred to go back up onto the 4x4 track rather than stay on the road. And he climbed a bit too fast on a path before heading towards the refuge.
After that, it's a complicated route because you inevitably have to push at some point to reach the top, but that's what you generally do on a mountain bike, I think.
I'm going to test level 3 on other courses to get more feedback.
ravenfeld commentedon Dec 16, 2025
Another example

In reality, we would have done more of this.

He's willing to tackle steep climbs rather than prioritize distance, but on gentler slopes, I get the impression
zossebart commentedon Dec 17, 2025
That's because the road is tagged as
tertiary, which normally is a road that can have a lots of traffic (which is avoided by the profile). By looking at satellite imagery, I suspect the road is not tagged correctly (unclassifiedorserviceseems more suitable here, but I'm not a local)zossebart commentedon Dec 17, 2025
Please also give links instead of screenshots. I have to look at the penalties in detail, but have no idea where exactly this is.
ravenfeld commentedon Dec 21, 2025
In France, a
tertirayisn't a high-traffic road; it's a road that connects two villages. But here it's more like anunclassifiedroad because it doesn't connect to anything.The link starts from the same parking lot. Here's the link.
https://brouter.de/brouter-web/#map=15/45.2286/5.9952/standard&lonlats=5.987279,45.234424;5.993796,45.233603;5.986977,45.234581
zossebart commentedon Mar 18, 2026
Sorry for the delay. I really had to get some things done in my job and private life.
I think one solution for your last scenario could be, to make the factor of "main road" avoidance configurable through a profile parameter. In the end, it is a thing of personal preference wether to use main roads or not in mountainbike tours.
What do you think?
ravenfeld commentedon Mar 18, 2026
I need to get back into it because for me the problem was more with the uphill and downhill paths, which weren't the right ones. If I activated paths with a scaled bag, it would take them uphill, whereas it's better to climb on farm tracks than on narrow singletracks designed for climbing.
I'll try to do some more examples this week.
zossebart commentedon Mar 18, 2026
Ok, I just saw that if I force the route onto the tertiary (now unclassified, did you change it in osm?) road up to the point in the south of your example where it leaves the road for the uphill track, the rest of the route is calculated exactly like you suggested (with the profile from dev branch, factor 3).
So it seems the uphill paths were only chosen because the uphill on the tertiary/unclassified is penalized to much.
ravenfeld commentedon Mar 18, 2026
Yes, I made it unclassified when we discussed it.
I'll test it in other places too to check for consistency. Thank you so much for your time.
zossebart commentedon Apr 21, 2026
Please test again with the modified profile in the current dev - Branch. I introduced the "road_factor" parameter, which reduces the major road penalty.
Please play around with this. It chooses your preferred route in the example starting from a value of 3 upwards. Please also check other places to confirm it works the intended way.
Edit: I added another commit to limit the road penalty reduction to flat and uphill sections - I think we still want to ride paths and not roads downhill, don't we? ;-)
So please use the latest commit from the dev Branch...
ravenfeld commentedon May 3, 2026
I have the impression that mtb_hard_factor impacts the difficulty of the climbs and descents. As a result, my climbs are correctly set to 1, but not the descents, where I should set it to 2.
Couldn't we manage to differentiate?
Exemple:

https://brouter.de/brouter-web/#map=16/45.2378/5.9886/standard&lonlats=5.988619,45.232922;5.992379,45.237768;5.988527,45.232779
mtb_hard_factor=2
mtb_hard_factor=1
Level 1 uphill is more consistent, but in other places level 1 does not lead back down to the correct track because I suppose it is too complicated for it.
mtb_hard_factor=1

mtb_hard_factor=2
I tried playing around with
but I feel like I don't understand everything because it works for one case but not for the other.
zossebart commentedon May 4, 2026
Yes, it would be possible to change the hardness factor for uphills and downhills independently. I just tried to combine it all into one parameter at the time of initial development because LocusMap did not support arbitrary profile parameters at the time and it would have been a nightmare to create and maintain more than two variants of the profile (e.g. _easy_upphill_hard_downhill, _moderate_uphill_easy_downhill etc.).
The parameters you played with only influence the handling of height-meters, not which waytypes are used or the handling off difficulty tagging like mtb_scale, sac_scale or smoothness.
I will try to work on it.