Dustin Carlino
3d355f720c
Clean up CityPicker code using DrawWithTooltips
2021-07-18 14:14:19 -07:00
Dustin Carlino
942f2292fc
Steps towards clicking cells in the problem matrix to explore trips with differences. #600
...
- Add optional clickable labels to DrawWithTooltips
- Wire up problem_matrix to remember the list of trips associated with
each cell
- When clicking a cell, just open one arbitrary example trip
2021-07-18 14:14:19 -07:00
Dustin Carlino
db435cd56d
Use the quick fix to https://github.com/easbar/fast_paths/issues/34 to
...
dramatically improve time to import and edit maps.
The fix helps all maps that use extremely high edge weights to prevent
people from cutting through private roads. There may be a more robust
fast_paths fix later, but I want to reap the benefits for tomorrow's
release.
The dramatic numbers:
- importing huge_seattle: 893s down to 108s
- editing huge_seattle: 102s down to 19s
Query speeds didn't appear to substantially change.
2021-07-17 22:33:01 -07:00
Michael Kirk
f85f42a614
rebuild wasm when rust sources change
2021-07-17 11:24:46 -07:00
Dustin Carlino
d142b4fbd0
Refactor lots of the places walking along a PolyLine with a step size
...
Verified no behavioral change using the screenshot test. (Which only had
the driveway diff from b3ce53aa5f
)
2021-07-16 14:17:08 -07:00
Dustin Carlino
e1679998c1
Remove RawFileLoader and use a simple trick to avoid deserialization
...
instead. #377
See https://www.reddit.com/r/rust/comments/olodm1/how_to_grab_raw_vec8_bytes_from_serde/ ? for me explaining the problem and then immediately realizing the fix.
2021-07-16 13:33:31 -07:00
Dustin Carlino
9828006bcc
Avoid a crash when editing very short roads. #703
2021-07-16 12:53:37 -07:00
Dustin Carlino
816ae46943
Copy the file size progress bar to RawFileLoader too. #377
2021-07-16 11:25:27 -07:00
Dustin Carlino
76ecccf54b
When loading files on the web, print the received and total file size,
...
as a slightly better progress bar. #377
2021-07-16 11:25:27 -07:00
Dustin Carlino
16f7796c68
Comparing paths before/after edits requires the unedited map.
...
Previously, this was done through an incredibly complicated dance of
loading the map file again when needed. This was slow (especially on
web!), made the InfoPanel API have a bizarre edge case, and even had
some way of crashing if you open a trip panel in some situation.
Rip all that nonsense out. The unedited map can just be cloned before
applying the first edit.
2021-07-15 23:01:35 -07:00
Dustin Carlino
4cfb06da97
Make the Map cloneable, by being careful with the thread-local pathfinder state.
...
I think this will help simplify calculate_unedited_map. But even if not,
this is bound to come in handy.
2021-07-15 18:34:42 -07:00
Dustin Carlino
ff310af3d1
Consistently follow rules for whether a lane can be edited. #597
...
Allow sidewalks, shoulders, and center turn lanes to be edited now.
Still don't touch service roads or light rail.
2021-07-15 18:21:49 -07:00
Dustin Carlino
062f38aca3
Speed up the previous by caching road_to_buildings in Map.
2021-07-15 18:12:15 -07:00
Dustin Carlino
b3ce53aa5f
Draw building driveways per zoomed-in road, rather than as one map-wide batch. Otherwise, every single edit to road width needs to redraw all driveways. This doesn't scale with larger maps!
...
When zoomed in on just a building but not its road, this means the driveway won't show up until the road is in view. Acceptable trade-off.
2021-07-15 18:05:04 -07:00
Dustin Carlino
628f75f9fb
Update actdev scenarios with fixed departure times
2021-07-14 15:04:56 -07:00
Dustin Carlino
10fdaa8e92
estimate_duration already knows the mode, from the PathRequest
2021-07-14 12:38:19 -07:00
Dustin Carlino
9c3fe9e229
Add filters to the mode shift table. #448
2021-07-14 12:31:54 -07:00
Dustin Carlino
03d21c4fe9
A first mode-shift experiment: create a table of trips showing expected
...
time to drive/bike, the elevation profile, and the distance. #448
2021-07-14 12:17:03 -07:00
Dustin Carlino
65c5b17002
new release, mid-week
2021-07-14 09:37:31 -07:00
Dustin Carlino
149df630d4
Fix web build -- have to WASM-guard the debug tool that calls the importer
2021-07-13 23:00:45 -07:00
Dustin Carlino
38be4c0f68
Fixing small style/clippy problems and kicking off a [rebuild] [release]
2021-07-13 22:52:56 -07:00
Michael Kirk
5ab8109f3b
add tests, fix remainder rounding in parts
2021-07-13 22:51:18 -07:00
Michael Kirk
7bf3f03251
add y-axis to aggregate duration table
2021-07-13 22:51:18 -07:00
Michael Kirk
43a3f2cdc2
round duration strings to largest unit
2021-07-13 22:51:18 -07:00
Michael Kirk
78a840edfa
return Duration not mins
2021-07-13 22:51:18 -07:00
Dustin Carlino
a1a97877a5
Better snapping heuristic: if only a small section of a cyclepath is close to a parallel road, don't snap it at all. #330
2021-07-13 17:55:58 -07:00
Dustin Carlino
9237afb439
Revive cyclepath snapping. #330
...
Several ways to output the results:
1) just write OSM tags to debug stuff, but keep the ways
2) write a KML file to visualize the perpendicular line checks
3) delete the cycleway and make it an attribute of roads instead
Many problems with the snapping heuristics, but enough progress to
commit disabled!
2021-07-13 15:33:07 -07:00
Dustin Carlino
14a0e005c8
Make sliders trigger Outcome::Changed, except for scrollbars. Manually
...
verified this doesn't break or slow down existing uses of sliders.
2021-07-13 12:36:54 -07:00
Dustin Carlino
e20ce2d041
While modifying a scenario, show how many trips match the filter.
...
(Except not updating the filter when changing sliders yet...)
2021-07-13 10:44:20 -07:00
Dustin Carlino
3d5955c2b6
Hardcode infinite parking option for a few maps. #688
...
This is an interim option until we decide whether this setting belongs
on the map, the scenario, or something else.
2021-07-13 09:03:07 -07:00
Dustin Carlino
f35538b460
Grab everything from Overpass, so importing from it looks more complete. #523
...
Because it's so much faster, make it the default!
2021-07-12 14:21:33 -07:00
Dustin Carlino
66be29d752
Import a new city using Overpass, instead of Geofabrik + clipping. #523
...
The returned XML seems to be missing lots of stuff, but it's much faster
and wasn't hard to wire up. I'll look into fixing the query...
2021-07-12 14:06:54 -07:00
Dustin Carlino
aa5baa57de
Get less confused when switching back&forth between two debugged maps
2021-07-11 15:21:59 -07:00
Dustin Carlino
e750048141
Improve intersection merging workflow by hiding popup msg for successful imports #654
2021-07-11 13:41:29 -07:00
Dustin Carlino
2224dccda9
Add a tool in the main UI to try to merge junctions. #654
...
It maintains a JSON file of ways to merge that the importer also uses.
For maps fast to import, this is the nicest workflow. Unlike map_editor,
turns and trimmed roads can also be checked.
2021-07-11 13:19:00 -07:00
Dustin Carlino
b925f0c015
Add a button to reload RawMap in editor, effectively making a way to undo a tested merge operation. #654
2021-07-11 12:29:45 -07:00
Dustin Carlino
b184ecd409
new release
2021-07-11 10:44:32 -07:00
Dustin Carlino
843dd38f7e
Support multi starts/ends in the Dijkstra pathfinding engine. [rebuild] [release]
2021-07-11 10:11:50 -07:00
Dustin Carlino
7b98dd72e2
Backfill the implementation of all_costs_from.
2021-07-10 17:32:06 -07:00
Dustin Carlino
8be065c1b8
Finally regenerate all data. Trip times got slower, because now pedestrians can't zoom up one side of a steep hill.
...
Temporarily leaving all_costs_from as the only thing broken by the
refactor. Will fix it before the release tomorrow.
2021-07-10 17:14:10 -07:00
Dustin Carlino
6128ab5ed5
Fix an issue with init order and transit::make_stops_and_routes
2021-07-10 17:14:10 -07:00
Dustin Carlino
dd24f3ab89
Make the parallel map importer more useful by skipping places where it doesn't properly work
2021-07-10 17:14:10 -07:00
Dustin Carlino
0edc0cb279
Fix the Dijkstra pathfinding, by using DiGraph, which is serializable
2021-07-10 17:14:10 -07:00
Dustin Carlino
2d16f5d878
Get the crazy pathfinding revamp to work
...
- initialization order
- reusing node ordering and applying edits
Importing, editing the map, and the basic scenario seem OK! --skip_ch
breaks, because of the lack of serialization
2021-07-10 17:14:10 -07:00
Dustin Carlino
c5369a10f4
Invert the structure of CH-vs-dijkstra pathfinding. Use a generic
...
"engine" that just operates on raw usize IDs. Embed that enum in each of
the particular pathfinders. This way, we don't have to keep duplicating
logic to delegate requests, handle one-step edge cases, etc. And it also
sets us up to more easily try out other CH implementations like osm_ch,
without having to move around tons of code.
Still use fast_path's InputGraph as the "universal" format, for now.
This is a huge change... got map_model compiling at least. Some stubbed
out stuff.
2021-07-10 17:14:10 -07:00
Dustin Carlino
74500a24dd
Refactor pedestrian pathfinding, sharing input graphs between CH/dijkstra
2021-07-10 17:14:10 -07:00
Dustin Carlino
830c683009
Refactor vehicle pathfinding. Share input graphs between CH/dijkstra
...
impl.
2021-07-10 17:14:10 -07:00
Dustin Carlino
fe64501e6d
Fix pedestrian speeds on inclines. Those walking contraflow on a
...
sidewalk were using the wrong incline!
Not regenerating data yet (need to regenerate all maps)
2021-07-10 17:14:10 -07:00
Dustin Carlino
da704b4546
Extend the parking thought bubbles to handle people climbing steep hills.
...
(And some clippy fixes)
2021-07-10 17:14:10 -07:00
Dustin Carlino
184593094e
Also round up the X axis for the elevation plot, and lower the number of
...
line plot labels by default
2021-07-09 09:23:56 -07:00