Commit Graph

11 Commits

Author SHA1 Message Date
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
2890e6efcc Make the RawMap APIs for working with road center-lines less obnoxious 2022-02-23 15:27:27 +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
efe5f76bbe Improve the dog-leg detection around dual carriageways. Enable this for
Montlake! #654
2022-02-20 16:43:15 +00:00
Dustin Carlino
d6508e9376 Work on the dog-leg heuristic. #654
Borders now seem to be skipped correctly.

Having a hard time skipping dual carriageways based on angle.

Aiming to enable first for Montlake, then gradually rollout to
individual maps, solving problems very incrementally and without
regressions.
2022-02-20 13:26:08 +00:00
Dustin Carlino
7728297f33 With fresh puppy dog eyes, detect dog-leg intersections yet again. #654 2022-02-20 12:31:36 +00:00
Dustin Carlino
4583dac399 Organize raw_map code a bit more. Let's cleanly separate the detection of short roads from transforming them. #654
And add a convenient script to diff changed maps. (Motivated by
preserving the fixpoint behavior in Montlake)
2022-02-20 12:08:52 +00:00
Dustin Carlino
58991ab041 Start to reorganize code that transforms RawMaps, particularly things that try to merge short roads #654 2022-02-20 11:31:05 +00:00
Dustin Carlino
8869365285 Fix a bug placing new buildings in the map editor, where IDs could collide if placed quickly in sequence 2022-02-20 10:43:58 +00:00
Dustin Carlino
03b6f39763 Flatten the raw_map initial module now 2022-02-19 17:48:39 +00:00
Dustin Carlino
14bea3a4be Split out a raw_map crate from map_model. RawMap is the thing we turn
OSM and other raw input into and store, before later converting to a
Map.

Why?

- build-time performance: while iterating on geometry problems, map_editor in release mode took 33s to build before, 11s now that the crate is split
- better layering: operations on a RawMap are becoming increasingly distinct from later transformations on the bigger map model
- this helps tease apart the dependencies of the intersection polygon algorithm for #846
- this will make it simpler to cutover to osm2lanes for https://github.com/a-b-street/osm2lanes/issues/71

There's further reorganization in raw_map and map_model that'll follow,
but the main work is done here.
2022-02-19 17:39:28 +00:00