Skip to content

This issue was moved to a discussion.

You can continue the conversation there. Go to discussion →

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

Bicycle road/street rendering #77

Closed
larsschwarz opened this issue Aug 18, 2022 · 8 comments
Closed

Bicycle road/street rendering #77

larsschwarz opened this issue Aug 18, 2022 · 8 comments

Comments

@larsschwarz
Copy link

This bicycle lane rendering always seems weird to me. Despite the visual representation there also seems an issue with detecting/marking the actual infrastructure itself.

A few examples:

This is an actual bicycle road with proper tags in OSM: https://www.openstreetmap.org/way/10575838
In A/B street it renders like a usual street/highway. Since it's dedicated use is cycling I'd expect it to be rendered like that (by its primary use).

This path here https://www.openstreetmap.org/way/32916454 on the other hand is just a regular path (no street) where bicycles and pedestrians are allowed, but it renders as bicycle lane in A/B street. For shared uses I'd render this as footpath.

A/B street seems to show everything with bike alloance as type "protected bike lane", which doesn't seem right.

Nodes with "oneway:bicycle" tagged render the green bicycle lane in A/B street in both directions. Example: https://www.openstreetmap.org/way/102442321

There are also some minor issues like the rendering of streets in a pedestrian zone (highway=pedestrian), these also render as bicycle lanes. Example: https://www.openstreetmap.org/way/17071901

Generally speaking everything bikeable seems to be rendered as "protected bike lane". This might be ok where the bicycle is the only dedicated use, but for shared uses (pedestrians) this seems wrong.

@Robinlovelace
Copy link
Contributor

Robinlovelace commented Aug 18, 2022

Brief follow-up comment on this: there are at least 6 different types of cycle infrastructure as shown below.

image

Source: Tait et al. (2022)

There's a balance to be struck between the benefits of simplicity and the benefits of capturing as much as possible about the urban environment. There's definitely an issue though, IMO: A/B Street is not picking up on bicycle:designated, right?

Confirmation that it's rendered as a regular street with the new osm2streets tool, so handy:

image

@Robinlovelace
Copy link
Contributor

I guess what's missing from that list is 'bicycle street', a 7th category?

@dabreegster
Copy link
Contributor

I'll give more background later, but in short, this is definitely the right time to finally fix this sort of thing. Main thing I could use help with is figuring out a style/color scheme to distinguish all of these different cases. One idea for shared walking/cycling paths is from https://strassenraumkarte.osm-berlin.org/?map=micromap#20/52.50012/13.41423:
Screenshot from 2022-08-18 23-53-10
The solid yellowish path, with dashed outline, and maybe some bike/ped icons dotted throughout.

Another possible source of inspiration is https://www.cyclosm.org/#map=18/52.92813/-1.48741/cyclosm, which shows a whole bunch of categories.

@larsschwarz
Copy link
Author

larsschwarz commented Aug 18, 2022

Besides the style the most confusing things to me are the missing bicycle_road = yes rendering, showing a 2 lane/both direction rendering when it's only oneway/1 lane (this also should take care of oneway roads that are allowed in both direction for cyclists (like https://www.openstreetmap.org/way/1082585252#map=21/53.14092/8.20710&layers=C) and the fact that the OSM Pedestrian Street Feature Type gets rendered as bicycle lane.

In regards to the style the OSM Strassenraumkarte might be a good example, but it's work-in-progress afaik (@tordans?), so probably not as much complete as cyclosm or other cycling specific map tiles/styles in OSM.

In Germany we use red, blue and green for different types of cycling infrastructure, but this might be even different between states. Just using one color (the green) seems very "prominent" to me and red woud be a better macht, but I can't tell what would work internationally if you prefer to stick to just one color.

@tordans
Copy link

tordans commented Aug 19, 2022

FYI, the Straßenraumkarte (which is "finished" in the sense of a stable bug free release) has a different goal, which is to build a "naturalistic" representation of the ground truth as a 2D map. Which means, it uses color when there is color asphalt; not to represent osm tags/categories. The foot-path are a deviation from that in order to get give them some kind of visibility.

This is a nice – and tricky – example for this topic: Weigandufer, Neukölln, Berlin

About the colors: IMO a good starting point is what cyclosm did and take the default bike lane color, paint the whole road and dim the color a bit. When I saw it first I thought it a bit much, but it does communicate the type of infrastructure quite well.

@dabreegster
Copy link
Contributor

Background

I just wanted to back up first and explain why all of these cases show up strangely today. Early on in the project, the priority was making the traffic simulation work in different situations, but in the areas I was focused on, importing separately mapped footways wasn't an option (due to big inconsistencies in data quality and troubles logically associating the sidewalk with the "main road" for the simulator). It was more important at the time to make sure the cycle network was imported somehow. So for shared-use cases like https://www.openstreetmap.org/way/24328181 and many others, the interpretation was this:
Screenshot from 2022-08-19 11-53-09

