a-b-street/osm2streets

relation:connectivity?

Closed this issue · 5 comments

Hi, great package. I've been exploring it recently.

I don't see any reference to relation:connectivity in the code, but not sure if I'm missing anything. Is this (or is it planned) to be handled?

The image below is an example I think this would help. I added the connectivity relationship (Relation: 17470143) today, but it didn't change anything in Streets Explorer.

image

Hi, thanks for trying things out. We have movements between road segments started today, but no lane-to-lane turning movements yet. When that's started, we'll mostly use heuristics to figure out which lanes lead to which others, but when connectivity is mapped, definitely use it.

I also noticed there's a crash in rendering intersection markings nearby at https://a-b-street.github.io/osm2streets/#17.62/27.941355/-82.458842. I'll fix that, then maybe look into why the 3-way junction at the start of the bridge looks so bad. That's just a case of intersection geometry with the slip lane and crossing interacting badly; lane-level turns probably wouldn't have much to do with that.

Thanks! I realized this morning that placement would help, and it kind of did. I split it such that there was a clear transition way where it moves from the middle of the two lanes to the left, then specified the placement on the left for the segment that actually touches the bridge. This kind of made it better, but not sure how the placement:transition gets handled, seems like it should be aligned such that the placement matches on both the start and the end.

I noticed a few crashes in the surrounding area, but wasn’t sure what was causing it. If you pan east to show the roundabout (Cumberland & Channelside), nothing renders there either.

Thanks for looking into it!

I’m in no way good at Rust (still learning), but if I can help somehow on the lane destination heuristics somehow, let me know.

The placement did help, but I see the problem you're hitting:
image
I'm not very familiar with the placement implementation, but I don't think we handle transition yet:

// We haven't calculated the transition yet. At early stages of understanding the

The crash should be fixed; let me know if you hit others. Something funny happened near https://www.openstreetmap.org/way/906374669, and I'm not too surprised with a tiny disconnected segment of stairs.

The hard part for lane connectivity heuristics is probably coming up with the logic and understanding edge cases. When there's time to revive the work on turns/movements, I can ping you once the scaffolding is kind of set up, if you're interested in helping with that piece!

Thank so much. I'll close this for now. I may have a use case in the near future for understanding lane connectivity, so I'd be happy to assist to get it there.

Thanks for the interest @ryancasburn-KAI. The lane connectivity is very bare-bones and using the lane connectivity relation is definitely desired. I have only really started implementing lane connectivity across intersections, which is needed to calculate the meaning of placement=transition.

I didn't get to implementing the geometry transformations yet for supporting roads with a different position offset at the start and end.

I'll tag you for advice when I get back into the lane connectivity code.