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.
It's extremely unergonomic to do this. Issues:
1) Hard to keep track of which Results include good context and which
don't. Make a new type?
2) Lack of try blocks forcing use of closures
3) async try blocks aren't stabilized
* reorder tabs: plan trip before adding lanes
This order of tasks should be more logical for most people.
* Copy tweaks
"trip" is better than "route" since you don't pick the route, only the
start/end points. The route is inferred based on the available roads.
* Smaller elevation plot
it was much wider than any other UI element, meaning the column
dramatically jumps sizes when switching to this tab.
* better align line-plot x-axis
* Avoid jittering UI while switching through tabs.
* fixup! Avoid jittering UI while switching through tabs.
* fixup! Copy tweaks
* fixup! reorder tabs: plan trip before adding lanes
* fixup! Copy tweaks
to further organize them by purpose, but for the moment, two problems:
1) the city picker UI is getting way too crowded
2) on native, the initial download is up to 145MB
Removing:
- the 3 Aurora maps and Green Lake, added for the ARC workshop, but no
longer the most active of collaborations
- Ballard is now subsumed by central Seattle -- the only advantage would
be keeping its full scenario of walking and transit trips, but the
simulation is horribly gridlocked there anyway
- the Rainier Valley map, originally meant for an SNG traffic light
timing study
- the larger udistrict map
network tool reasonably on the web. #743, #746
I'm declaring the budget to be 20MB gzipped map files.
- north and south seattle boundaries extended a bit
- central seattle added
- stripping out unused pathfinding data for walking and transit to
squeeze down the size. avoiding crashes for empty pathfinding -- if
you try to simulate a minified map, most trips will just fail
now that my faster machine works again.
Running importer jobs in parallel is actually super hard, because
there's async stuff thrown in there now to download files.
* More conventional spelling of acronym identifiers
* `new` -> `new_state`
* Remove redundant field name
* Remove needless `collect`
* `to_controls` -> `make_controls`
* Simplify long if statement
* Fix module inception
* Simplify chained if let
* Return directly instead of creating a binding
* Disable clippy warning about `borrow` method
Implementing the `Borrow` trait instead would result in excessive type
annotations.
* Fix most remaining clippy warnings
* Allow clippy::type_complexity
* Fix bad merge from web editor
* Run cargo fmt
* Suppress large_enum_variant warnings
* Rename FYI state to ShowMessage
* Fix upper_case_acronyms warnings
Co-authored-by: Dustin Carlino <dabreegster@gmail.com>
* root element id from Settings, respect element size
* Plumb assets root via settings
* adapt crates to new wasm api
* more FileLoader cleanup
* use tsc bin from node_modules
* avoid spurious unlink errors
GNU Make considers the src/*/wasm_pkg targets as intermediate build
files and attempted to `rm` them. We can stop that my marking them as
`.PRECIOUS`
https://www.gnu.org/software/make/manual/html_node/Special-Targets.html
* `open` doesn't work on Linux
We could do something with xdg-open, but meh, not worth having platform
dependent logic for this.
* fix typo, clarify instructions
* make server compatible with older python install on linux
* revert change - we dont want to include music on web
the leading "-" means exclude a subdir of an included dir.
* better wrap of comments
* fix misfire in copy/pasted comment
* update docs
This forces the main importer to include tokio and propagate async a
bit. That seems worth it.
Also removed the quiet param from the download helpers; we always want
progress.
Use it in the updater and all the importer tools. Only place it's not
used yet is parking_mapper and the in-game updater. [rebuild]
Also make the RunCommand state understand the control code for erasing
the current line. It... sort of works.
call-sites. #253
To make some of these work, changed Label to store a String. Ultimately
it gets transformed into Text, so we need to allocate eventually.