Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Render surface=unpaved paths, tracks and highways like is done with dirt/gravel #367

Closed
Martin868 opened this issue May 18, 2020 · 11 comments
Labels
enhancement An already rendered feature which should be improved.

Comments

@Martin868
Copy link

If I got the current situation right, if a path or track is tagged with surface=dirt, gravel, it is rendered with a sort of dash pattern. However if it is tagged with surface=unpaved it is not, it just renders with a regular line. I would suggest you process unpaved just like dirt or gravel. In my area unpaved is used a lot and it would be useful to see that.
I would think the same request applies to other type of highway (minor, tertiary, residential). Given the rise of gravel biking it is very useful to render the surface={unpaved, dirt,gravel} so one can see that when planning a route. Thank you.

@Florimondable
Copy link
Member

You're right it should be rendered but how ?
We have 3 level today, and in the next release we're gonna have 4

  • quality road bike
  • quality trekking/gravel
  • quality mtb
  • unknown (only apply for path/track type)

Unpaved just say it's not quality road bike, shall we use trekking, mtb, unknown ?
For the next release it'll be rendered as unknowne

Example : https://www.openstreetmap.org/way/189303200#map=15/48.7582/2.7316

@Martin868
Copy link
Author

I would say definitely trekking/gravel unless there is a smoothness tag set to very bad or worse.

@Florimondable
Copy link
Member

Definitely ? Well, unpaved can mean mud !

@Martin868
Copy link
Author

From my experience unpaved is used broadly for roads that have no asphalt but usable by normal cars. So trekking and gravel bikes appear appropriate. The same way with paved we assume smooth tarmac and road bikes. However paved and unpaved are both rather generic tags.
paved can be further more specified with the following values: asphalt, paving stone, cobble stone. while the first two are fine with road bikes, the cobbles are not really suitable and a trekking bike is more approprie. Similarly unpaved can be further detailed with the tag values dirt, gravel, mud, compacted, etc. While dirt and gravel are fine with a gravel bike in general, compacted could be fine with a road bike and mud need a mountain bike. So with the tag values paved and unpaved you make some assumptions, but I think a road bike for paved and a gravel/trekking bike for unpaved are the right choice. However you can refine the rendering if a more specific surface tag value is used (asphalt, paving stone, cobble, dirt, earth, ground, gravel, fine_gravel, compacted, etc). You should also look at the smoothness tag for more clues. A very bad smoothness value calls for a mountain bike, even if surface is dirt or unpaved, because you now have a more specific value to infer that. That's how I would go about this anyway.

@Phyks Phyks added the enhancement An already rendered feature which should be improved. label May 19, 2020
@Martin868
Copy link
Author

Any progress on this ? Seems very simple to implement and it would be SOOOOO useful for people doing gravel riding. Until unpaved roads are properly rendered the COSM map does not allow to plot a gravel ride.

@Florimondable
Copy link
Member

We can go with paved as first quality road (road bike) because the wiki says
«A feature that is predominantly paved; i.e., it is covered with paving stones, concrete or bitumen. This value gives only a rough description; use a more precise value if possible.»

But for unpaved «Using more specific value is always preferable as surface=unpaved may mean everything from surface=compacted to surface=mud. » is clear.
I'd set it as unknown surface

@Florimondable
Copy link
Member

In surface sql code there is a bug :
the final ELSE should be 'unknown' not NULL, otherwise real unknown surface is not rendered as such (or we can use NULL value).
And a typo with 'bad' in surface.

            WHEN tags->'smoothness' IS NULL AND tracktype IS NULL AND surface IS NULL
              THEN 'unknown'
            WHEN tags->'smoothness' IN ('horrible', 'very_horrible', 'impassable')
              THEN 'mtb'
            WHEN tags->'smoothness' IN ('bad', 'very_bad')
              THEN 'cyclocross'
            WHEN tracktype IN ('grade4', 'grade5')
              THEN 'mtb'
            WHEN tracktype IN ('grade2', 'grade3')
              THEN 'cyclocross'
            WHEN surface IN ('bad', 'pebblestone', 'dirt', 'earth', 'grass', 'grass_paver', 'gravel_turf', 'ground', 'mud', 'sand')
              THEN 'mtb'
            WHEN surface IN ('concrete:lanes', 'concrete:plates', 'gravel', 'sett', 'unhewn_cobblestone', 'cobblestone', 'wood', 'compacted', 'fine_gravel', 'woodchips')
              THEN 'cyclocross'
            ELSE NULL
          END AS surface_type,

Bug visible with https://www.openstreetmap.org/way/458050536#map=17/48.66085/2.84911

@Martin868
Copy link
Author

Martin868 commented Jun 3, 2020 via email

@Martin868
Copy link
Author

Martin868 commented Jun 3, 2020 via email

@Martin868
Copy link
Author

Is this very useful yet simple to implement enhancement been put on the back burner ? Anybody doing gravel cycling, which is a big thing right now, is in need of this simple fix.

@Phyks
Copy link
Member

Phyks commented Aug 5, 2020

the final ELSE should be 'unknown' not NULL, otherwise real unknown surface is not rendered as such (or we can use NULL value)

Fixed, and added an explicit test case for surfaces which are to be considered as good for road bikes then (based on https://github.com/abrensch/brouter/blob/master/misc/profiles2/trekking.brf#L69).

And a typo with 'bad' in surface.

Fixed

We can go with paved as first quality road (road bike) because the wiki says

Done

I know in my area and pretty much everywhere in north america, the unpaved value is used for roads that are not asphalt, and then sometimes something more specific is used.

Sorry, but CyclOSM is not about North America, or anywhere else in the world. It is meant to be global. Looking around, I found that surface=unpaved covers way too much different realities to be considered anything else than "unknown". The wiki is also getting in this direction.

Therefore, next version will draw surface=unpaved as "unknown" surface, which will let the user conclude anything based on their own experience of the area.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement An already rendered feature which should be improved.
Projects
None yet
Development

No branches or pull requests

3 participants