In reality, this is one "lane" that's bidirectional and shared by cyclists and pedestrians. But there's not yet a way of simulating bidirectional movement on one lane or making cyclists pass around pedestrians (see a-b-street/abstreet#139 for not-yet-attempted ideas). So in the meantime, I model this as 4 lanes -- 2 for pedestrians, 2 for cyclists, 1 in each direction.

What's changed

  1. The focus of the project hasn't been on traffic simulation for a while, so it's more important to now just get the map model to be more accurate. The simulation work can catch up later.
  2. The map model and rendering is now a bit decoupled from the traffic simulation -- you can use all of it in https://github.com/a-b-street/osm2streets, for example.

What we need to figure out

It feels like 3 things:

  1. What're all the different types of cycling and walking path that happen in reality? The image above from Caroline Tait's paper is focused on separation from cyclists and the main road, but this issue is more about shared spaces: living streets and walking/cycling areas without explicit segregation.

  2. How do we map OSM tags into these categories?

  3. How do we render these?

Rendering choices

a different goal, which is to build a "naturalistic" representation of the ground truth as a 2D map. Which means, it uses color when there is color asphalt; not to represent osm tags/categories.

In Germany we use red, blue and green for different types of cycling infrastructure, but this might be even different between states. Just using one color (the green) seems very "prominent" to me and red woud be a better macht, but I can't tell what would work internationally if you prefer to stick to just one color.

There are some decisions to make here. The current choice of green bike lanes and red bus lanes:
Screenshot from 2022-08-20 14-43-36
Are just rough matches to what's mostly used in Seattle, where I started this project.

I would very much like to change the styling based on locale. But it gets complicated, as mentioned in Germany. In London some cycleways are blue but others are just regular asphalt colored, though fully segregated.

In some cases, the "on-the-ground" color scheme is desirable. In others, a schematic to call out lane types would be better. What if we punt on this issue and just start supporting both, ie, by changing this code in the new JS rendering layer? The lane properties could also start exporting the on-the-ground actual color, and a later part of the code can decide what to show.

Separators

I'll mention that different types of segregation are partly supported now:
Screenshot from 2022-08-20 14-50-13
The goal is to use all the values in https://wiki.openstreetmap.org/wiki/Proposed_features/separation#Typical_separation_values and have a good 2D overhead view for these

@dabreegster dabreegster transferred this issue from a-b-street/abstreet Aug 20, 2022
@joostschouppe
Copy link

Just a minor comment : if a special treatment of bicycle_road=yes were to be implemented, apply this as well to cyclestreet=yes. This tag bundles extremely similar concepts, that do vary from country to country.

@Robinlovelace
Copy link
Contributor

The goal is to use all the values in https://wiki.openstreetmap.org/wiki/Proposed_features/separation#Typical_separation_values and have a good 2D overhead view for these

That would be amazing and I can see big potential for community contribution and crowd-sourcing designs for these:

  • no – no physical separation/demarcation/protection features (but usually with markings, that can also be specified – see below).

  • bollard – fixed bollards that prevent vehicles from running over them.

  • flex_post – flexible bollards/posts/delineators, often made of plastic, that buckle when vehicles run over them.

  • vertical_panel – larger or smaller traffic panels, sometimes only for temporary separation.

  • dots – small safety devices like Botts' dots/road studs/raised pavement markers that can be easily passed over but give a tactile or auditory feedback.

  • lane_separator – small bumps/guide curbs/separation kerbs/armadillos mounted on the ground to make it more difficult for vehicles to pass over.

  • planter – flowerpot or box for plants.

  • kerb – Common on the right side of cycle lanes or on the left side of cycle tracks. Sometimes there is a parking lane behind: use kerb;parking_lane in this case.

  • parking_lane – parked cars separating the cycleway from traffic. If there is no buffer zone, there may be a risk of "dooring" / car doors opening (hazard:bicycle=door_zone is proposed for this situations).

  • railing – a railing fence between the cycleway and a neighboring traffic area.

  • jersey_barrier – modular concrete or plastic barrier.

  • guard_rail – a guard rail or crash barrier. Could be a common value to use on street ways/motor vehicle lanes as well.

  • structure – a fixed physical structure that makes it difficult to cross, e.g. a bridge arch or pillar.

  • ditch – small deepening or water channel.

  • grass_verge – a green stripe keeps others away from the cycleway.

  • tree_row – a line of trees.

One addition to this would be 'armadillos' or 'orcas' of the type found on Torrington Place:

Also on Torrington place, and to be more mode agnostic, how about bike parking lane, common in the Netherlands and possibly needed in many places, tiny section of that shown below:

image

image

Source: https://www.google.com/maps/@51.5220949,-0.1330918,3a,75y,358.56h,71.34t/data=!3m6!1e1!3m4!1sMdMK2QKsRxVELX6fWL6Gfw!2e0!7i16384!8i8192

dabreegster added a commit that referenced this issue Sep 15, 2022
This introduces two new lane types and starts importing from OSM. The
experiment for separate sidewalk handling is refined to only deal with
parallel sidewalks and crossings. All the footways are imported always.
dabreegster added a commit that referenced this issue Sep 15, 2022
This introduces two new lane types and starts importing from OSM. The
experiment for separate sidewalk handling is refined to only deal with
parallel sidewalks and crossings. All the footways are imported always.
@a-b-street a-b-street locked and limited conversation to collaborators Feb 16, 2023
@dabreegster dabreegster converted this issue into discussion #192 Feb 16, 2023

This issue was moved to a discussion.

You can continue the conversation there. Go to discussion →

Labels
None yet
Projects
None yet
Development

No branches or pull requests

5 participants