streetcomplete / StreetComplete

Easy to use OpenStreetMap editor for Android
https://streetcomplete.app
GNU General Public License v3.0
3.84k stars 352 forks source link

Add class:bicycle #2210

Closed RubenKelevra closed 3 years ago

RubenKelevra commented 3 years ago

Overview

Bicycle classes are a still disputed topic. But I've been wanting to add more information to roads and cycleways for years now.

The main criticism about bicycle classes is that it's not objectively verifiable. I think that's wrong - at least cyclists which ride a lot should be able to choose a category.

Categories

Values Values from -3 to +3 are frequently used. "-3" was defined as a "way is so unsuitable that it should be avoided at all cost", while "+3" was defined as "it is worth making a big detour for getting here":

  • -3 = Avoid at all costs.
  • -2 = Only use to reach your destination, not well suited.
  • -1 = Better take another way
  • 0 = as well as other ways around. Try to avoid using 0 but decide on -1 or +1.
  • 1 = Prefer
  • 2 = Very Nice way to cycle
  • 3 = This way is so nice, it pays out to make a detour also if this means taking many unsuitable ways to get here. Outstanding for its intended usage class.

These are the 7 categories, while 0 is basically a 'null' category and shouldn't be tagged IMHO.

It should be noted that this tag is for cycling in general. It's obvious that the right bike should be used for the kind of path/track/highway - a racing bike is not suited for cycling on muddy terrain, while cycling in general (with an MTB) is very safe there.

For special classes of biking, there are proposed sub-tags which are not part of this quest suggestion, since I've never seen them be used in the wild.

Rationale

The intention of this tag is, to enhance routing by giving the routers a weight to judge highways with equal tags on the safety and how pleasant they are to ride. For example, a road with a sound barrier between the road and the cycleway plus a scenic view can be =3 while the same road with a sound barrier on the outside of the cycle lane would block the view and increase the noise and pollution level and would be at least =-1.

With poorly designed intersections it could even be =-2 in those areas.

That information like in extremely hard to decode by a router and thus need a special classification tag, like roads are classified with highway tags how important and pleasant they are to be used by cars and trucks. To aid car routers as well as users looking at the map to plan a route.

Additionally, a bike app could snap on the current route and warn about an area that has a hazardous rating - to give the cyclists a heads up.

Potential future expansion

In the future we might want to add a quest to specifically specify the hazards, like

etc. to give more useful warnings to the cyclists. But classes would be the first step to enhance the routing and the safety for cyclists using OSM-data.

General

Affected tag(s) to be modified/added: class:bicycle Question asked: How would you classify this road for cyclists? Pictograms Infotext Tag
Scenic
Low Pollution
LowNoise
VerySafe
BicycleFriendly
This way is scenic or well separated from direct noise and air pollution. It's safe even for children, elderly or inexperienced cyclists, and bicycle-friendly or pleasant to cycle here. =3
VerySafe
BicycleFriendly
It's very safe even for children, elderly or inexperienced cyclists and bicycle-friendly or pleasant to cycle here =2
BicycleFriendly It's bicycle-friendly or pleasant to cycle here =1
NotBicycleFriendly Not bicycle friendly or not pleasant to cycle here =-1
NotSafeForInexperienced
NotBicycleFriendly
Not bicycle-friendly and potentially hazardous for inexperienced cyclists, elderly or children =-2
NotSafe
NotBicycleFriendly
Not bicycle-friendly and potentially hazardous =-3

Checklist

Checklist for quest suggestions (see guidelines):

No Spam is hard to satisfy. The best-case scenario would be to have this tag on all highway=* and cycleway=* which are not bicycle=private | no.

But since this tag should be deactivated by default - only people who bike a lot should answer them. Only cyclists with a lot of experience have a good understanding of what's a safe and what's an unsafe situation.

So at least we wouldn't spam the user by default.

Ideas for implementation

I think we should just show the pictograms by default and an arrow on one side to extend the selection to show the info text.

If the answer is =3 we might want to ask for 'Is this road scenic?' and to explicitly tag scenic=yes or =no.

Proposed GUI:

See above for the general layout.

I'm sorry I'm not good at creating artwork. I thought about some potential pictograms - but that are just suggestions:

Pictogram proposed icon design
Scenic A meadow with a blue sky, a bright yellow sun, some mountains in the background and a tree on one side
Low Pollution a fume-cloud from an exhaust pipe with a green X over it.
LowNoise a loudspeaker with visible sound waves in front (like πŸ”Š) with a green X over it
Very Safe a green family pictogram with a checkmark
Bicycle Friendly a green road with a bicycle on it
NotSafeForInexperienced a green family pictogram crossed with a red X
NotBicycleFriendly a green road with a bicycle on it crossed with a red X
NotSafe a green shield crossed with a red X
pkoby commented 3 years ago

