Dustin Carlino
18b03139ac
Remove the street_network and import_streets crates from this repo. They now live in the osm2streets repo! https://github.com/a-b-street/osm2streets/issues/41
...
Mostly straightforward, except for a slightly funny Cargo patch
2022-07-08 21:49:23 +01:00
Dustin Carlino
9980cf0a35
Split raw_map into a new street_network crate.
...
MapConfig has a new bool, so we will need to regenerate all data.
2022-07-08 21:26:46 +01:00
Dustin Carlino
7af2c028fc
Scrape bollards defined as OSM nodes, and plumb through to the LTN tool.
...
The approach is a bit brittle, but works fine in Bristol.
Regenerating everything...
2022-06-28 20:35:07 -05:00
Dustin Carlino
e47a985e54
Move more lane transformation logic into raw_map
2022-06-26 12:07:20 -05:00
Dustin Carlino
9841dad3ec
Move two of the logic-heavy lane transformations into raw_map.
...
This temporarily breaks a few tests in other places, porting that code
over momentarily...
2022-06-26 12:07:20 -05:00
Dustin Carlino
34487a3322
Upgrade to new georust, which subsumes geo-boolean-op.
...
Based on https://github.com/michaelkirk/abstreet/tree/mkirk/test-bools
Note geojson isn't upgraded yet, due to contours. And the old version of
geo is still pulled in, due to polylabel.
2022-06-13 17:30:51 +01:00
Dustin Carlino
d98f18bb18
Create a more careful API for handling one-way roads everywhere, in
...
preparation for modifying them in the LTN tool.
Regenerated everything. This had some effects on overlapping road
shrinking, mostly positive. Screenshot diffs all changed, since I
switched laptops again.
2022-05-27 17:01:36 +01:00
Dustin Carlino
a5a9415de0
Avoid crashing with the previous commit; we still need to remove dangling nodes no matter what
2022-05-21 16:54:42 +01:00
Dustin Carlino
8b71885b04
Optionally skip removing disconnected streets from the graph. For osm2streets tests, often our small clipped area looks very disconnected. https://github.com/a-b-street/osm2streets/issues/8
2022-05-21 13:20:57 +01:00
Dustin Carlino
150ec77f85
Remove the osm2polygons tests from #886 . Instead, we now have goldenfile
...
tests across larger chunks of OSM in
https://github.com/a-b-street/osm2streets/pull/15 .
2022-05-21 12:47:47 +01:00
Dustin Carlino
2e590c553a
Dump RawMaps to GeoJSON, for https://github.com/a-b-street/osm2streets/issues/8
2022-05-21 12:24:03 +01:00
Dustin Carlino
b4896ee450
Make untrimmed_road_geometry infalliable, in preparation for storing a
...
PolyLine instead of list of points.
This exposed two edge cases, fixed here:
1) While merging short roads near junctions, we sometimes create a loop.
Filter it out immeditely.
2) If an OSM way is physically sharing geometry with another one
invalidly, detect that and discard it much earlier.
2022-05-07 22:02:06 +01:00
Dustin Carlino
136eef3c3b
Just rename center_points to osm_center_points to be more clear. https://github.com/a-b-street/osm2streets/issues/2
2022-05-01 21:33:44 +01:00
Dustin Carlino
f72dd62e56
Store lane_specs_ltr on RawRoad, instead of constantly recalculating. https://github.com/a-b-street/osm2streets/issues/2
2022-05-01 19:39:57 +01:00
Dustin Carlino
bd5d93ba84
Wire up a way to override OSM sidewalk widths in basemaps using proposals.
...
We need this because we have a data source for SMP that we can use with
extra attribution, but not upload to OSM.
This whole commit is gross hacks; going forward, we need a proper
process for upstreaming stuff in OSM.
2022-04-27 10:21:54 +01:00
Dustin Carlino
b64874b92c
Simplify the intersection geometry interface, which also simplifies the implementation a bit. #893
2022-04-22 14:58:37 +01:00
Dustin Carlino
4d443ba4c8
Cut the intersection geometry algorithm itself over to the new API directly. #893
...
Verified no behavioral change. Much more cleanup is now possible inside
algorithm.rs. But most importantly, the InitialMap stuff only has 3
purposes -- all actually focused on producing final geometry.
2022-04-21 17:17:36 +01:00
Dustin Carlino
255028fd87
Remove another small use of InitialMap for saving geojson tests. #893
2022-04-21 16:27:15 +01:00
Dustin Carlino
d175652149
Refactor all intersection geometry callers to use newer API. #893
...
This pushes most uses of InitialMap inside raw_map.
2022-04-21 16:15:49 +01:00
Dustin Carlino
8244a900cf
Refactor constructors for RawRoad and RawIntersection. #893
2022-04-21 14:32:48 +01:00
Dustin Carlino
e66cb88c5d
Rearrange intersection geometry code and start goldenfile tests to pick up changes. #846
2022-04-18 08:48:07 +01:00
Dustin Carlino
9ffab3c976
Don't use assemble_ltr outside of raw_map; it's one small complication to switching to osm2lanes for https://github.com/a-b-street/osm2lanes/issues/71
2022-04-14 09:41:18 +01: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
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