Modify

Opened 2 years ago

Last modified 12 months ago

#15512 new defect

cycleway=lane not showing one side when,.......

Reported by: anonymous Owned by: team
Priority: normal Milestone:
Component: Internal mappaint style Version: tested
Keywords: dash, oneway, bicycle, lane, cycleway Cc:

Description

When on highway unclassified for example, the cycleway=lane is set, you get on both side the purple dash, when you set the road on oneway=yes, you get the right side this purple dash, all okay.

BUT,
when you set then oneway:bicycle=no, exception undersign by the traffic_sign on both sides of the road, this purple dash should be on both sides, it is not.

On both sides there is a marked lane(cycleway).

Attachments (1)

dashwrong.png (230.9 KB) - added by Allroads 2 years ago.

Download all attachments as: .zip

Change History (17)

comment:1 Changed 2 years ago by Don-vip

Component: Core mappaintInternal mappaint style

Can you please attach a small data set showing the problem and tell us what version of JOSM you're using?

Changed 2 years ago by Allroads

Attachment: dashwrong.png added

comment:2 Changed 2 years ago by Allroads

https://www.mapillary.com/map/im/FpE4bs3upWF7ItQjxVrsbQ
There is a cycle symbol on the way (on both sides red lane), cycleway=lane
oneway=yes from the other side.
the undersign says oneway:bicycle=no

http://overpass-turbo.eu/s/teF

the way
http://www.openstreetmap.org/way/6765746

there should be dash on both sides.

JOSM version 13053

comment:3 Changed 2 years ago by Klumbumbus

I can confirm this is a bug. I already had a quick look at the code and it seems a fix is not so trivial as I thought due to the current implementation with left/right hand traffic. I think I'll have a look at this again next month (if noboby else is faster).

Last edited 2 years ago by Klumbumbus (previous) (diff)

comment:4 Changed 2 years ago by Don-vip

I can look at it. What's the involved mapcss rule?

comment:5 Changed 2 years ago by Klumbumbus

/*****************/
/* cycleway tags */
/*****************/

    /* prepare lane */
way[oneway?][cycleway=lane]:righthandtraffic::core_cycleway,
way[oneway=-1][cycleway=opposite_lane]:righthandtraffic::core_cycleway {
    set laneRight;
    set righthandtr;
}
way[oneway?][cycleway=opposite_lane]:righthandtraffic::core_cycleway,
way[oneway=-1][cycleway=lane]:righthandtraffic::core_cycleway {
    set laneLeft;
    set righthandtr;
}
way[oneway?][cycleway=lane]!.righthandtr::core_cycleway,
way[oneway=-1][cycleway=opposite_lane]!.righthandtr::core_cycleway {
    set laneLeft;
}
way[oneway?][cycleway=opposite_lane]!.righthandtr::core_cycleway,
way[oneway=-1][cycleway=lane]!.righthandtr::core_cycleway {
    set laneRight;
}
way[cycleway:left=lane]::core_cycleway {
    set laneLeft;
}
way[cycleway:right=lane]::core_cycleway {
    set laneRight;
}
way[oneway=no][cycleway=lane]::core_cycleway,
way[!oneway][cycleway=lane]::core_cycleway {
    set laneLeft;
    set laneRight;
}

    /* prepare shared_lane */
way[oneway?][cycleway=shared_lane]:righthandtraffic::core_cycleway {
    set shared_laneRight;
    set righthandtr;
}
way[oneway=-1][cycleway=shared_lane]:righthandtraffic::core_cycleway {
    set shared_laneLeft;
    set righthandtr;
}
way[oneway?][cycleway=shared_lane]!.righthandtr::core_cycleway {
    set shared_laneLeft;
}
way[oneway=-1][cycleway=shared_lane]!.righthandtr::core_cycleway {
    set shared_laneRight;
}
way[cycleway:left=shared_lane]::core_cycleway {
    set shared_laneLeft;
}
way[cycleway:right=shared_lane]::core_cycleway {
    set shared_laneRight;
}
way[oneway=no][cycleway=shared_lane]::core_cycleway,
way[!oneway][cycleway=shared_lane]::core_cycleway {
    set shared_laneLeft;
    set shared_laneRight;
}

    /* prepare track */
way[oneway?][cycleway=track]:righthandtraffic::core_cycleway,
way[oneway=-1][cycleway=opposite_track]:righthandtraffic::core_cycleway {
    set trackRight;
    set righthandtr;
}
way[oneway?][cycleway=opposite_track]:righthandtraffic::core_cycleway,
way[oneway=-1][cycleway=track]:righthandtraffic::core_cycleway {
    set trackLeft;
    set righthandtr;
}
way[oneway?][cycleway=track]!.righthandtr::core_cycleway,
way[oneway=-1][cycleway=opposite_track]!.righthandtr::core_cycleway {
    set trackLeft;
}
way[oneway?][cycleway=opposite_track]!.righthandtr::core_cycleway,
way[oneway=-1][cycleway=track]!.righthandtr::core_cycleway {
    set trackRight;
}
way[cycleway:left=track]::core_cycleway {
    set trackLeft;
}
way[cycleway:right=track]::core_cycleway {
    set trackRight;
}
way[oneway=no][cycleway=track]::core_cycleway,
way[!oneway][cycleway=track]::core_cycleway {
    set trackLeft;
    set trackRight;
}

    /* render lane */
way.laneRight::core_cycleway {
    width: 2;
    color: bicycle#b100ff;
    dashes: 6, 10;
    offset: 0 - (prop("width", "default") / 2) - 2;
    major-z-index: 2.1;
    modifier: true;
}
way[prop("laneLeft","core_cycleway")]::core_cycleway2 {
    width: 2;
    color: bicycle#b100ff;
    dashes: 6, 10;
    offset: (prop("width", "default") / 2) + 2;
    major-z-index: 2.1;
    modifier: true;
}
    /* render shared_lane */