I like the idea, but I just cannot agree that it can ever be objective. Criteria for preferable ways will differ between cyclists even of the same level of experience. If you've been hit by a car, you might strongly prefer ways with little to no traffic, but cyclists who are less risk-averse won't care. Someone who rides in groups, thus having power in numbers against traffic may feel that traffic-heavy ways are fine, while a solo cyclist may not agree.

Then you've got scenic/safe categories. Some people may prefer vistas of nature, others may fine abandoned buildings super cool. Some neighborhoods may seem unsavory but be totally safe, such as industrial parks, while some neighborhoods with decent old houses may have high crime rates and be worth avoiding.

I like the idea, but I think this is too subjective of a tag for SC (but then, I don't even answer "Is this way lit", because it's a little iffy sometimes).

RubenKelevra commented 3 years ago

Hey @pkoby thanks for the feedback!

I agree that people might have personal preferences, but I think people can also ignore them and judge objective.

That's why I used 'safe for children and elderly' instead of 'safe for you'. I think it's easier to judge a street or an intersection (yeah I use the tags on intersecting notes as well) this way.

I removed the 0 which is documented very vaguely in the wiki right now, because it's too close to -1 and 1 for that reason, too. I agree that -1 and 1 are the most difficult - since they feel close.

The easiest way to use them would be if there's a smooth nice wide path for bicycles or low traffic - then it's nice to ride here.

If you have to cycle with the traffic and there's a lot or people like to drive there fast or the road is pretty narrow - then it's not preferable to drive there - in general.

Those ratings are pretty similar to highway=tertiary, highway=residential, highway=unclassified and highway=service. Those might look exactly alike on a map, like Google maps. But we differentiate very small differences to give routers and advantage when routing with OSM data. (Google Maps have similar categories but doesn't really show them on the map - they have a bit wider ones and smaller ones but it's hard to distinguish).

Most people would probably don't care, since the maxspeed and 'can I get through this road fast?' is all what they care - that's why Waze is so popular.

The bicycle class is similar to those classifications, which has some small differences for regular road users, but are somewhat easy to see for cyclists.

I tried to map classes in an area I know for years and it was pretty easy to do honest and objective ratings.

Have a look:

https://www.openstreetmap.org/changeset/93251950

https://www.openstreetmap.org/changeset/93250143

Btw: There's already a scenic tag in OSM and well I think use. I don't think we have to discuss it. :)

mvl22 commented 3 years ago

I'm one of the developers of CycleStreets.

Please do not progress this. It's really great that you are keen to improve routability in OSM, but the use of subjective attributes is the wrong approach architecturally. It is not useful for implementers as it is not reliable data. There are other things which would be far more useful to implement, which I suggest below.

Here in Cambridge, we have a saying "Ask 10 cyclists for their views, and you'll get 11 opinions."

A rating system is highly subjective, however much people may think otherwise.

For instance, take this example, from Blackfriars Bridge, London:

cyclestreets92772-size400

It is a fully-segregated, wide cycle path, of Dutch standard - so you can pootle along with barely a care in the world. On the right hand side of the photo there is a busy road, with heavy traffic. On the left is the river, with stunning views of London of the kind which people travel thousands of miles to see.

What rating should that have? There are completely contradictory indications here.

There is nothing in this tag that we can't synthesise from other, objective, data already in OSM. As the tagging of this Way and the nearby Ways shows:

