Filtering out grade of tracks for bicycle routing


this is my 1st post here and I would like to begin by thanking you for this great tool. I use openouteservice for planing bicycle trips and it is almost perfect. The problems often come from missing / incorrect data in osm which I then correct, but sometimes I don’t find a reason based on the osm data.

For example I sometimes I get routed through paths that should not have been considered because of a bad quality, like on the following routing:

The beginning of the Waldstraße coming from Schlierbach is asphalt, grade 1, which is really nice. But after this I get routed through the grade 4 track, even when I select grade 3 as a minimum route grade in Route options>Profile parameters>Restrictions.

Are these restrictions maybe not considered with the “Bike” profile?

The next part of the route is also problematic: after the short asphalt part following the grade 4 track, instead of taking the nice grade 2 track that goes directly to where I want to arrive, I get routed through a path which is in it first part even tagged with “obstacle=vegetation” (which I can confirm for having been there). In this case I have no idea why openrouteservice chooses this small path over the nice track (in addition to this, the path goes over the top of the hill with more altitude difference, but I don’t know if this is considered by the tool).

About this last point, I haven’t found it and don’t know if it is possible, but t would be nice to be able to filter out some parts of routes that exceed a given steepness.

I hope you can help me a bit with this problem and thanks again for the great tool.

Hi @Le_DENKI ,

Please be aware of the profile restrictions for the profile_params.
track_type is for wheelchair only.

The obstacle attribute is not considered at all.
A bad track_type will receive a speed penalty which is considered during routing (see tracktype-speeds)

At the same time it will prefer routes that are a bit longer if it can go faster (eg. 18 on compacted) and make up for the lost distance.

However the more direct route in this case is also faster, so probably some internal weighting is rating the top route as more suitable.

Feel free to open a bug report in the backend repository including thorough description of the problem (or link to this post, but pls provide requests, response and links to the actual osm ways you are talking about)

Best regards

Hello amandus,

thank you for your answer and sorry that I reply only now.

The readme page on GitHub is quite interesting, I had never seen it before as I use only the web page , on which I cannot find any link to some kind of “how to use”.

On this page I see indeed that only the wheelchair profile accepts the track_type as a restriction parameter, so I will have to find another solution for this.

I see however also, that for cycling, a “gradient” restriction can be used, which would also be helpful in order to sort out too steep roads when these are unwanted. I still haven’t found on the web page where I can configure this restriction, but I hope I will find it in the end.

Concerning the “bug request in the backend repository”, I am sorry but I have no idea how this works.

Best regards


configuring the gradient restriction is actually quite hidden:
It will only show up for cycling- profiles, so you have to select cycling-regular or any other cycling profile in the path parameter tab in the api playground.
Then, you can find it on optionsprofile paramsweightingssteepness_difficulty (always click on the small pencil/edit icon in the field, not on the field directly).

Regarding a bug report in the backend:
If you feel that there is an error in the behaviour of the ors, or if you think it should work differently than it does, please report this directly on github - click on the green New issue-Button in the top right of the linked page and fill in the upcoming text areas - the questions already in there should guide you on what we need to assess the problem.

Best regards