iD
iD copied to clipboard
Cycleway:both is ignored
URL
No response
How to reproduce the issue?
- Select a road with cycleway:both=*
- The tagged cycleway is not displayed under "bike lanes"
Screenshot(s) or anything else?
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
Q: does Right side / Left side=none
in the above screenshot affect this?
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
Using the iD preset to add the lane results in double tagging.
Adding only one side also leaves it unaffected:
And then setting both sides to none in the preset leaves no cycleway=* tag, but the cycleway:both=lane remains unaffected.
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)
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: ":
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
- todo: double check if this really falls back to showing the both or left/right for the tag
- Case
foo=left / foo=right / foo=both
(only sideway (I think; needs double checking))
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 aslane
.
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 aslane
.
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.)