iD icon indicating copy to clipboard operation
iD copied to clipboard

Cycleway:both is ignored

Open kaneap opened this issue 2 years ago • 3 comments

URL

No response

How to reproduce the issue?

  1. Select a road with cycleway:both=*
  2. The tagged cycleway is not displayed under "bike lanes"

Screenshot(s) or anything else?

image

This may be confusing to newcomers who may not think to look at the tags themselves.

As a side note, cycleway:both=* may be a better default tagging than cycleway=* as it specifies that a cycleway is in fact on both sides, similar to how the user fills in left and right in the iD interface.

Which deployed environments do you see the issue in?

Released version at openstreetmap.org/edit

What version numbers does this issue effect?

No response

Which browsers are you seeing this problem on?

No response

kaneap avatar Jul 26 '22 11:07 kaneap

Q: does Right side / Left side=none in the above screenshot affect this?

ChiefMikeK avatar Jul 27 '22 12:07 ChiefMikeK

Q: does Right side / Left side=none in the above screenshot affect this?

No, the iD preset seems to do nothing with it at all Screenshot from 2022-07-28 12-02-51 Using the iD preset to add the lane results in double tagging.

Adding only one side also leaves it unaffected: Screenshot from 2022-07-28 12-03-13

And then setting both sides to none in the preset leaves no cycleway=* tag, but the cycleway:both=lane remains unaffected. image

kaneap avatar Jul 28 '22 10:07 kaneap

In addition, cycleway=* does not always mean cycleways on both sides: on oneway streets cycleway=* implies cycleways on the main driving direction, so it is incorrect for iD to be showing bike lanes on the left and right side on a oneway road in this case.

(let me know if this is an issue better suited for https://github.com/openstreetmap/id-tagging-schema)

kaneap avatar Sep 04 '22 08:09 kaneap

In https://github.com/openstreetmap/iD/pull/9423 @tyrasd refactored the "special field" cycleway to be reusable for eg parking (https://github.com/openstreetmap/id-tagging-schema/pull/674).

However, the new directionalCombo does still need to handle the :both and :<null> case.

Possible solution:

intelligent special field

The special field could always show the left + right option. However, the raw tags view would show the actual tags. iD could then translate the tags automatically. (Raw tags has ":both=foo" => the field show "left=foo, right=foo". A user can change one side to "foo2", and raw tags would change to ":left=foo", ":right=foo2". The other way around, when a user picks the same value for both side in the special field, the raw tags shows ":both". — Reminder: ": + oneway=yes" case needs to be treated differently, unfortunately.

ui toggle

Another approach would be to extend the special field with a UI element to toggle between :both and :left+:right. In this case, the :<null> case would be both and the :<null>+oneway=yes would need a special label.

show all three + validation message

Another approach would be to show all three options and have a validation message the errors when users fill in both and left/right.

quick-n-dirty: duplicate fields

See my linked PRs in id-tagging-schema.


Update 2022-12-29: There is another layer of complexity: The sidewalk schema on highway uses the sidewalk=$side schema along side the one for cycleways and parking (Taginfo). Ping https://github.com/openstreetmap/id-tagging-schema/pull/454/files

So to have a full list, ideally, the directionalCombo would handle

  • Case foo:both / foo:left / foo:right (parking, cycleway, sidewalk)
  • Case foo / foo:both / foo:left / foo:right (cycleway, sidewalk)
  • Case foo + oneway=yes / foo:both / foo:left / foo:right (only cycleway)
  • Cycleway: Case foo + oneway=yes + oneway:bicycle=no / foo:both / foo:left / foo:right (only cycleway)
    • todo: double check if this really falls back to showing the both or left/right for the tag cycleway
  • Case foo=left / foo=right / foo=both (only sideway (I think; needs double checking))

tordans avatar Dec 28 '22 13:12 tordans

I found another issue with the current Cycleway-Preset-Field:

  • highway=* (+ oneway=no) + cycleway=lane show the Cycleway-Preset-Field with "left"+"right" filled in as lane.

In the same way, when I add cycleway "left"+"right" to a new highway and use the same value, this is tagged in "Tags" as `cycleway=*", no left, right or both.

AFAIK that is right how the community wants it. (I would prefer to have the explicit :both…)

  • highway=* + oneway=yes (+ oneway:bicycle=yes) + cycleway=lane show the Cycleway-Preset-Field with "left"+"right" filled in as lane.

However, my understanding that this should not be interpreted as "left"+"right" is lane, but as "right in direction of traffic is 'lane'". The other side is an implicit "no".

I think the magic that merges left+right into cycleway:<null> should not apply here, but leave the explicit values.

(I really wished this where easier for editors … but given the current state of community discussion, I don't think it's realistic to simplify the tagging recommendations.)

tordans avatar Jan 02 '23 16:01 tordans