Giter Club home page Giter Club logo

Comments (9)

dabreegster avatar dabreegster commented on May 25, 2024 1

A google failed to help me define a sausage link intersection, do we intend to have a glossary in this repo?

Yeah, we probably should! I'm not sure where I heard the term first. https://labs.mapbox.com/mapping/mapping-for-navigation/implicit-restrictions/ mentions it. It's when a road constantly transitions between a single and dual carriageway due to some kind of intermittent physical barrier. When rendered in Carto (and osm2streets so far), the road looks kind of like sausage links

from osm2streets.

dabreegster avatar dabreegster commented on May 25, 2024

Part of this will be fixing up the lanes inferred on each piece, because it's definitely wrong right now. It's possible I might block working on this on cutting over to osm2lanes finally, so any fixes can happen in one (better tested) place

from osm2streets.

BudgieInWA avatar BudgieInWA commented on May 25, 2024

My attempt at something like this in the JOSM Lanes plugin was looking at one merged intersection at a time, but not at any graph properties. I am exploring that idea further, so it would be cool to see any ideas that other people have about it. Looking at the graph might be very powerful, for instances there's a little loop of oneways in the graph for each of the sausages.

It will be interesting for me to see you tackle a transformation in RawMap as a sort of template for how I might do it.

from osm2streets.

BudgieInWA avatar BudgieInWA commented on May 25, 2024

(I would love to figure out how to properly model crossing islands like this, but that's a later step.)

(I think: the presence of a traffic island implies that a short stretch of the divider has a substantial width. i.e. traffic_calming=island or crossing:island=yes implies a median buffer (which I don't quite know how to tag yet).)

from osm2streets.

dabreegster avatar dabreegster commented on May 25, 2024

It will be interesting for me to see you tackle a transformation in RawMap as a sort of template for how I might do it.

https://github.com/a-b-street/abstreet/blob/5907a8e3035ff7ae4af43568e5ad8d651d2fe400/raw_map/src/transform/find_short_roads.rs#L116 is one half of an example. (The other half is merge_short_road, which doesn't handle all edge cases)

(I think: the presence of a traffic island implies that a short stretch of the divider has a substantial width.

Definitely, and it'll be interesting to see if most roads keep the same overall width and shrink the lanes a bit near the island. There's likely a variety of ways to tag the island; this one example uses an area, https://www.openstreetmap.org/way/496700815, with some footpaths

from osm2streets.

droogmic avatar droogmic commented on May 25, 2024

A google failed to help me define a sausage link intersection, do we intend to have a glossary in this repo?

from osm2streets.

dabreegster avatar dabreegster commented on May 25, 2024

Need to detect and avoid false positives like:

https://www.openstreetmap.org/node/8141904208#map=19/51.49211/0.00378
https://www.openstreetmap.org/node/9563439140#map=19/51.49990/0.00457
https://www.openstreetmap.org/node/90266738#map=19/51.46112/0.03800
https://www.openstreetmap.org/node/90407230#map=19/51.47857/0.05173

from osm2streets.

dabreegster avatar dabreegster commented on May 25, 2024

Section "Lane markings: Traffic islands require very special treatment" of https://strassenraumkarte.osm-berlin.org/posts/2021-12-31-micromap-update describes a similar process to this transformation

from osm2streets.

dabreegster avatar dabreegster commented on May 25, 2024

I made progress with snippets of contraflow cycleway in the branch above. But I'm hesitant to enable this yet, because I had to shuffle around the order of transformations to make it work. We happen to collapse a short road after doing geometry, and only then do we have the graph structure to spot the sausage link. This is starting to feel precarious -- we could be brute-force and repeat a bunch of transformations until nothing changes anywhere. But is there a more principled and/or performant way of doing it?

from osm2streets.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.