Routing engines like ours can, and already do use these attributes (and those that we aren't yet using are just down to lack of priority). In other words, a good routing engine can and does create a subjective assessment from objective data.

Some of the latter proximity-based checks in this list would be improved in calculation efficiency terms by my suggestion of having a 'street' and 'junction' container concept, outlined in my State of the Map 2019 talk (see from 20m43s in). But that would only be a computational optimisation. They are already achievable under existing standard OpenGIS techniques available in most databases (even MySQL).

In terms of things like pollution data and traffic levels, that is published data that can be overlaid when computing weightings, in the same way as elevation data can.

Even where data is not available, how useful is it to have a single rating that encompasses many subjective attributes only one of which is pollution? Moreover, pollution is a concept that is heavily time-dependent. Pollution is lower at night simply because there is almost no traffic on the road next to it, and diesel buses are not running. Similarly, traffic levels are very time-dependent too. Is it helpful to have a rating like -3 on a road in the direction of an industrial estate which has traffic during the day, but on a summer evening becomes essentially a dedicated cycleway because there is no other traffic? The example of "Not bicycle friendly or not pleasant to cycle here" for instance might well apply on a leafy residential street which has rat-running traffic during the rush hour but is basically very safe and extremely pleasant the rest of the day and at weekends.

The example of 'safe for children and elderly' also does not solve the problem of subjectivity. There are retired people in Cambridge for instance who cycle every day and have been used to riding in traffic all their lives, but who would find the kinds of barriers and slow progress of an adjacent shared-use pavement really quite difficult to maintain balance on. There are children who have had good cycle training and find it easier to use to the road than to use a poorly-maintained pavement that has better ambience.

Another example is the different types of bikes, which as pointed out above end up with different user preferences, essentially making such a rating useless.

So for all these reasons, we disagree with any suggestion that this stuff is objectively verifiable.

What should StreetComplete do instead?

Simply encourage addition of missing attribute data.

There is masses of objective attribute data that would substantially improve routing quality but which isn't yet present in most cases:

An example of high-quality tagging of a cycleway is the Blackfriars Bridge cycleway.

The vast majority of Ways in OSM all around the world do not have this more complete set of tags present, but they could easily be added.

These are all things that can be answered with simple questions ("Is there lighting?", "Is it segregated from pedestrians?") . These significantly improve the basis on which advanced cycle routing engines like ours can take a user preference ("I'd prefer a faster route" vs "quiet route") and determine how much emphasis to give in each user scenario.

If you have spare resource to add cycling-related questions, please ask these more subjective questions that will make an immediate and real difference to routing quality.

Cycling routing is hard. It is not made easier by having subjective attributes.

westnordost commented 3 years ago

I watched your talk at the Sotm2019, really inspiring!

What's to come with StreetComplete are the following quests:

matkoniecz commented 3 years ago

These are all things that can be answered with simple questions ("Is there lighting?", "Is it segregated from pedestrians?") (...) If you have spare resource to add cycling-related questions

This two are implemented already :)

If you have any idea for quest fitting StreetComplete that is not asked already ( see list at https://wiki.openstreetmap.org/wiki/StreetComplete/Quests ) and there is no open issue for that - please, create an issue (there is a template available at https://github.com/westnordost/StreetComplete/issues/new/choose listing what kind of quests are fitting )

Especially if you are already using this data.

westnordost commented 3 years ago

So I'll close this. Please feel free to open a new quest suggestion if you think any bicycle-related data point could be added in the frame of a StreetComplete quest that isn't yet.

RubenKelevra commented 3 years ago

@mvl22 hey Martin, thanks for the detailed reply!

While I still think that bicycle class could work, I may be take a step back here:

See I tested some routers for cyclists and they don't do anything you described to get me safe from point a to point b.

Here's an example where Komoot, WindyMaps and OsmAnd happily navigate me over an very steep street with no bicycle infrasture, poor visibility due to long sweeping curves and maxspeed=100 tagged.

I don't see a reason why this should happen, if routing engines use the data available to calculate the risk.

Is there any routing engine which does this available for the public? πŸ€”

One of the elements in OSM:

https://www.openstreetmap.org/way/249463099#map=15/51.0983/7.1755

Screenshot_20201114-082833 Komoot

Screenshot_20201114-083122 WindyMaps

Screenshot_20201114-083621 OsmAnd

Screenshot_20201114-084203 Google Maps

matkoniecz commented 3 years ago

Here's an example where Komoot, WindyMaps and OsmAnd happily navigate me over an very steep street with no bicycle infrasture, poor visibility due to long sweeping curves and maxspeed=100 tagged.

I don't see a reason why this should happen, if routing engines use the data available to calculate the risk.

Is there any routing engine which does this available for the public?

note

I'm one of the developers of CycleStreets.

Personally I am using http://brouter.de/brouter-web/ with heavy use of no-go areas.

mvl22 commented 3 years ago

CycleStreets balanced (default strategy type) route...

D88B6EBF-83D6-4196-9955-A9DCCD9201C9

westnordost commented 3 years ago

Wait, cyclestreets is available outside UK as well? I thought that cyclestreets.net is somewhat focussed only on the UK? Is the app open source and available for Android? I'd like to try it out

michaelblyons commented 3 years ago

I am not associated with cyclestreets (just another interested non-UK biker). Looks like https://github.com/cyclestreets/android is GPL-3. I was able to see their 3 recommendations for my commute (quietest, balanced, fastest) on the website.

matkoniecz commented 3 years ago

I just tested it and cyclestreets routing works in Poland. I guess that I should compare it with brouter on next route searching