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

Cycleway quest - Prevent easy removal of an existing oneway:bicycle=no tag #3795

Closed
bxl-forever opened this issue Feb 22, 2022 · 19 comments
Closed
Assignees

Comments

@bxl-forever
Copy link
Contributor

A one-way street, tagged with oneway:bicycle=no
User selects the cycleway quest and must provide the type of cycleway in both directions.
The problem is for the direction against motor traffic. Option 1 is "none". Option 2 is "none, but cyclist may use road in both directions".

I have seen many users in my city incorrectly select the first option: "none".

That choice is destructive because it will result in isOnewayNotForCyclists==true and will trigger the removal of "oneway:bicycle=no" from the way.

It is not just a simple mistake, it has nasty consequences because it breaks previously valid bicycle routing, and is particularly hard to spot. I live in Brussels and almost all one-way streets in my area are open to cyclists in both directions, with just roadsigns but no marks on the ground.

I wish there would be a warning here, something that would say: "This road was up to now set as two-way for cyclists, and you made it strictly one-way, are you sure?"

Or even better, merge those two options to only add cycleway:* tags and never remove an existing "oneway:bicycle=no" tag. (Make it a separate quest if needed.)

@FloEdelmann
Copy link
Member

Related: #3778, #533

@matkoniecz
Copy link
Member

matkoniecz commented Feb 22, 2022

I also thought about making option 2 more clear (symbolic green arrow? describe more clear that it allows contraflow cycling?), at least on ways where it would be a contraflow.

Or describe "none" as "cyclists are banned in this direction" or "oneway also for cyclists" or something similar.

Code: https://github.com/streetcomplete/StreetComplete/blob/master/app/src/main/java/de/westnordost/streetcomplete/quests/cycleway/AddCycleway.kt

Helper query: https://overpass-turbo.eu/s/1gmc

@westnordost
Copy link
Member

I think a warning dialog would be the best option here.

Though, what I don't understand is: If the road was previously tagged with having no cycleway but it is not a oneway for cyclists, why would a user then change this selection? After all, when the quest is asked as a resurvey, the previous tagging is pre-selected.

@matkoniecz
Copy link
Member

matkoniecz commented Feb 22, 2022

After all, when the quest is asked as a resurvey, the previous tagging is pre-selected.

In some cases SC is unable to interpret tagging and shows both sides blank in the resurvey quest.

Some people may be unaware about contraflow applying or existing at all.

@westnordost
Copy link
Member

It would only show the side it cannot interpret as blank.

@bxl-forever
Copy link
Contributor Author

I bet that if the quest is asked as a resurvey, we don’t have this issue. This is only when SC sees no existing cycleway tag.
Thanks.

@westnordost
Copy link
Member

But you wrote

That choice is destructive because it will result in isOnewayNotForCyclists==true and will trigger the removal of "oneway:bicycle=no" from the way.

I thought the issue is when there is already tagged that the road is a oneway but not for cyclists?

@bxl-forever
Copy link
Contributor Author

bxl-forever commented Feb 22, 2022

Oh, sorry, you are right. Apologies for wasting your time, I must have read the bit of code too fast and indeed, the tag seems to get deleted when isOnewayNotForCyclists==false, not true.

If seeing a real example can be helpful, here is one street to illustrate the issue:
https://www.openstreetmap.org/way/35964877/history (version 7)

@westnordost
Copy link
Member

So, err, can you summarize what exactly is the issue again?

@westnordost
Copy link
Member

You mean the issue you reported is reproducible with that way?

@matkoniecz matkoniecz added the feedback required more info is needed, issue will be likely closed if it is not provided label Feb 22, 2022
@bxl-forever
Copy link
Contributor Author

Yes, it is reproducible on the way I provided.

To sum it up. We start with a way with the following tags
oneway=yes
oneway:bicycle=no
no cycleway tag

In my example, "oneway=yes" and "oneway:bicycle=no" correctly reflect the legal situation.

SC prompts "Is there a cycleway here? What type?"
Imagine there are no marks on the ground at all.
The user will see the available choices and select the first option ("none"). As a consequence, SC will add "cycleway=no" but will also remove "oneway:bicycle=no".

After reading some of the comments above, it seems that either adding a dialog or presenting the options differently would help.

I talked with one user who removed valid contraflows, who explained he was influenced by the bicycle logo on the picture; not seeing any logo painted on the ground convinced him to select "none".

Screenshot_20220222-111404_Street­Complete

@matkoniecz
Copy link
Member

@matkoniecz matkoniecz removed the feedback required more info is needed, issue will be likely closed if it is not provided label Feb 23, 2022
@westnordost westnordost self-assigned this Feb 23, 2022
@westnordost
Copy link
Member

Okay, so the "none but cyclists may use road in both directions" is not prefilled because StreetComplete does not consider this tagging as complete for that side. Complete for that side would require an additional cycleway:left=no. Then, or if the app would interpret a missing cycleway:left=no in the case of oneway:bicycle=no as complete (enough to display), it'd look like this:

image

I think, displaying a warning dialog in this case would be better.

@westnordost westnordost removed their assignment Feb 23, 2022
@westnordost westnordost self-assigned this Mar 16, 2022
@westnordost
Copy link
Member

image

@markusstraub
Copy link

Thanks for reporting this issue @bxl-forever. I just spent part of my weekend fixing broken one-ways, i.e. streets where either cycleway=opposite(_lane|_track) and/or oneway:bicycle=no was removed by users of StreetComplete, in Vienna [1], and it was a bit frustrating :/.

Also thank you for the quick fix @westnordost! However, I would like to reopen this issue because it is only partially fixed in my opinion.

There are at least two ways to tag that a one-way road may be used by cyclists in both directions (that can also be used together)

  1. oneway:bicycle=no, i.e. the "modern" approach
  2. cycleway[:left|:right]=opposite[_lane|_track] (the most common variant probably being cycleway=opposite), i.e. the oldschool approach

The new warning dialog is not shown in the second case which is still common (at least here in Vienna).

-> please consider a road tagged like this the same as a road with oneway:bicycle=no.

[1] some of the problematic changesets:

@westnordost
Copy link
Member

Are you sure that the warning dialog is not shown in that case? Did you test it?

@markusstraub
Copy link

Yes I tested it in the current version of the app. Here is a map error introduced by myself a few seconds ago: https://www.openstreetmap.org/changeset/119874197

The street only had cycleway=opposite_lane, which is now replaced with cycleway:both=no. So according to the data now cycling is only permitted in the direction of the one-way.

The only question asked by the app was if I actually surveyed the area.

@westnordost westnordost reopened this Apr 18, 2022
@westnordost
Copy link
Member

Okay, that's pretty much a bug

@markusstraub
Copy link

Wow, thanks for the swift fix!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

5 participants