way.shared_laneRight::core_cycleway {
    width: 2;
    color: bicycle#b100ff;
    dashes: 6, 3;
    offset: 0 - (prop("width", "default") / 2) - 2;
    major-z-index: 2.1;
    modifier: true;
}
way[prop("shared_laneLeft","core_cycleway")]::core_cycleway2 {
    width: 2;
    color: bicycle#b100ff;
    dashes: 6, 3;
    offset: (prop("width", "default") / 2) + 2;
    major-z-index: 2.1;
    modifier: true;
}
    /* render track */
way.trackRight::core_cycleway {
    width: 2;
    color: bicycle#b100ff;
    dashes: 25, 8;
    offset: 0 - (prop("width", "default") / 2) - 2;
    major-z-index: 2.1;
    modifier: true;
}
way[prop("trackLeft","core_cycleway")]::core_cycleway2 {
    width: 2;
    color: bicycle#b100ff;
    dashes: 25, 8;
    offset: (prop("width", "default") / 2) + 2;
    major-z-index: 2.1;
    modifier: true;
}
    /* render opposite */
way[cycleway=opposite]::core_cycleway {
    object-z-index: 1;
    width: +0;
    color: bicycle#b100ff;
    dashes: 4,10;
}
node[cycleway=lane], node[cycleway=opposite_lane],
node[cycleway=track], node[cycleway=opposite_track],
node[cycleway=opposite] {
    icon-image: "presets/misc/deprecated.svg";
    set icon_z17;
}

comment:6 Changed 2 years ago by Don-vip

It looks simpler than that. I don't see any reference to oneway:bicycle key in our map paint style, so I don't see how it could work. Or am I missing something?

comment:7 Changed 2 years ago by Don-vip

Keywords: dash oneway bicycle lane added

comment:8 Changed 2 years ago by Allroads

oneway=yes and cycleway=lane makes a dashed line on one side either for right or left handed.
If there are not two dashed lines then a mistake (made by tagger) in tagging is undone in JOSM visualisation, now there is 1 dashed line.

Tagger should always use cycleway:right or left with oneway and a one side cycleway.
A mistake by a tagger is in mapcss corrected, this can not be right. Visualisation must be true, also to see wrong tagging

And not to correct with a JOSM visualisation with a extra rule string for use oneway:bicycle=no
When using, oneway:bicycle=no, oneway=yes should make cycleway=lane a both side dashed line. Solve it this way, enhancement, I do not think so.

People use cycleway=lane, when on both side is a cycleway lane. This is correct.

Last edited 2 years ago by Allroads (previous) (diff)

comment:9 Changed 2 years ago by Don-vip

Klumbumbus I'll let this one to you after all :)

comment:10 in reply to:  6 Changed 2 years ago by Klumbumbus

Replying to Don-vip:

It looks simpler than that. I don't see any reference to oneway:bicycle key in our map paint style, so I don't see how it could work. Or am I missing something?

With "bug" I meant that this case (with oneway:bicycle) is not yet handled at all.

comment:11 in reply to:  8 Changed 2 years ago by Klumbumbus

Replying to Allroads:

oneway=yes and cycleway=lane makes a dashed line on one side either for right or left handed. Here a mistake in tagging is undone in JOSM visualisation, tagger should always use cycleway:right or left with oneway and a one side cycleway.
This is maybe the bug.

And not to correct the JOSM visualisation with a extra rule string for use oneway:bicycle=no
When using, oneway:bicycle=no, oneway=yes should make cycleway=lane a both side dashed line. Neutralize the visualisation string.
Or is this the visualisation (bug), enhancement, I do not think so.

People use cycleway=lane, when on both side is a cycleway lane. This is correct.

It is hard to understand what you want to say, even after reading the text five times :) Could you please read again and edit your comment? Thx

comment:12 Changed 2 years ago by Allroads

I edit the above comment.

comment:13 Changed 20 months ago by Klumbumbus

Ticket #16422 has been marked as a duplicate of this ticket.

comment:14 Changed 12 months ago by Doug

quoting Allroads:


oneway=yes and cycleway=lane makes a dashed line on one side either for right or left handed.
If there are not two dashed lines then a mistake (made by tagger) in tagging is undone in JOSM visualisation, now there is 1 dashed line.

Tagger should always use cycleway:right or left with oneway and a one side cycleway."


I disagree, from the Twiki:
https://wiki.openstreetmap.org/wiki/Key:cycleway

"cycleway=lane is used to tag two-way streets where there are cycle lanes on both sides of the road, or one-way streets where there is a lane operating in the direction of main traffic flow."

Although I don't know how you'd know which side the lane is on, typically the side people drive on I guess.

Now once you get to also adding bicycle:oneway=no, then I'm not sure. It seems you should probably be using cycleway=opposite_lane and then probably an explicit left or right too.

comment:15 Changed 12 months ago by Doug

Also this can be a convenient way to tag on roads that continuously go between single carriageway two-way, and dual carriageway. You can select everything and just tag it cycleway=lane, instead of needing to select all the dual carriageway bits and tagging them separately as cycleway:right/left=lane just because some bits are technically one-way.

comment:16 Changed 12 months ago by Don-vip

Keywords: cycleway added

Modify Ticket

Change Properties
Set your email in Preferences
Action
as new The owner will remain team.
as The resolution will be set.
to The owner will be changed from team to the specified user.
The owner will change to anonymous
as duplicate The resolution will be set to duplicate.The specified ticket will be cross-referenced with this ticket
The owner will be changed from team to anonymous.

Add Comment


E-mail address and name can be saved in the Preferences.

 
Note: See TracTickets for help on using tickets.