Commit Graph

14 Commits

Author SHA1 Message Date
Dustin Carlino
99747ff34e Make the LTN tool more robust to broken blockfinding. #841
Try the cheap validation first. If it breaks, fall back to the expensive
version.
2022-03-05 17:21:54 +00:00
Dustin Carlino
1ac25cc39a Find thick dual carriageway roads that overlap, and cut their width in
half.
2022-03-05 11:03:23 +00:00
Dustin Carlino
a421eaf900 Don't attempt to trace blocks around bridges/tunnels at all in Lyons, avoiding a crash there. #857 2022-03-01 15:24:59 +00:00
Dustin Carlino
460c03e75c Trace blocks starting from roads without sidewalks on both sides 2022-02-24 20:10:33 +00:00
Dustin Carlino
cb6a628149 When the pre-trimmed endpoint for a merged intersection is inexplicably not on a road's center line, just skip instead of crashing. This allows us to roll out the dog-leg intersection merging for many more maps and see pretty much universal improvement in map geometry! #654 [rebuild] [release] 2022-02-20 18:01:30 +00:00
Dustin Carlino
4d9074571b Regenerate 4 London maps. They wound up with parking lots and other
objects outside the study area boundary, because I changed the boundary
but forgot to first re-clip the .osm file. #794
2022-02-17 10:18:05 +00:00
Dustin Carlino
9054666a0b Use RDP simplification to road center-lines when we glue them together after collapsing degenerate intersections. This is a followup to #833.
And clean up some other things that RDP does better.

Fallout from regenerating everything:

- Enfield borough crashed, so removed it
- All UK scenarios are now much bigger, due to the changes in #853 being
  picked up
- Poundbury gridlocks now due to that
2022-02-10 14:40:11 +00:00
Dustin Carlino
e5704f4a6d Prevent many cases of blocks with overlapping geometry or that extend
too far, by not trying to trace near railways or cycle-only
bridges/tunnels. This is an imperfect heuristic, but it makes
significant progress in most maps.
2022-01-31 16:03:21 +00:00
Dustin Carlino
dfbd9785f3 While merging adjacent perimeters for the LTN tool, don't proceed if
intermediate results can't be turned into a polygon. It'll break
something later. #841

There's a particular bug where a perimeter can be turned into a polygon,
but after collapsing internal dead-ends, it can't.

If we don't do this, the LTN select boundary UI crashes, and reasoning
about block -> neighborhood mappings gets very hairy. I'd like to
address all the root causes of failing to make a polygon, but until
then...

TRADE-OFF: it _really_ slows down the select boundary UI.
2022-01-25 18:12:15 +00:00
Dustin Carlino
e1d0604718 Reduce the number of points along curvy roads. When they're tagged in OSM too close together, it explodes PolyLine shifting. #833 2022-01-06 17:27:10 +00:00
Dustin Carlino
85709b1e4f Workaround #834, which was causing partitioning to infinite loop when
there are disconnected railway segments dangling around
2022-01-06 13:25:16 +00:00
Dustin Carlino
cb3138dbfe When turning a perimeter into a block polygon, don't insist on tracing
along the perimeter of broken intersections.

There are cases where intersection geometry is a little bit broken,
jutting out a bit and touching a road. It's more robust to still produce
a reasonably shaped block in these cases, instead of totally give up.

Visual inspection and the goldenfile VASTLY improved!
2022-01-06 11:22:06 +00:00
Dustin Carlino
2356cee1db When tracing perimeters, allow doubling back at a dead-end with exactly
1 lane (usually a cycleway or footway). This correctly produces a few
more blocks in some maps -- as the goldenfile diff (and manual
verificaton) shows!

Also allow jumping from LTN browse to debug mode, to conveniently work
on blockfinding problems.
2022-01-06 10:16:11 +00:00
Dustin Carlino
5caccf6aab Add a goldenfile test to track how well we find single blocks and merge them into LTN areas. 2022-01-06 10:06:16 +00:00