Commit Graph

7455 Commits

Author SHA1 Message Date
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
2bf7ce232a Port map_editor to the shared map-space World abstraction. #763
There may be small UX bugs, but the code is vastly simpler now, and all
main functionality works fine.
2022-02-20 11:01:57 +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
6d3e3fdee1 Fix github build [rebuild] [release] 2022-02-19 18:19:43 +00:00
Dustin Carlino
e16e151b6a Organize the 7 runnable apps under a subdirectory. #844 [rebuild] [release] 2022-02-19 18:17:08 +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
Dustin Carlino
7859304690 Draw road outlines in the map_editor; it makes it easier to work on geometry fixes 2022-02-19 15:32:13 +00:00
Dustin Carlino
f7f8f3fe54 Remove the dependency on map_gui from map_editor, letting it compile much faster. This unfortunately requires copying the CameraState code; I couldn't find an appropriate place to move that 2022-02-19 15:23:39 +00:00
Dustin Carlino
f14554f6b7 Lift URLManager from map_gui to widgetry 2022-02-19 15:14:53 +00:00
Dustin Carlino
aa48def2ba Lift FileLoader and friends from map_gui to widgetry
(Very tricky dependency shuffling...)
2022-02-19 15:07:07 +00:00
Dustin Carlino
3b21bf6e87 Lift PopupMsg to widgetry 2022-02-19 14:38:26 +00:00
Dustin Carlino
244e82122c Detect negative departure time in scenario JSON. #861 2022-02-18 16:30:48 +00:00
Dustin Carlino
54634e564a Import São Miguel Paulista 2022-02-18 16:19:09 +00:00
Dustin Carlino
ad5425ea3c Maybe I'll even remember to upload the regenerated data 2022-02-17 20:24:20 +00:00
Dustin Carlino
6a5366292f Make editing maps with transit stops a little more resilient. #372
Transit stop IDs previously were tied to LaneIDs, but those can easily
change with edits to the number of lanes on a road. We still may need to
re-snap transit stops (if the driving position or sidewalk changes), but
this prevents one more common type of problem.

This requires regenerating everything, since it's a binary schema
change...
2022-02-17 20:18:24 +00:00
Dustin Carlino
0dc8972187 Fix editing maps that have public transit. #372
Back in #819, I broke things by creating the sidewalk+transit graph
before transit routes had been set up. This causes immediate crashing
when editing the 2 maps with transit (Arboretum and SF).
2022-02-17 19:35:46 +00:00
Dustin Carlino
c750493f38 Avoid crashes with PolyLine shifting. #860 2022-02-17 14:19:38 +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
49f3ad6a8d Remove some old London study areas, now that most boroughs are imported instead. #794, #577 2022-02-17 10:10:41 +00:00
Dustin Carlino
611ab9fce1 new release 2022-02-13 17:00:34 +00:00
Dustin Carlino
4779e8e26f Draw one-way arrows. #856 [rebuild] [release] 2022-02-13 09:02:09 +00:00
Dustin Carlino
062215a6f8 Make neighborhood entry/exit arrows visible on top of the fade. #856 2022-02-12 17:12:31 +00:00
Dustin Carlino
b969dbffe1 Save LTN binary proposals on web, invoking the sacred base64 dance to
work with browser local storage. #856

... and redraw filters after loading a proposal, which I broke a few
days ago
2022-02-10 17:38:08 +00:00
Dustin Carlino
205c17a2f0 Remove the command to do Raw->Map conversion in parallel, now that I've got pueue working. That command has major caveats with a few cities anyway. #326 2022-02-10 16:12:03 +00:00
Dustin Carlino
741040840a Use pueue to import cities in parallel as separate processes. #326
We need to name elevation directories differently to avoid conflicts
2022-02-10 16:02:43 +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
51e363b39b Bring in some Bristol OSM fixes that unbreak a particularly ridiculous junction, so the LTN tool does better 2022-02-10 11:01:40 +00:00
Dustin Carlino
8c20298c69 ...And forgot to upload data for previous 2022-02-09 22:23:48 +00:00
Dustin Carlino
2cca84c19b Import most London boroughs. #794
I used the simplified boundaries from
https://skgrange.github.io/data.html. 4 boroughs failed early in
conversion, need to investigate separately. Plenty of weird clipping
issues with the Thames.
2022-02-09 22:12:16 +00:00
Dustin Carlino
d5f7756d5f Import another part of Melbourne 2022-02-09 16:39:05 +00:00
Dustin Carlino
3729cba0c7 Always draw modal filters for the whole map, even in per-neighborhood views. For example, in the pathfinding view, now the 'before' route can cross existing filters anywhere, so it's kind of necessary to actually see them 2022-02-09 16:28:46 +00:00
Dustin Carlino
3de1ab3d9d Detect existing modal filters in OSM and represent them more directly. #851 2022-02-09 15:59:04 +00:00
Dustin Carlino
7fdfdd5e10 Import Melbourne 2022-02-08 09:45:03 +00:00
Dustin Carlino
c1a58e683b Use a 'back button' style a few places in the LTN tool, from UX session with Robin 2022-02-08 09:17:28 +00:00
Dustin Carlino
1c93af8850 new release 2022-02-06 17:41:19 +00:00
Dustin Carlino
2280a1088b Tiny UI change to trigger that Sunday [rebuild] [release] 2022-02-06 09:27:51 +00:00
Dustin Carlino
69d2fdd39b Standardizing app header and handling in the LTN tool. The select boundary UI was also missing button handlers... 2022-02-04 10:33:09 +00:00
Dustin Carlino
b06129da58 Add a way to temporarily flag off the slower blockfinding from #841 while working on maps that don't have the problem. 2022-02-04 10:07:54 +00:00
Dustin Carlino
bac81d25b8 Fix standard app buttons from LTN impact tool that weren't wired up 2022-02-04 10:00:26 +00:00
Dustin Carlino
ba84d564b8 Simplify the .zip release directory structure, getting rid of a nested directory that was originally meant to encourage people to use the script that captures logs. [rebuild]
This fixes a bug where switching from one of the other apps (LTN, 15m,
Santa) to the simulation crashes, because find_exe doesn't look in the
special subdirectory for game.
2022-02-04 09:49:47 +00:00
Dustin Carlino
b62954ef30 Add procgen houses for Levenshulme, since parts of the map are just missing buildings.
Regenerate the scenario in S3 now. Comparison with traffic counts barely
changed, so this didn't make much of a difference, but it can't hurt.
2022-02-03 14:40:57 +00:00
Dustin Carlino
9323b4dc37 Count throughput at border intersections #848 2022-02-03 14:29:50 +00:00
Dustin Carlino
ba5bf26072 Overhasty push on the last commit 2022-02-03 14:22:03 +00:00
Dustin Carlino
f22590ae0c Refactor MapBorders, used to snap trips starting/ending off-map to a
border. Try weighting by road classification. #848

No behavioral change for anything except UK scenarios. Still not
regenerating those.
2022-02-03 14:20:03 +00:00