osm2streets
osm2streets copied to clipboard
Very tiny dog-leg road breaks
https://a-b-street.github.io/osm2streets/#20.35/51.47542/-2.53857
https://www.openstreetmap.org/node/60643708
This looks like a case where we should collapse the road, but the initial thing broke on one side?
Few things go wrong here. The tiny road attached to the north end is a degenerate intersection. We initially fail to make geometry for that side due to https://github.com/a-b-street/osm2streets/blob/6b46ef12cbe7ea56885ffb72ab0e9d0fddd03524/osm2streets/src/geometry/degenerate.rs#L21.
We don't later try to collapse it as a degenerate intersection, because the road name and lane specs don't match. (Sidewalks tagged vs not.) If we force it anyway, the intersection geometry is OK, but actually it reveals lane polygons blow up when there's a sharp and small bend at the very end of the polyline:
If I forcibly mark the tiny road as internal_junction and collapse it, the result is better:
But how can we detect when this resolution would work? If I apply it every time the degenerate intersection geometry case finds a road too short, then some other tests degrade, like aurora sausage, where there are very tiny crosswalk ways:
Maybe in the short term, only applying this rule to driveable short degenerate roads could work...
If I force degenerate intersection geometry to work in more cases by reducing the required length, it doesn't break, but doesn't look good: