Dustin Carlino
57963126fa
Fold number of housing units into Building; ditch the extra file approach.
2020-12-01 12:43:19 -08:00
Dustin Carlino
aa4d848a0e
Figure out the number of single family and multi-family units per OSM building, from parcel data. Just store it in an extra system file for now.
2020-11-30 10:58:47 -08:00
Dustin Carlino
2672eb837c
Remove the unused total_lanes from Path
2020-11-25 11:21:15 -08:00
Dustin Carlino
ab88010ed0
Refactor PathRequest creators that go between two buildings. #176 ( #404 )
2020-11-24 13:21:44 -08:00
Dustin Carlino
d83133fa09
Fix the biking mode for #393
2020-11-22 10:48:41 -08:00
Dustin Carlino
594b376734
Figure out travel time for bikes. #393
...
Something's wrong with the results, but it's a start.
2020-11-21 15:10:49 -08:00
Dustin Carlino
78eedff7c7
UI glue for switching between walking/biking. #393
2020-11-21 14:02:24 -08:00
Dustin Carlino
bf9d34d1a3
Drop results farther than 15 minutes away. #393
...
It'd be more efficient to terminate the Dijkstra's search directly, but
petgraph doesn't have an option for that, so we'll have to implement
Dijkstra's manually (shouldn't be hard).
2020-11-21 10:12:29 -08:00
Dustin Carlino
d33d051d47
Make the isochrone use time, not distance, as a cost function. And
...
floodfill using Dijkstra's, instead of computing loads of paths. #393
2020-11-19 14:11:59 -08:00
Dustin Carlino
f6565988c9
Let parking aisles span multiple parking lots.
2020-11-19 12:34:31 -08:00
Dustin Carlino
739e33ec3e
We do need to fill out trip legs for TripSpec::SpawningFailure; smoke tests in other maps hit it. #258
2020-11-17 18:02:48 -08:00
Dustin Carlino
b6be9c81d5
Generate city picker maps from a bunch of small maps, instead of one huge map. Use for Paris. One giant map covering everything there is going to be too large.
2020-11-13 18:22:46 -08:00
Dustin Carlino
6fe49ce0fa
Some preps for importing Paris: avoid crashing on some previously unseen
...
OSM things, and making geojson_to_osmosis handle multiple polygons in
one input file.
2020-11-13 16:31:22 -08:00
Dustin Carlino
c6b752d41b
Iterate on automatically finding medians for #230 . Still not ready, but
...
get fresh OSM data to test in both Krakow and Seattle. While I'm at it,
also grab fresh OSM for Krakow, since it's been ages.
2020-11-12 17:58:19 -08:00
Michael Kirk
6b02048ce7
see logs in web
2020-11-12 16:51:05 -08:00
Dustin Carlino
69699600ea
Prototype filling in the gaps near one-way roads. Needs more filtering
...
out, but solid start. #230
Regenerate map data, since the Area object changed.
2020-11-12 14:21:08 -08:00
Dustin Carlino
c96f84341a
Incorporate intersection corners in the around-the-block polygon. #230
2020-11-12 13:41:47 -08:00
Dustin Carlino
1b6af3dfb1
Prototype a debug mode tool to trace a polygon on the interior of any "loop" of roads. Aka, find the polygon if you "walk around the block." This can be used to fill in the blank space between dual carriageways. #230
...
Algorithm needs some work -- it doesn't trace along sidewalk corners,
and it fails for some starting lanes.
2020-11-12 12:53:41 -08:00
Dustin Carlino
7854823c28
Change the to/from permanent map edits APIs to be a little more ergonomic
2020-11-12 10:13:32 -08:00
Dustin Carlino
4b557fa6de
Bring in fresh OSM for Seattle. Because it's so annoying to manually
...
repair proposals when roads change upstream, make the test dump a
repaired file before failing. Manually inspect/amend that.
2020-11-11 15:16:06 -08:00
Dustin Carlino
3e7c0e51c4
Set up a test scenario for lane-changing to reproduce #382 . The same
...
problems aren't quite captured, but it's a start.
2020-11-11 11:33:47 -08:00
Dustin Carlino
2a546e528c
Skip applying no-op edits and recalculating pathfinding when leaving sandbox mode. For large maps, it's a noticeable delay
2020-11-10 15:19:41 -08:00
Dustin Carlino
e0a8d82b61
Reorganize polygon files to importer/config, instead of data/input.
...
Nothing in data/input should be under version control; all of it is
managed by the updater. #326
2020-11-06 10:10:03 -08:00
Dustin Carlino
cda586dfc9
Cleanup by moving some methods to belong to MapName. #326
2020-11-05 14:18:13 -08:00
Dustin Carlino
4f2cda8d53
Reorganize data/system/ files by city! The only interesting change is
...
abstutil::path_all_maps becoming abstutil::list_all_maps. #326
2020-11-05 14:05:48 -08:00
Dustin Carlino
67530bec07
Future-proof file organization by changing map_name from a string to a
...
struct. Whatever choices we make next about naming cities hierarchially
or not can be managed in just one place. #326
This is a pretty huge change, but the compiler gives reasonable
confidence it's correct. More bugs are likely to crop up in the next
step, when filenames start being namespaced by the city too.
2020-11-04 17:26:32 -08:00
Dustin Carlino
e99dd5bba7
Use inferred sidewalks for Leeds, after detecting another geometry bug
...
when building sidewalk corners. Raw sidewalks from OSM aren't suitable
for traffic simulation yet.
2020-11-04 08:46:06 -08:00
Dustin Carlino
b2519e3050
Add an extra check for polyline intersection endpoints. I found an
...
intersection polygon in Krakow that has really bad geometry, and this
improves it. The extra check absolutely shouldn't be necessary, but of
course, all the core line intersection code is quite suspect! #161
2020-11-02 15:10:45 -08:00
Dustin Carlino
6e417340e4
Generate turns much more simply for intersections of footpaths. #161
...
Also gets rid of some annoying warnings about roads with missing names.
I could continue to skip the warning for more situations, but I think
this sort of data quality check could be done better in the OSM viewer.
2020-11-01 18:20:32 -08:00
Dustin Carlino
04b9eef24a
When using OSM footpaths, don't stick sidewalks on the road when sidewalks=separate and also bring in cycleways and paths allowing foot traffic. #161
2020-10-30 15:16:19 -07:00
Dustin Carlino
ca2ff08d71
Don't render intersections between footways with a special color. Also
...
cut Kraków over to using the new experimental footpath support. #161
2020-10-30 14:11:00 -07:00
Dustin Carlino
bf0dce2c18
Optionally import sidewalks and separate footpaths exactly as they're in OSM, instead of attempting any inference. This is a way to move forward on #161 without having to cutover to it all at once.
2020-10-30 13:27:45 -07:00
Dustin Carlino
3b838c1225
Finish formatting distance/duration/speed units nicely. And remove the
...
number of lanes from trip info; it's misleading and not useful. #331
2020-10-28 11:33:48 -07:00
Dustin Carlino
0c0104d1e2
Parallelize parking lot spot generation. Austin goes from 81s total import down to 44s. #270
2020-10-26 16:28:11 -07:00
Dustin Carlino
47fa997f72
Refactor a proper Amenity struct. Leave room for optional raw OSM tags.
...
Don't expose the tags in the UI yet. [rebuild]
2020-10-25 11:49:46 -07:00
Dustin Carlino
34b41a909e
Optionally keep building OSM tags. Display in info panels and the new viewer, when present.
...
Don't keep the tags by default. File size increase from the empty map is
negligible.
2020-10-24 14:19:22 -07:00
Dustin Carlino
9dbb156058
Skip wakeup_waiting while we're handling live map edits. Based on the
...
order of vehicle deletion, we try to ask about stop sign and traffic
signal movements that may be deleted and would be irrelevant anyway if a
different deletion order happened. #312
We should really defer wakeup_waiting until after all cleanup is done,
but for now, willing to risk some stuckness at a stop sign...
2020-10-23 12:15:51 -07:00
Dustin Carlino
773176f321
Handle live edits affecting multiple cars at one stop sign, and cars
...
turning to/from an edited lane. #312
2020-10-22 21:04:12 -07:00
Dustin Carlino
011ed8c7cf
Handle agents deleted mid-turn. #312
2020-10-21 11:17:27 -07:00
Dustin Carlino
0259750eb3
Add a flag to detect drivers who're destined to pass through a currently delayed area. #325
2020-10-17 09:22:49 -05:00
Dustin Carlino
212ad761fd
Switch to Box<dyn Error> in abstutil. This makes it easier to have
...
higher-level APIs return some kind of string error. Pretty much nowhere
do we care about error types.
2020-10-11 08:36:02 -07:00
Dustin Carlino
d4358586d6
Refactor the MapLoader into a more generic file loader...
2020-10-09 17:26:11 -07:00
Dustin Carlino
2cd59ead37
Remove the special handling for synthetic maps, which were JSON RawMaps
...
that could directly be loaded. The few examples have been long broken
and unused. They complicate map loading, because they have a weird path.
2020-10-09 16:08:11 -07:00
Dustin Carlino
f1ec2fa4c4
Convert more doc comments for abstutil, convert_osm, geom, sim
2020-10-08 21:13:08 -07:00
Dustin Carlino
93c295b9ae
Convert comments on public things to doc comments for map_model.
2020-10-08 20:45:41 -07:00
Dustin Carlino
536429f37f
Fix lakeslice again. Some manually fixed traffic signals weren't
...
imported, because they referenced way IDs from before the service road
import. That happened after a bad Cargo.lock merge undid the effects of
pinning to the latest seattle_traffic_signals.
2020-10-07 15:06:03 -07:00
Dustin Carlino
d844646cb9
Implement per-road caps for #325 , necessitating a tiny map edits version
...
bump.
2020-10-06 14:17:55 -07:00
Dustin Carlino
6fd8422cf5
Woops, fix headless build break
2020-10-06 13:05:23 -07:00
Dustin Carlino
f258c50595
Organize import blocks using https://github.com/dabreegster/organize_rust_imports
2020-10-05 20:29:22 -07:00
Dustin Carlino
27d94945c6
Manually move mod block after the use block, to match what CLion does.
2020-10-05 20:29:22 -07:00
Dustin Carlino
fa45590041
Tag E 24th as narrow and assign it narrower width. This still doesn't
...
quite fix the wacky geometry at Madison/24th, but it gets closer.
Also redo two outdated traffic signals, speeding up lakeslice more.
2020-10-03 18:17:35 -07:00
Dustin Carlino
ffdedcb0a7
When multiple source lanes can turn left* to multiple destination lanes,
...
only allow the leftmost source lane to turn to any destination lane. As
a future improvment, need to handle multiple explicitly tagged left turn
lanes, but this gets closer to reality, particularly helping some crazy
maneuvers along Mercer in downtown.
*or right
Also had to update lanes along Madison and fiddle a bit to keep
lakeslice running. Spotted some major traffic signal bottlenecks due to
stage generation falling back, will iterate on that separately.
2020-10-03 09:40:15 -07:00
Dustin Carlino
5aee85f19d
Allow colorschemes to optionally color zoomed-in lanes based on OSM road rank. Most schemes don't do this, but one needs to, and maintaining a separate git branch has become annoying.
...
Should have no behavioral change to existing color schemes.
2020-10-02 08:06:35 -07:00
Dustin Carlino
e8d6525c59
Trim out unrealistic left and right turns. Find cases where multiple
...
lanes all lead to a single lane via left/right turn, and just keep the
left/rightmost lane.
Sanity checked at Rainier / S Massachusetts, and 23rd / S Massachusetts.
2020-09-30 10:30:01 -07:00
Dustin Carlino
2c63a485cc
Undo some uses of impl trait. Originally added for performance in a big
...
refactor, they complicate the function signatures significantly and have
no observable perf impact, since all of the methods just happen in map
importing.
2020-09-29 15:53:08 -07:00
Dustin Carlino
4e4e11b404
A few documentation adjustments after
...
5de05a6fe3
2020-09-29 09:21:36 -07:00
Michael Kirk
27b25a71a5
doc typos ( #352 )
2020-09-28 17:17:22 -07:00
Dustin Carlino
5de05a6fe3
Document map_model crate
2020-09-28 10:43:22 -07:00
Dustin Carlino
371d26f707
Bring in alleyways from OSM! [rebuild] ( #351 )
2020-09-27 12:20:27 -07:00
Dustin Carlino
84891f8b96
Some map fixes to prepare for alleyways:
...
- Temporarily workaround snap_cycleways crash in Xi'an
- Fix interpretation of blank turn restrictions. https://www.openstreetmap.org/way/739621435 was missing a right turn, which was causing vehicles to do this crazy loop to go from Madison EB to Lake Wash SB.
- Ignore turn restrictions when they don't match the number of lanes. https://www.openstreetmap.org/way/428090702 and similar need some updating.
Regenerate all data, but give up on lakeslice running fully. Going to
sacrifice that one for a bit to get new roads imported.
2020-09-27 11:21:35 -07:00
Dustin Carlino
4916b10190
Small style cleanups after #346 (Import grouping, simplify Spinner logic)
2020-09-27 10:26:38 -07:00
NoSuchThingAsRandom
0921a4aae5
Pedestrian crossing time ( #346 )
...
* Fixed ui being able to select traffic light times that are shorter than the time it takes to walk across the crosswalk
* Fixing operands and renaming
* Fixed spinner out of bounds issue
Traffic light generation now, ensures that there is enough time to cross the crosswalk
And enforces the minimum time duration
* Cargo +nightly fmt
* Request fixes: https://github.com/dabreegster/abstreet/pull/346
Still need some things to clarify:
Spinner checks on increment/decrement
Calling enforce_minimum_crosswalk_time inside get_possible_policies, requires the removal or modification of the validation function
* Moved enforce_minimum_crosswalk_time inside get_possible_policies
Now runs stage_time_validation at the end of get_possible_policies and removes invalid policies
Could do the same with the validation function as well?
* Fixing import order
* Fixed ui being able to select traffic light times that are shorter than the time it takes to walk across the crosswalk
* Fixing operands and renaming
* Fixed spinner out of bounds issue
Traffic light generation now, ensures that there is enough time to cross the crosswalk
And enforces the minimum time duration
* Cargo +nightly fmt
* Request fixes: https://github.com/dabreegster/abstreet/pull/346
Still need some things to clarify:
Spinner checks on increment/decrement
Calling enforce_minimum_crosswalk_time inside get_possible_policies, requires the removal or modification of the validation function
* Moved enforce_minimum_crosswalk_time inside get_possible_policies
Now runs stage_time_validation at the end of get_possible_policies and removes invalid policies
Could do the same with the validation function as well?
* Fixing import order
* Moving stage validation inside validation function
Co-authored-by: Sam <a>
2020-09-27 10:21:30 -07:00
Dustin Carlino
2ddd9a62ff
Cleanups for #346 :
...
- Add Distance::min()/max()
- Bring in log crate everywhere
- Consolidate traffic signal validation
2020-09-26 10:11:08 -07:00
Dustin Carlino
5a3bee0264
A first attempt to snap separately mapped cycleways to main roads. Emit ( #348 )
...
an extra KML file during importing to debug; don't bring into the main
map yet. #330
Not regenerating yet
2020-09-25 15:22:47 -07:00
Dustin Carlino
07a8a21fec
Cap the busiest road. Not actually working yet, because all the commands
...
to manage edits are stomping on each other. #325
2020-09-24 12:08:46 -07:00
Dustin Carlino
597ef473f2
Upgrade most dependencies
2020-09-24 09:36:26 -07:00
Dustin Carlino
938dab8e94
Determine border intersections exclusively from roads that cross the
...
clipping boundary. I don't remember why the more complicated thing came
about. This fixes a weird incoming border in SLU into an unreachable
intersection (which is more accurate) and doesn't seem to cause any
problems to normal or oneshot maps, with or without explicit clips.
2020-09-22 16:06:39 -07:00
Dustin Carlino
8faab3592a
Refactor RawMap saving
2020-09-22 15:49:02 -07:00
Michael Kirk
848251fca4
use osm data for actual building height ( #340 )
2020-09-22 11:59:50 -07:00
Dustin Carlino
3eb51d75a5
Sketch a polygon for bellevue
2020-09-19 13:52:09 -07:00
Dustin Carlino
3cc6a8ce12
And finally, a UI to tune offset between two signals! [rebuild]
2020-09-19 11:10:45 -07:00
Dustin Carlino
15af3846b1
Round driving costs for pathfinding more carefully. When we create
...
uber-turns (sequences of turns through a few intersections) due to OSM
turn restrictions, we have to be a little careful how we sum up the cost
for the entire sequence, only rounding at the end.
2020-09-18 15:39:35 -07:00
Dustin Carlino
66ee865ad1
Debug uber-turns by showing their cost in the viewer
2020-09-18 14:13:11 -07:00
Michael Kirk
08f330cfad
track worker capacity of commercial buildings
2020-09-16 16:43:11 -07:00
Dustin Carlino
fff75fa5ba
Yuwen's new changelist UI (except for describing some of the changes in detail)
2020-09-14 17:40:04 -07:00
Dustin Carlino
d68273086b
Autosave even the untitled edits!
...
Possibly when the player explicitly says "discard proposal", we should
actually delete the file.
2020-09-14 14:25:09 -07:00
Dustin Carlino
ce4e429648
Rename edits -> proposals, at least in the UI layer.
2020-09-14 12:52:06 -07:00
Dustin Carlino
037e22e69e
Cleanup last few things for left-hand maps. Fixes #311 !
2020-09-11 14:17:31 -07:00
Dustin Carlino
65569c7f56
When a car trip violates a congestion cap, reroute around the problem
...
instead of aborting the trip.
2020-09-11 11:21:39 -07:00
Dustin Carlino
edbc674970
Fix stop sign placement for left-handed maps. #311
2020-09-11 11:03:59 -07:00
Dustin Carlino
9844eeecc8
Improve error messages for old EditIntersections, for #319
2020-09-09 16:01:29 -07:00
Dustin Carlino
d8011a90f4
Handle live edits by just aborting any current trips that cross an
...
edited road or closed intersection. #312
Along the way, refactor more context plumbing in DrivingSimState.
2020-09-09 15:03:14 -07:00
Dustin Carlino
70d2d1115e
Store polygon indices as u16, not u64. Maps from 743MB total down to
...
620MB!
2020-09-04 13:12:06 -07:00
Dustin Carlino
568a64df91
Don't store Rings for Polygons without any holes. Total map size from 751MB to 743MB
2020-09-04 12:18:53 -07:00
Dustin Carlino
38ba8d55f3
Produce proper lanes for left-hand driving by intervening at the LaneSpec layer for #311 . Since London looks reasonable, opt it into the screenshot tests
2020-09-04 10:01:06 -07:00
Dustin Carlino
f610c66572
Remove the weird shifting/angle inversions from DrivingSide. First step
...
of #311 . Tested to not break righthand maps.
2020-09-04 10:01:06 -07:00
Dustin Carlino
86958f2e2f
Upgrade the old lane-based edit commands when importing edit JSON, for #113 and #224 . When there are lane reversals and lane type changes in the original edits, we still can't safely do the upgrade. But this handles most other cases, notably the 3 proposals.
2020-09-03 15:43:21 -07:00
Michael Kirk
b85dd18757
fix broken link ( #308 )
2020-09-01 22:07:05 -07:00
Dustin Carlino
74aca40c0c
Mechanicallyish rename TurnGroup -> Movement for #197 , as decided in ( #306 )
...
https://github.com/dabreegster/abstreet/pull/302#discussion_r479571931
2020-08-29 15:18:54 -07:00
Dustin Carlino
a36ef99c06
Rename Phase -> Stage, to be more in line with standard traffic signal ( #302 )
...
controller terminology. Part of #197 .
Holding off on touching PhaseType and all of the serialized
seattle_traffic_signals format, since this will all change in Kyle's PR
anyway.
2020-08-28 17:19:23 -07:00
Dustin Carlino
93cf9f3b00
Speed up apply_edits. Instead of undo()ing all current commands and then ( #299 )
...
apply()ing the new ones, ignore any common prefix between the two
command-lists.
2020-08-28 16:47:27 -07:00
Dustin Carlino
0eb1309ace
Add an API to get back all of the map edits so far
2020-08-28 14:09:44 -07:00
Dustin Carlino
d8d2877c14
Fix bike lane importing on Bell St. To prevent this from gridlocking
...
lakeslice (which is still quite sensitive to tiny changes in demand
data), manually retime a signal.
2020-08-27 20:51:49 -07:00
Dustin Carlino
57b5791f1f
Refactor a helper to produce EditCmd::ChangeRoad. Looked at doing the
...
same for ChangeIntersection, but not sure it's worth it.
2020-08-27 10:25:18 -07:00
Dustin Carlino
e283b8944a
Restore the ability to see individually changed lanes. Give up on the
...
"revert" button for lanes; it was always kind of confusing.
2020-08-27 09:36:00 -07:00
Dustin Carlino
1c98dd55b7
Simplify original_roads by recomputing from OSM data
2020-08-27 09:36:00 -07:00
Dustin Carlino
b6ab06d51a
Remove the old EditCmds. Realizing the new ChangeRoad does have some
...
gaps with detecting changes to individual lanes in the UI, though...
2020-08-27 09:36:00 -07:00
Dustin Carlino
30bfe93b5c
Produce the new EditCmd::ChangeRoad in the UI. Tested the scenario that
...
caused #113 (change lane types, reverse some lane, save edits, load from
scratch) -- now it works!
2020-08-27 09:36:00 -07:00
Dustin Carlino
aacb17297d
Introduce a consolidated EditCmd::ChangeRoad. Unused so far, and not
...
handling backwards compatibility yet. One step towards fixing #113 and
2020-08-27 09:36:00 -07:00
Dustin Carlino
651b4f5ec9
Some code style cleanups after #296
2020-08-27 09:10:39 -07:00