Comments (9)
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.
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.
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.
(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.
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.
A google failed to help me define a sausage link intersection, do we intend to have a glossary in this repo?
from osm2streets.
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.
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.
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)
- is_sidepath proposal review HOT 2
- Stop plumbing osm_tags through HOT 3
- Simplify the early stages of creating a `StreetNetwork` from OSM data HOT 6
- Simpler osm2lanes editor HOT 6
- Intersection geometry refactor HOT 15
- Determine road geometry before path geometry HOT 4
- `GenerateIntersectionGeometry` makes existing intersections larger HOT 2
- Versioning HOT 2
- Experiment with curb data
- Prioritization exercise: make one area "perfect" HOT 4
- Propagating changes HOT 4
- Switch to Vite + NPM? HOT 1
- Remove experimental, keep graphviz
- Draw turn restrictions
- Stop lines HOT 5
- Some tests in AU have the wrong driving side HOT 3
- Investigate TopoJSON and/or MapShaper
- placement position names (right_of:1) should ignore sidewalks HOT 1
- Make StreetNetwork implement Send
- Degenerate geometry breaks at sharp angles
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
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.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from osm2streets.