a-b-street / abstreet

Transportation planning and traffic simulation software for creating cities friendlier to walking, biking, and public transit
https://a-b-street.github.io/docs/
Apache License 2.0
7.77k stars 345 forks source link

Sidewalks are bidirectional, why aren't crosswalks? #813

Closed mdejean closed 2 years ago

mdejean commented 2 years ago

Crosswalks and other walking turns are currently duplicated with one being from each sidewalk. This results in some effort to avoid double-rendering like https://github.com/a-b-street/abstreet/blob/master/map_gui/src/render/intersection.rs#L58 and some double rendering at https://github.com/a-b-street/abstreet/blob/master/map_gui/src/render/traffic_signal.rs#L149 which afaik is the only usage of other_crosswalk_ids.

This would require changes to connectivity/walking.rs and the pathfinder to create and use ContraflowTurn/ContraflowMovement for walking turns.

dabreegster commented 2 years ago

Great question. I think it's an early design decision that we should change, in the way you identified. Originally I was planning to create two sidewalk lanes and retain the one-way property of all lanes. I guess I decided to just do that for turns, but indeed the simulation and pathfinding layer later got the contraflow options.

Let me know if you want to do this refactor. I'll have time later today to catch up on them other PR, followed by another few days of utter chaos.

On Sun, Nov 28, 2021, 9:58 AM Marcel Dejean @.***> wrote:

Crosswalks and other walking turns are currently duplicated with one being from each sidewalk. This results in some effort to avoid double-rendering like

https://github.com/a-b-street/abstreet/blob/master/map_gui/src/render/intersection.rs#L58 and some double rendering at

https://github.com/a-b-street/abstreet/blob/master/map_gui/src/render/traffic_signal.rs#L149 which afaik is the only usage of other_crosswalk_ids.

This would require changes to connectivity/walking.rs and the pathfinder to create and use ContraflowTurn/ContraflowMovement for walking turns.

— You are receiving this because you are subscribed to this thread. Reply to this email directly, view it on GitHub https://github.com/a-b-street/abstreet/issues/813, or unsubscribe https://github.com/notifications/unsubscribe-auth/AAMWLF4E37VP5UEFD2WELMTUOJUTXANCNFSM5I5RMA4Q . Triage notifications on the go with GitHub Mobile for iOS https://apps.apple.com/app/apple-store/id1477376905?ct=notification-email&mt=8&pt=524675 or Android https://play.google.com/store/apps/details?id=com.github.android&referrer=utm_campaign%3Dnotification-email%26utm_medium%3Demail%26utm_source%3Dgithub.

dabreegster commented 2 years ago

Other notes about doing this: We should do the same for SharedSidewalkCorner to be consistent. It shows up less in things like the simulation, because by construction there are never any conflicting movements.

I thought the traffic signal JSON format might need to change for this, but it looks like no -- I'd just expect the exported files to stop containing a duplicate crosswalk.