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
Dustin Carlino
59b14426bb
Improve shared left turn lane markings and reorg some docs
2020-08-26 12:35:29 -07:00
Dustin Carlino
75933f686d
At last, powered by the tight feedback loop of unit tests, bring in some
...
two-way cycletracks from OSM!
2020-08-25 16:35:17 -07:00
Dustin Carlino
3d6fb16db1
Finally hit the point where unit testing lane_specs_ltr is necessary...
2020-08-25 15:23:59 -07:00
Dustin Carlino
112a29625f
Prepare get_lane_specs_ltr to support two-way cycletracks from OSM...
...
and bring in fresh OSM, with some of the cycletracks tagged properly
2020-08-25 14:02:17 -07:00
Dustin Carlino
95c43f8e1c
Finally replace the underlying storage in Road
2020-08-25 12:08:54 -07:00
Dustin Carlino
6919e4eace
Working on kicking the old children out of the house (that is,
...
map_model). But give in and create an adapter to derive the old thing
from the new thing. The remaining callers are hard to port over to
lanes_ltr.
2020-08-25 12:08:54 -07:00
Dustin Carlino
376cf1292a
And more. Now all the deprecated stuff is locked down to map_model, and
...
it's pretty much related to map construction and edits
2020-08-25 12:08:54 -07:00
Dustin Carlino
b6a4657dbb
Whittle down more deprecated Road stuff
2020-08-25 12:08:54 -07:00
Dustin Carlino
aa3bd5073b
Make some new methods on Road to handle child lanes from left-to-right,
...
not split by direction. Update many callers, and lock down the
visibility of the old methods.
Tested a few maps manually to make sure there's no behavioral diff. Only
problem right now is the z-order of adjacent lanes covering up half of
the white stripe sometimes. Have some ideas to fix that later, and not
_super_ important in the meantime.
2020-08-25 12:08:54 -07:00
Dustin Carlino
4005adecf8
Refactor: create a Direction enum, in preparation for two-way cycletracks on one side of a road.
2020-08-24 13:30:13 -07:00
Dustin Carlino
20d81cd453
Start bringing in cycletracks as bike lanes. Stop interpreting :left to
...
mean the backwards direction. Not handling two-way cycletracks yet.
2020-08-24 11:20:41 -07:00
Dustin Carlino
0ee6bcbfcb
Fix intersection geometry in cases where two road edges intersect at
...
multiple points. This was already handled when the roads went between
the same intersections, but I found a case in Ballard where the roads
are just really close to each other. Screenshot diff empty in Krakow,
but still related to #243
2020-08-24 10:25:08 -07:00
Dustin Carlino
0fd40bd04e
Explicitly mark buildings with private off-street parking from OSM. 2ebf463635
added parking icons to all buildings with > 10 spots, but this makes the downtown map look ridiculous. The intention was to show the tagged buildings, so just go do that.
2020-08-23 11:09:00 -07:00
Dustin Carlino
6250cb8393
Be more specific about access restrictions in info panel. For capped roads, print the value and current counter.
2020-08-23 09:41:12 -07:00
Dustin Carlino
ca8af784c7
Add an explicit version number to the edits schema
2020-08-23 09:22:41 -07:00
Dustin Carlino
8165312426
Start the Dijkstra's impl, forking from the implementation in Zone. No
...
support for transit or zones yet. Simplify the CH building process now.
2020-08-22 10:22:11 -07:00
Dustin Carlino
5528f19f87
Split pathfinder struct into an enum to make room for a variation that
...
just does Dijkstra's. This has a few uses:
- When you import with --skip_ch, the resulting map will still work,
just more slowly
- For congestion capping experiments, we sometimes want to route around
a zone. Regenerating the contraction hierarchy for every combination
of zone being open/closed is likely more complex and expensive than
just falling back to A* for trips that cut through at least one closed
zone.
Not regenerating yet
2020-08-22 09:54:02 -07:00
Dustin Carlino
3afdb3f7e2
The JSON format for the map edits changes occasionally. Be backwards
...
compatible with old edits, automatically transforming them to match the
new format. Part of #216 and necessary to work on #234 .
2020-08-22 09:14:01 -07:00
Dustin Carlino
2bfb5d5ac4
Track how many cars are entering zones with caps.
...
Tested by print debugging and comparing to throughput stats
2020-08-20 16:38:45 -07:00
Dustin Carlino
fa83554eb4
Consolidate code for loading edits from JSON
2020-08-20 16:33:08 -07:00
Dustin Carlino
084b9d74cd
Store delay for traffic signals per direction of travel, using a compressed representation of turn groups. No substantial increase in prebaked file size.
2020-08-20 16:21:52 -07:00
Dustin Carlino
3a10416e26
Organize map edits code a little
2020-08-20 15:34:15 -07:00
Dustin Carlino
2c5bbd3e7e
Use alternate language building names and amenities, when available. Fixes #271 .
...
Tested in Shinjuku. No substantial file size increase for any maps.
2020-08-20 10:39:28 -07:00
Dustin Carlino
24a8d4a836
Prepare to support capping the number of vehicles that can pass through
...
a zone per hour. This is part of support for some kind of congestion
charging experiments. This step just rearranges the data to define the
cap and makes a UI to edit it. Not enforcing the cap yet.
2020-08-19 17:46:40 -07:00
Dustin Carlino
2ebf463635
Handle buildings tagged as parking garages in OSM.
2020-08-19 17:19:54 -07:00
Dustin Carlino
d427893843
Model parking lots with extra un-renderable spots. This fixes #150 , lots
...
without aisles, and #265 , multi-story garages.
2020-08-19 17:19:54 -07:00
Dustin Carlino
6749edb2b6
Change language of roads via settings, for #271
2020-08-18 17:32:49 -07:00
Dustin Carlino
2e93fdbf54
Fix parking aisle loops that cross the parking lot polygon. Closes #242
2020-08-18 15:12:12 -07:00
Dustin Carlino
40ddd06194
Improving the on/off ramp geometry by preferring that the "thin" road is
...
one of the outbound roads. This was motivated by one particular example
in downtown, and per screenshot tests, doesn't have regressions
elsewhere. Also improves a few cases in montlake.
2020-08-17 17:31:21 -07:00
Dustin Carlino
83e84c10af
Handle more errors in importer. Got the entirety of Taiwan to import...
...
but the water polygons are so sad. :(
2020-08-15 09:36:23 -07:00
Dustin Carlino
25ee39af89
Prepare to flag-guard an experiment to handle uber-turns differently
...
when allowing a car to start a turn. It causes
https://github.com/dabreegster/abstreet/pull/276#discussion_r470269394
and also the lakeslice scenario to gridlock (a regression that began a
few weeks ago). But keep the flag on for now, to keep the montlake
scenaro running at least.
https://dabreegster.github.io/abstreet/trafficsim/gridlock.html has
notes about the many different causes and in-progress fixes for
gridlock. This experiment hasn't been explained very well yet, but
roughly it treats a cluster of traffic signals as one, so that once a
vehicle gains access through the first light, they guarantee immediate
access through the entire sequence. This interacts with the "don't block
the box" behavior (don't start a turn if you might get stuck in the
intersection) strangely.
While attempting to get this rollback to work, I also had to manually
redraw the traffic lights for a few manually specified intersections.
They became out-of-date a few weeks ago when I cleaned up the OSM
geometry upstream and the referenced IDs changed, and I hadn't bothered
to re-time the signals. Luckily, with the new multi-signal editor,
redrawing the timing was much easier than originally!
Regenerated all data and lots of bus routes vanished. Plan to get back
to that project soon.
2020-08-14 11:33:25 -07:00
Dustin Carlino
c84833feb4
More steps on the multi-signal editor, adapted from the old editor:
...
- Add a header to the side panel
- Prevent leaving the editor with missing turns
- Apply edits properly when leaving
2020-08-13 15:12:03 -07:00
Dustin Carlino
11cefb118a
And the same thing for OriginalIntersection
...
Actually, don't need to regenerate map data. Thanks to the magic of
zero-cost wrapper types, the binary format is the same.
2020-08-13 11:48:13 -07:00
Dustin Carlino
843d24b6ed
Refactor: OriginalBuilding should just be OsmID. The purpose of
...
OriginalBuilding was to refer to buildings in a stable way across
different maps and across OSM updates. Recently, OsmID and friends
appeared. The double layer of wrapping is an annoying API.
Not regenerating map data yet; about to do the same thing for
OriginalIntersection
2020-08-13 11:37:06 -07:00
Dustin Carlino
58849d3d15
Small refactor: in most places, we can actually use String as the error type; Box<dyn Error> is only useful when errors of different types are propagated.
...
Nowhere in abst do we care about handling different errors differently
2020-08-13 07:12:06 -07:00
Dustin Carlino
3b49353df2
gracefully degrade if we cant make TurnGroups for a traffic signal. this
...
gets SF, Tokyo, and London to import!!!
2020-08-12 11:05:19 -07:00
Dustin Carlino
62bb82886d
blaze through all the crazy errors in intersection_polygon, just
...
recording errors and falling back to circular geometry and not trimming
roads
also filter out highway areas like
https://www.openstreetmap.org/way/132705692 , woops!
Manchester and NOLA now import...
2020-08-12 09:36:46 -07:00
Dustin Carlino
a27b029ff6
plumb errors for shifting polylines through more APIs. mostly no-op for
...
now, just switched everything to must_* variants, but this paves the way
for handling failures.
... except for rendering pedestrian crowds -- I _think_ I saw a crash
from that, and it's easy to have a fallback there
2020-08-12 08:18:10 -07:00
Dustin Carlino
8ce2568280
turn the headless runner into a demo of a JSON API, for #245 ( #268 )
...
turn the headless runner into a demo of a JSON API, for #245
2020-08-11 16:44:19 -07:00
Dustin Carlino
312775b491
refactor TurnGroup creators, but keep it stored on traffic signal, so
...
it's regenerated for edits
2020-08-10 15:39:28 -07:00
Dustin Carlino
c101666c7c
finishing the consolidation of docs
2020-08-10 14:56:39 -07:00
Dustin Carlino
f9b41dda30
finally get github pages + mdbook to work, thanks to
...
https://github.com/rust-lang/mdBook/pull/1248#issuecomment-671528271 and
removing jekyll
2020-08-10 13:49:30 -07:00
Dustin Carlino
31e8c654d2
prototype directional traffic signal demand viz over time
2020-08-10 13:19:47 -07:00
Dustin Carlino
ecd5d86009
handle bus stops right at intersections
2020-08-08 19:32:18 -07:00
Dustin Carlino
8764226765
cutover to using the new stuff for snapping bus stop positions...
...
seems pretty good for a few examples. not regenerating yet. still lots
of routes skipped because of edge cases, but now it's way more clear
how to work on those smaller problems.
2020-08-08 18:14:08 -07:00
Dustin Carlino
6c525d625d
match transit stops to side of the road based on the orientation of the points in the route. don't use this just yet...
...
not regerating yet either
2020-08-08 17:44:28 -07:00
Dustin Carlino
d1e9e38e82
refactor for #231 : use typed OSM IDs everywhere, dedupe URL code
...
have to regen, the binary format has changed
2020-08-08 16:09:36 -07:00
Dustin Carlino
84e913a642
fix bus routes where the last bus stop is also on the outbound border
...
lane
not regenerating yet
2020-08-08 10:11:09 -07:00
Dustin Carlino
eee179ce8a
store offset in the permanent signal format
2020-08-08 09:45:59 -07:00
Dustin Carlino
49e8ab3680
try to get seoul to import
2020-08-08 09:32:43 -07:00
Dustin Carlino
e35c69f6f3
ezgui Wizard (and its pet Cloneable)
...
Here lies a weird coroutine experiment
09/20/2018 - 08/07/2020
2020-08-07 14:04:41 -07:00
Dustin Carlino
62ed91925a
random fixes in the map importer to try to import a bunch of new cities.
...
not too successful, but made progress.
2020-08-07 10:24:58 -07:00
Dustin Carlino
5998afaea4
interpret some OSM turn restrictions as meaning no lane-changing on approach to turn lanes. deeply sanity-checked for monlake only, seems reasonable from spot checks elsewhere
...
closes #261 -- not sure it's worth actually handling changes:lanes yet,
but this fixes the original issue
2020-08-06 15:57:36 -07:00
Dustin Carlino
d2d9b7b092
finally fix the small border road geometry problem for krakow and west seattle
2020-08-06 11:23:00 -07:00
Dustin Carlino
5eefdaef18
still import maps with badly broken OSM geometry. warn loudly, don't
...
attempt to trim the roads, put a funny circle there instead.
2020-08-06 08:29:08 -07:00
Dustin Carlino
3c24b7aa5a
pull in spawn times for seattle from gtfs. looks wrong, but it's a
...
start.
2020-08-05 14:46:37 -07:00
Dustin Carlino
2f618815b1
make explicit rank enum for road types, instead of using arbitrary numbers. cleanup for #231
2020-08-05 11:40:42 -07:00
Dustin Carlino
9961b870b6
try to apply the new on/off ramp intersection geometry to all relevant
...
3-way intersections, for #131
2020-08-05 11:03:02 -07:00
Dustin Carlino
cd712009ec
whittle down old stuff from map_editor. i think it still has value as a RawMap viewer with an easy way to move points and quickly iterate on intersection geometry, but things like lane editing and turn restriction viewing aren't useful anymore.
2020-08-05 08:38:04 -07:00
Dustin Carlino
e82fe996ad
reduce GfxCtx surface area
2020-08-05 07:56:57 -07:00
Dustin Carlino
2139f0e5f4
produce much nicer intersection geometry for one particular motorway
...
intersection. will carefully generalize this next...
not regenerating yet
2020-08-04 16:53:24 -07:00
Dustin Carlino
6f3be4463b
start editing route schedules. primitive UI, but getting all the map
...
edits plumbed through
2020-08-04 14:27:24 -07:00
Dustin Carlino
8c2c153347
silence a useless warning, fixing #204
2020-08-03 18:18:07 -07:00
Dustin Carlino
bcbf229eb7
rip out all users of the old find_closest_lane for #176 .
...
- this gives offside support to bus/sidewalk matching, getting 11 more
routes working in krakow
2020-08-03 17:56:58 -07:00
Dustin Carlino
e52da86f74
matching parking lots to offside driving lanes if needed. fixes all ~37 cases in krakow!
...
not regenerating yet
2020-08-03 16:50:48 -07:00
Dustin Carlino
588a20e8d3
reduce warnings in map importer
2020-08-03 16:22:02 -07:00
Dustin Carlino
f73516d183
start representing bus spawn rates explicitly
2020-08-03 13:12:02 -07:00
Dustin Carlino
940d2265c0
spawning buses at 0.01m on a non-border lane can break, because other cars approach, and the buffer distance gets broken. instead, spawn the buses a few lanes away, if needed. fixes #260
...
now only ~400 agents left in lakeslice by end!
2020-08-03 11:08:21 -07:00
Dustin Carlino
bea6e2edf2
snap bus stop driving positions at least 0.1m away from the start of the
...
lane, to handle buses spawning at the start
not regenerating everything yet
2020-08-03 09:04:16 -07:00
Dustin Carlino
13402b7745
get xi'an to import. detect all geometry problems upfront.
2020-08-03 08:12:27 -07:00
Dustin Carlino
60147597d6
change PathConstraints in floodfiller, to more easily debug bike
...
disconnectedness in udistrict
2020-08-03 07:41:10 -07:00
Dustin Carlino
bfc5236152
fix crash with duplicate full route names on one bus stop [rebuild]
2020-08-02 08:36:40 -07:00
Dustin Carlino
c31d876f61
oh no, the new biking_connection is crashing in a few maps, where some of the separated bike trails are still missing. gracefully degrade. this is getting convoluted again, filed #258 to cleanup.
2020-08-01 10:26:44 -07:00
Dustin Carlino
1b993544ab
print logs from fast_paths
2020-08-01 08:27:09 -07:00
Dustin Carlino
f7df49f512
fix a rendering bug with shifting cars for parking. ALMOST handle parking lane on opposite side of a driving lane, but there's a crash i cant understand, so disabled. #64
2020-07-31 17:39:04 -07:00
Dustin Carlino
ae31739dea
almost support off-side parking lanes. only remaining bug is cars
...
ignoring parking spots if the parking lane is in the opposite direction.
workaround is to reverse the lane. dealing with that bug next though.
part of #64 and #176 . fixes #109
2020-07-31 16:23:58 -07:00
Dustin Carlino
d7968713fc
don't need to explicitly store parking blackhole redirect, just a bit.
...
and have a separate bit for bikes. use that to handle bikes going to
borders. finally closes #221 , progress on #176 .
2020-07-31 15:43:15 -07:00
Dustin Carlino
5c506f726c
total overhaul to building<->bike connections for #221 and #176 . bikes
...
will start/stop directly in front of a building driveway, when possible.
still need to handle the case when the bikeable position isn't connected
to most to the graph (for buildings accessible only by footway and for
things around the border)
2020-07-31 14:28:40 -07:00
Dustin Carlino
d22aa87139
rearrange Building internals for #176 . edits can affect building
...
connections to driving/biking. just store the immutable stuff -- whether
there's parking in the building, the connection to the sidewalk, and the
physical driveway line. compute all the rest dynamically, so it responds
to edits without effort.
shouldn't be major behavior changes yet (besides maybe fixing some bugs
involving edits)
2020-07-31 12:49:33 -07:00
Dustin Carlino
ec52adce77
dont infer parking on roads in krakow that dont allow pedestrians
2020-07-31 10:33:59 -07:00
Dustin Carlino
71b68cc639
don't assume off-side sidewalks on dual_carriageway=yes. don't infer
...
parking on tiny roads. fixes some geometry in krakow. #230
(unrelated: add a debug layer to show parking blackholes, to work on
bike connections)
(also unrelated: better error message for #256 )
2020-07-31 10:07:29 -07:00
Dustin Carlino
8385799844
workaround #240 by deterministically building the parking layer. the
...
proper fix is to record zorder for parking lots and buildings from OSM
tags. ColorDiscrete would need to understand this. I'll leave that for
later.
2020-07-30 15:36:46 -07:00
Dustin Carlino
03796fcd66
introduce the tiny walkable shoulder lane type. pathfinding penalty,
...
rendering adjustments. #176
the SharedSidewalkCorner geometry looks bad, but acceptable for now.
2020-07-30 13:42:36 -07:00
Dustin Carlino
3af929f830
refactor to prep to represent shoulders as tiny sidewalks. #176
2020-07-30 10:06:57 -07:00
Dustin Carlino
0a417bb450
color roads under construction in unzoomed mode based on the underlying road type.
...
technically this affects stop sign placement, but not wort regenerating
maps yet.
2020-07-28 13:49:39 -07:00
Dustin Carlino
2b9123d261
fix border intersection geometry when the road is too short. closes #251
...
while regenerating, also pick up landuse=grass as a park area. noticed
missing in krakow.
2020-07-28 13:41:12 -07:00
Dustin Carlino
e1e265db14
tighten up Polygon constructors to enforce an outer ring... in most
...
cases now.
2020-07-27 14:03:55 -07:00
Dustin Carlino
6a11a13d36
fix the remainder?! of pathfinding bugs for #190 . have to make sure the
...
candidate route has the stops in the correct order. now people correctly
ride a bus off-map!
regen everything now!
2020-07-27 12:36:46 -07:00
Dustin Carlino
74bf6e0974
get riding off-map to work for #190 .
...
- handle living streets that allow buses in berlin
- don't connect LeaveMap nodes to anything else; people were getting
creative and using them as shortcuts to effectively warp to a border,
then come back into the map
- make should_use_transit understand transfers (and still just return
the first leg)
- warp to bus routes by ID
still at least one weird bug left, seen in krakow. working on it next,
trying to keep these commits "small." not regenerating maps quite yet.
2020-07-27 10:37:21 -07:00
Dustin Carlino
e79e186784
ALMOST make people ride the bus off-map, for #190 . the pathfinding
...
gymnastics isn't quite right. still want to commit this though, with it
disabled.
found a few bugs along the way...
2020-07-27 07:54:33 -07:00
Dustin Carlino
2ec9c6620f
get san jose to import [rebuild]
2020-07-26 15:58:14 -07:00
Dustin Carlino
fe41928cc8
explicitly allow osm highway types, instead of trying to deny stuff.
...
part of #231 . handles construction much better.
2020-07-25 17:06:09 -07:00
Dustin Carlino
eb4acdc2f6
split parking lot code from building code, for #231
2020-07-25 07:09:43 -07:00
Dustin Carlino
37630439d1
make the LC penalty understand when not all lanes go to the target road.
...
and bring in a few more osm fixes for marginal way. [rebuild]
2020-07-23 16:41:52 -07:00
Dustin Carlino
88380550b6
just commit the new walking turn code, to stop rebasing
2020-07-23 15:37:29 -07:00
Dustin Carlino
f66af5ad49
list all edits in the loader. only try to validate them after selection. display clear error if loading fails. #113
2020-07-23 15:27:24 -07:00
Dustin Carlino
61b5441bd8
also apply some of the new lane choice penalties to CH pathfinding for #217 . this is necessary, because we wont opportunistically LC around an uber turn. validated near montlake/520.
...
also bring in fresh osm with some south seattle fixes... [rebuild]
2020-07-23 14:42:20 -07:00
Dustin Carlino
dd3f3d14ab
add a signal policy for half signals, inadvertently brought in by fe94357332
. update a signal in south seattle.
...
will regenerate in the next change
2020-07-23 13:52:49 -07:00
Dustin Carlino
adbbc8764a
much smarter opportunistic lane-changing. almost got #217 . but we don't
...
do opportunistic LCing when approaching an uber-turn, so we need to use
these costs when building the CH also...
2020-07-23 12:39:00 -07:00
Dustin Carlino
d278739f49
fix shameful bug introduced in f1ef02b907
. regenerate all data, with fresh krakow osm
2020-07-23 11:51:19 -07:00
Dustin Carlino
23a1b1a397
calculate and visualize penalties for turns that cut over lots of lanes. a step towards #217
2020-07-23 10:20:16 -07:00
Dustin Carlino
328cbcd1f1
stop melting my laptop when generating scenarios
2020-07-23 09:15:25 -07:00
Dustin Carlino
f1ef02b907
store Tags in map_model objects, to reap its benefits anywhere in the codebase. serialization format doesnt change!
2020-07-23 07:43:50 -07:00
Dustin Carlino
5d2b770258
Model living streets a bit more carefully.
...
- don't infer parking lanes there
- sidewalks on both side of a one-way
- handle maxspeed with kmph
- no maxspeed on living_street is 20 kmph
still not regenerating maps
2020-07-22 13:09:35 -07:00
Dustin Carlino
404b6e589b
import railway=rail as light rail track. nothing should really use it, but it helps visually recognize areas with lots of notable railways. railways under construction not included yet, so some of the lines in krakow just sort of end.
...
not regenerating maps yet
2020-07-22 11:35:04 -07:00
Dustin Carlino
38b8557c82
bring in living streets from OSM, interpreting them as normal roads with
...
access restrictions. makes old town in krakow look much better and
brings in stay healthy streets in seattle. also commit some code related
to footways that isn't exercised yet.
2020-07-21 17:18:56 -07:00
Dustin Carlino
bbe06c6075
randomly distribute residents to buildings in the planning area for #119
2020-07-21 14:00:59 -07:00
Dustin Carlino
94935f7ae8
radically simpler vehicle turn creation:
...
- just generate every combo of turns from incoming->outgoing
- stop doing all of the weird bike->bike restrictions. that gets handled
anyway in later layers like pathfinding costs, opportunistic LCing,
and picking valid starting lanes
- rely on OSM for filtering out left/right turns from multiple lanes
- why was it useful at all to distinguish Straight from LCing turns?
scrap that
has the effect of eliminating a class of bugs where a driving lane is
sandwiched between lots of bus lanes and wasn't winding up with an
in/outbound turn
2020-07-21 13:04:34 -07:00
Dustin Carlino
1ae29881ba
i forgot that there was an isochrone experiment. plug it up to contours.
2020-07-21 07:23:33 -07:00
Dustin Carlino
35b761ec21
get sydney to import
2020-07-20 20:54:08 -07:00
Dustin Carlino
b35122b328
start to organize turn creation code. just split driving/walking to
...
start; they don't share any logic
2020-07-20 10:56:22 -07:00
Dustin Carlino
2f2245e90f
add service roads for buses. closes #203 [rebuild]
2020-07-19 15:29:13 -07:00
Dustin Carlino
d9d4e5448e
consolidate some gridlock problems/solutions in markdown, for #114
2020-07-17 13:38:09 -07:00
Dustin Carlino
a86fb5c73d
upgrade to rust 1.45 after fixing an issue in fastpaths [rebuild]
2020-07-17 12:54:14 -07:00
Dustin Carlino
1c39de50f7
use earcutr for polygon triangulation. this finally allows for
...
multipolygons with holes!
2020-07-16 15:33:01 -07:00
Dustin Carlino
ccf213ded9
fix pioneer square station snapping. rust-geo's FindClosest has a bug.
...
>_<
2020-07-16 13:22:05 -07:00
Dustin Carlino
8a70e105e8
make buses actually start/end at borders [rebuild]
2020-07-16 10:11:43 -07:00
Dustin Carlino
f59ca734e2
also scrape stop->platform associations from stop_areas. fixes cap hill light rail stop finally for #190 ! the pioneer square south stop is seemingly still messed up
2020-07-15 22:17:45 -07:00
Dustin Carlino
d94c03392f
keep the first contiguous run of stops inside the boundary for #190
2020-07-15 21:16:36 -07:00
Dustin Carlino
7a1081971d
pretty darn robust border matching: by path distance, not some VFD crow.
...
for #190
2020-07-15 19:04:24 -07:00
Dustin Carlino
b942510f67
slightly better border matching for buses. dont count on any ordering in
...
the route relation. include intersections that get copied as
possibilities.
2020-07-15 17:27:09 -07:00
Dustin Carlino
fb44451621
better errors making routes. also consider role=forward/backward for
...
border matching.
2020-07-15 15:55:43 -07:00
Dustin Carlino
891a1746d6
try to figure out border endpts for routes for #190 . just visualize
...
them, dont enforce connectivity yet. so many problems...
regenerate stuff, to unbreak map binary format
2020-07-15 15:35:57 -07:00
Dustin Carlino
b626eb12ad
better errors when matching stops/platforms fails. need to use stop_area
...
in convert_osm layer.
2020-07-15 13:51:16 -07:00
Dustin Carlino
91a9a9a1bc
start revamping bus route data model for #190 . routes are one-way. make
...
buses appear at the first stop and vanish at the last.
not regenerating anything yet
2020-07-15 13:15:32 -07:00
Dustin Carlino
f7c8031eda
slightly better error for outdated traffic sigs
2020-07-15 09:15:38 -07:00
Dustin Carlino
3f44a2c2af
collapse signals with redundant phases, for #8 . and fresh osm with a
...
flurry of fixes last night
2020-07-15 08:53:03 -07:00
Dustin Carlino
eeb70030c2
clean up old experiments from the intersection geometry code.
...
imperceptible changes to some (already broken) intersections.
also grab fresh osm and a new traffic signal
2020-07-14 17:41:56 -07:00
Dustin Carlino
2c27c89796
correctly detect the current tab, even when inner settings change. also
...
make tab per object type sticky, so you can (for example) click arrivals
on one border, then click a different border and be on the same tab!
2020-07-14 13:37:13 -07:00
Dustin Carlino
a5cf34ff59
refactor the osm tags helper
2020-07-14 09:03:37 -07:00
Dustin Carlino
0f82c21560
- manually fix a few crazy signals downtown.
...
- interpret tags to make 3rd Ave bus-only. cars technically allowed
sometimes, but bus-only is more accurate for now.
- also remove austin from bundled maps. maintaining it has a cost, and
the point was just to have at least one non-seattle city kept up to
date. krakow now satisfies that.
2020-07-13 13:40:46 -07:00
Dustin Carlino
85b45caf1a
stop warning for roads without names if they use 'noname=yes'. related
...
to #147
2020-07-13 10:40:45 -07:00
Dustin Carlino
b058d5d926
cargo fmt and regenerate map data
2020-07-13 10:11:48 -07:00
Mateusz Konieczny
885fdefb5d
playing with processing modifications ( #183 )
...
* WIP set up plumbing for calculating building info in the Raw layer and using it later for #154
* WIP playing with processing modifications
* experiment with some possibilities for tag processing
* fix an embarassing typo
* enable busses in work-home traffic
* refactor, add multiuse
* seed more parking in Kraków
* parse integers properly - thanks for a help!
* rebalance generated trips
* add hack providing some background traffic
more realistic traffic
even mess realistic people
* attempt to further reduce parking deficit
* add TODO
Co-authored-by: Dustin Carlino <dabreegster@gmail.com>
2020-07-13 09:56:05 -07:00
Dustin Carlino
faedffae99
finally flushed out one of the common crashes: shifting some car bodies
...
to make wheels breaks sometimes. just skip the wheels.
2020-07-11 17:10:36 -07:00
Dustin Carlino
0c283d0da7
finish up the grand geom stabilization with ring and some docs.
...
regenerated everything from scratch. one effect is more parking
blockface gets matched onto border roads, but that's fine.
2020-07-11 16:05:26 -07:00
Dustin Carlino
07ed1fec95
more polyline work... get rid of Warn<>. extremely spammy and hasn't
...
been helpful in ages.
2020-07-11 15:17:16 -07:00
Dustin Carlino
f8b8c501ae
tighten up more PL scariness
2020-07-11 14:51:25 -07:00
Dustin Carlino
cce624edd8
start the big one: Polyline::new
2020-07-11 13:42:19 -07:00
Dustin Carlino
0593aa52d9
more caution in Line API
2020-07-11 13:05:34 -07:00
Dustin Carlino
98c6f46c78
the first real big change: Line::new always returns Option
2020-07-11 12:37:38 -07:00
Dustin Carlino
0dd3199f7a
cut down variations of pt2d<->gps. mostly we want to forcibly convert.
...
possible semantic change: soundcast border matching now includes ALL
borders, even if the center is slightly OOB
2020-07-11 12:02:12 -07:00
Dustin Carlino
f8ace3c0ab
per-city config to let bikes use bus lanes, for #184
...
while I'm regenerating maps anyway, grab fresh seattle osm with more
lane fixes. and parallelize a slow point matching step -- 10x speedup
for austin
2020-07-11 11:08:23 -07:00
Dustin Carlino
c20e370139
parse OSM bus/psv lanes better. towards #168 . need to handle
...
https://wiki.openstreetmap.org/wiki/Key:lanes:psv next
2020-07-10 20:31:49 -07:00
Dustin Carlino
4919fbf90f
autodetect ICs across the whole map, not just when there are complex
...
turn restrictions
and... enable the new "run the red light" after starting an uber-turn. I
can get to 6am on downtown with a few simple edits now.
2020-07-10 17:39:25 -07:00
Dustin Carlino
7ab78d543a
ignore red lights in the middle of an uber-turn. currently disabled
...
until a few more things are in place, but this is headed in the right
direction. [rebuild]
2020-07-10 16:03:22 -07:00
Dustin Carlino
4c8ad5a8da
determine if a vehicle is currently performing an uber-turn, without
...
modifying the low-level PathSteps. also make sure to not try LCing when
going into one.
on the cusp of being able to treat complicated intersections as one...
2020-07-10 12:40:51 -07:00
Dustin Carlino
585ba4f137
when sidewalks=separate, don't put sidewalks on both sides of a one-way.
...
this is a complete guess, but seemingly a better one for some sample
cases in seattle and krakow. helps with #178 .
also opt krakow into screenshot diff testing; it has enough different
things happening that it's worth watching more carefully how importing
changes affect it.
2020-07-09 18:53:15 -07:00
Dustin Carlino
4340ad585b
convert the rest of usize IDs to u32. savings:
...
maps: 645mb -> 625mb
scenarios: 431mb -> 390mb (before all the u32 optimizations, this as
500mb!!!)
prebaked: 80mb -> 73mb
and while I'm at it, grab fresh OSM, with lots of manual lane fixes,
especially near divided highways
2020-07-09 11:43:34 -07:00
Dustin Carlino
4cb35c6e3b
fix parking aisle matching; need to use the center to match it to the closest lot
2020-07-09 10:22:53 -07:00
Dustin Carlino
29ecc44158
fix deadend geometry for cases where the left/right side of a road change after trimming the center points
2020-07-09 10:21:00 -07:00
Dustin Carlino
3370aae83b
don't spawn new traffic on the screensaver every time we bounce off the
...
screen edge. the scenario generator starts person IDs from 0, so was
breaking. fixes #172
2020-07-09 10:08:58 -07:00
Dustin Carlino
438bc39b86
handle cycleway:both, for #168
2020-07-08 17:59:30 -07:00
Dustin Carlino
d94c993b9b
debug #113
2020-07-08 16:18:54 -07:00
Dustin Carlino
7c0aaed370
the first link light rail has left the staton. #numtot
2020-07-08 14:29:02 -07:00
Dustin Carlino
4f9bea7f19
don't be afraid of multi-lane roundabouts. fixes #166
2020-07-08 11:56:20 -07:00
Dustin Carlino
865522ed19
use a quadtree to speed up parking aisle matching. huge_seattle from 58s to... 0.5s. I'll take it. ;)
2020-07-08 09:40:41 -07:00
Dustin Carlino
b91d6365e0
dont put sidewalks on a roundabout that's explicitly tagged. fixes #165
...
this actually disconnects the boyer roundabout (which is tagged
correctly in OSM, but not using the separate sidewalks yet). fine for
now, might add a temporary override later
2020-07-08 09:36:35 -07:00
Dustin Carlino
94512d95b9
change LaneID from usize to u32. savings:
...
scenarios: 458MB -> 431MB
maps: 676MB -> 638MB
prebaked: 85MB -> 80MB
also fix #163
2020-07-08 08:47:02 -07:00
Dustin Carlino
187c8ad4c5
consider again the possibility of merging some degenerate roads
2020-07-07 21:39:42 -07:00
Dustin Carlino
9a27f6d3dd
cleanup the old abstutil Error
2020-07-07 17:09:51 -07:00
Dustin Carlino
3eb8db3f75
interpret OSM center lines as the physical center of the road (excluding
...
sidewalks), not as the divider between the two directions. this
dramatically changes geometry everywhere for the better.
thanks to
https://wiki.openstreetmap.org/wiki/Proposed_features/placement for
clear explanations. will be looking next at interpreting this tag.
also temporarily removing screenshots, because uploading individual
files and waiting for dropbox to sync isn't sustainable
2020-07-07 15:52:51 -07:00
Dustin Carlino
302363541f
better error message for the common case of map data
2020-07-07 13:14:33 -07:00
Dustin Carlino
f20e993817
print OSM IDs more usefully
2020-07-07 13:04:32 -07:00
Dustin Carlino
d551ef8bb2
filter out bus stops that're out of order along a single road -- probably OSM issues. encountered in #119 . also adjust dev docs for windows for #157
2020-07-07 12:30:59 -07:00
Dustin Carlino
9f72b3dd51
cleanup after the relative dir fix, and add support for hardcoding the
...
data dir, for #137
2020-07-07 12:14:02 -07:00
Dustin Carlino
6919c24bf8
detect the data/ dir more intelligently. fixes #73 . still need to
...
- consider collapsing the directory structure in the releases
- fix wasm
[rebuild]
2020-07-07 11:09:35 -07:00
Dustin Carlino
476e0e101f
easy wins: make BuildingID u32, not usize. maps from 680MB to 676MB.
...
scenarios from 500MB to 458MB.
considered going down to u16, but pretty sure there are already maps
with >65k buildings
2020-07-06 17:55:02 -07:00
Dustin Carlino
fbff30a869
fix some epsilon issues with deadends and walking turns to get entire
...
krakow map to import. closes #143
2020-07-06 14:24:31 -07:00
Dustin Carlino
cac35319b2
handle off-side bike lanes on oneway roads. fixes #140
2020-07-06 14:03:22 -07:00
Dustin Carlino
1dcc7456db
stop attempting to parse OSM turn restriction types. not doing anything useful with them yet anyway, and it causes friction importing new maps. fixes #142
2020-07-06 13:26:23 -07:00
Dustin Carlino
82345767c9
store a bitset of access restrictions per road. derive zones from this only for editing and pathfinding. this unblocks editing zones
2020-07-06 13:09:49 -07:00
Dustin Carlino
c3858b9cdd
mark construction lanes appropriately. this broke when adapting to the new tagging on the west seattle bridge, but there are some roads tagged this way in krakow.
...
(not regenerating all the maps yet, expecting to do more work on this
today)
2020-07-06 07:43:42 -07:00
Dustin Carlino
5427d8ea40
also express lane type changes using the new approach
2020-07-05 14:04:49 -07:00
Dustin Carlino
6e8eef8d09
start refactoring how edits are validated. need to deal with lane types
...
next
2020-07-05 13:20:19 -07:00
Dustin Carlino
804896cfda
relax some old requirements for bus stops not being on the same lane. i
...
dont remember what the old issue was. this fixes some light rail stops
downtown, because multiple stops are along a single light rail lane.
2020-07-05 12:34:46 -07:00
Dustin Carlino
8b7658c48f
dont crash when closing a traffic signal with disconnected sidewalks
2020-07-04 18:08:54 -07:00
Dustin Carlino
181de12409
woops, 72d0171300
broke signal editor by
...
crashing if you were missing a turn. dont validate in the middle of
editing. still seeing a problem with traffic signal -> construction
2020-07-04 17:51:45 -07:00
Dustin Carlino
3eecdeddff
fix some two-step pathfinding bugs that were crashing south seattle
2020-07-04 09:37:22 -07:00
Dustin Carlino
505311a93f
improve the signal synchronization a bit for #8 . hardcode a few small
...
intersections to make the downtown map make more progress. make it
easier to copy OSM node IDs.
2020-07-04 08:53:13 -07:00
Dustin Carlino
628ee0fa86
dirt simple method to swap the order of pairs of two-phase signals to
...
try to synchronize them better. towards #8 . not regenerating screenshots
because it's late and there'll be more screenshot churn tomorrow anyway
2020-07-03 21:55:54 -07:00
Dustin Carlino
3a7a75e011
for the heuristically generated traffic signals, handle roads with
...
sidewalks on only one side. part of #8
2020-07-03 19:50:31 -07:00
Dustin Carlino
575dcfb782
snap bus vehicle/sidewalk positions to the correct side of the road and
...
a more appropriate lane. also fix #122
2020-07-03 19:00:20 -07:00
Dustin Carlino
ac88a96f61
use a different icon for train stops
2020-07-03 17:49:36 -07:00
Dustin Carlino
56cb59c3ac
rip out gtfs code, cutover to osm. will revisit this later; gtfs and osm probably disagree on routes and stops, and gtfs has schedule. but for now, just osm.
2020-07-03 17:33:32 -07:00
Dustin Carlino
0dc42d7e19
use bus stops from OSM instead of gtfs. expose the stop name and the
...
driving position in the info panel. some issues with the driving
positions, but this is the way forward for light rail.
2020-07-03 15:22:13 -07:00
Dustin Carlino
1175826f3d
scrape bus info from OSM into the RawMap layer. don't use it yet.
2020-07-03 12:00:42 -07:00
Dustin Carlino
ec2411fb8b
experiment with isochrones. nothing yet.
2020-07-02 13:41:24 -07:00
Dustin Carlino
0a499f65e2
start changing access restrictions for an entire zone. found a way to
...
represent the edits. no support yet for changing what roads are in a
zone.
2020-07-02 12:15:37 -07:00
Dustin Carlino
ebe1f486f7
flatten some of the map building code
2020-07-02 10:48:05 -07:00
Dustin Carlino
3acec91f51
get berlin import working for #119 . just had to allow a few more turn
...
restrictions previously unencountered and deal with weird geometry.
and add some hints to docs for #118 .
2020-07-02 09:56:48 -07:00
Dustin Carlino
519bceaac0
organize lots of map modules under objects/
2020-07-02 09:05:56 -07:00
Dustin Carlino
148547c622
reorganize code in map_model, since map.rs is huge.
...
- move Map to lib.rs, so all its private members can be directly
populated by submodules
- move edits-related stuff to edits.rs
- move raw->map stuff to make/mod.rs
2020-07-02 08:56:09 -07:00
Dustin Carlino
72d0171300
fix #111 by delaying constructing ControlTrafficSignal from edits. also
...
fix time warp screen issue after the UpdateType changes [rebuild]
2020-07-01 19:34:15 -07:00
Dustin Carlino
54b4bd318e
way simpler approach for two-step walking paths. fixes the silly loops.
2020-07-01 11:12:47 -07:00
Dustin Carlino
9b42d27e85
finally enable two-step pathfinding for pedestrians too. the weird hack
...
making this work: pedestrians will sometimes add an extra little
back-and-forth in their paths
2020-06-30 14:52:57 -07:00
Dustin Carlino
2c7440b03f
start representing access restrictions by mode
2020-06-30 13:15:57 -07:00
Dustin Carlino
2b4bf1172b
start a UI for modifying access restrictions of zones. mostly just the
...
skeleton right now
2020-06-30 12:16:08 -07:00
Dustin Carlino
2b50e7969c
refactor position
2020-06-29 20:55:36 -07:00
Dustin Carlino
71b8e16448
another stab at two-step walking pathfinding. prevents all crashes, but
...
pretty much nothing being found
2020-06-29 20:40:41 -07:00
Dustin Carlino
2e1612c3db
try to handle walking around private zones too. gluing the paths
...
together is buggy, giving up for now and leaving disabled
2020-06-29 16:44:45 -07:00
Dustin Carlino
694b70c438
try something simpler for two-step pathfinding. maybe some code duplication, but way easier to reason about. i think this is now correct; just need equivalent for walking trips
2020-06-29 13:50:05 -07:00
Dustin Carlino
fafda7963b
handle more cases for two-step pathfinding, but still many not working.
...
need to pull the main path search in
2020-06-29 12:03:34 -07:00
Dustin Carlino
4cd674ca35
start two-step pathfinding for starting/ending in private zones. not
...
handling interior trips or walking yet. failing to find a path in many
cases, but it's a first step.
2020-06-29 11:30:00 -07:00
Dustin Carlino
a103c84a40
cluster private roads into zones. don't surface in the UI yet [rebuild]
2020-06-28 18:11:13 -07:00
Dustin Carlino
c97bd0fe4b
some cleanup after #106 . unbreak importer
2020-06-28 11:13:35 -07:00
phimuemue
a675e72d25
Avoid collect et al ( #106 )
...
* Avoid unconditional collect in get_lane_types
* Introduce Road::children(fwds)
Simplifies direction-aware lane retrieval.
* Simplify all_lanes
* Avoid unneeded collect
* Avoid some Vec copying
* Avoid unconditional collect
* Avoid some collect
* Avoid clone
* Avoid collect
* Avoid collect
* Avoid collect
* Avoid collect
* Avoid collect
* Avoid collect
Co-authored-by: Dustin Carlino <dabreegster@gmail.com>
2020-06-28 11:00:09 -07:00
Dustin Carlino
bb3da1f8eb
Make a very primitive form of adaptive traffic signal phases. It should
...
be easier to write better policies now; this mostly does the work of
changing the map model and UI to handle variable timing. A small step
towards #91
2020-06-28 10:20:47 -07:00
Dustin Carlino
2733d3e791
pull down fresh OSM data, with some fixes along mlk. handle west seattle
...
bridge being tagged differently. also note some streets in CHAZ/CHOP
disappeared, because they're tagged as pedestrian ways currently. also
forced to pull down fresh traffic signal data to keep lakeslice running
2020-06-27 22:27:03 -07:00
Dustin Carlino
ae6c099bd5
start bringing in private broadmoor roads. omit from the CH, so trips will just fail without a path for now.
2020-06-27 16:19:48 -07:00
Dustin Carlino
2881341b63
make parking lots hideable. dont snap parking and sidewalk hints to
...
light rail. not regenerating all the maps again yet to avoid some churn
2020-06-26 17:02:14 -07:00
Dustin Carlino
eab0988bd8
hello light rail! just import the tracks, represent as a new lane type.
...
make clipping handle starts and ends separately
2020-06-26 16:47:18 -07:00
Dustin Carlino
d254d49591
discard way less buildings, and match driveways away from intersections
...
more carefully
2020-06-25 16:34:44 -07:00
Dustin Carlino
bc6482c522
include camera state and edits in the crash report. would make it easier to repro #98 and #72
2020-06-25 09:02:50 -07:00
Dustin Carlino
e586760ef7
autosave was a lie. actually do it after any edit, not just when loading new edits
2020-06-24 12:06:06 -07:00
Dustin Carlino
626636ece7
remove turn lookup. have always found myself using the src lane. edits invalidated it anyway
2020-06-23 18:36:45 -07:00
Dustin Carlino
684bf72dde
recalculate stop signs when lanes change; construction->driving was
...
breaking the west seattle bridge. fixes #68 . include a built-in proposal
to fix the bridge. ;)
2020-06-23 17:46:35 -07:00
Dustin Carlino
24835cf673
skip OSM ways with no points, and ignore junction areas. fixes #84
2020-06-23 14:32:27 -07:00
Dustin Carlino
eedf80bfef
tiny tweaks from final testing:
...
- cutscene wording
- elide traffic tab on parking lanes
- dont crash when traffic signal data needs fixing, just warn more
loudly. this lets lanes near some signals actually be modified
2020-06-21 11:38:34 -07:00
Dustin Carlino
5a9fb4ceef
starting work on a brute-force traffic signal heuristic. organizing
...
existing code better.
2020-06-19 13:07:42 -07:00
Dustin Carlino
dd84087398
cleaning up more layers. got rid of ::scaled finally. refactoring
...
percentile handling. got rid of old color scales
2020-06-16 12:51:06 -07:00
Dustin Carlino
458b44bef9
tearing down Colorer::scaled in favor of a newer, simpler thing. also
...
switching more layers to a monochrome gradient. just a first step...
2020-06-16 11:38:43 -07:00
Dustin Carlino
64fba66e42
add links to proposal write-ups and adjust the UI for that page
2020-06-14 13:04:28 -07:00
Dustin Carlino
16bc96c401
try adjusting the offstreet spots in downtown to be a fraction of the
...
initial demand
2020-06-13 15:38:04 -07:00
Dustin Carlino
7cc8c4724a
start reviving the edit mode changelist. time is a flat circle?
2020-06-12 18:21:30 -07:00
Dustin Carlino
269bdc9171
dont force reset from midnight in survivor mode!
2020-06-11 16:30:31 -07:00
Dustin Carlino
863593708a
tool to copy OriginalLane to clipboard. also fix wasm build breakage [rebuild]
2020-06-07 16:25:42 -07:00
Dustin Carlino
c2563ae15f
fix the escort tutorial stage once and for all. fixes #52 [rebuild]
2020-06-07 12:39:14 -07:00
Dustin Carlino
8de9ba0536
stop grabbing parking lot capacity
2020-06-06 14:37:09 -07:00
Dustin Carlino
65b500509e
make peds use front paths for parking lots too
2020-06-06 14:04:09 -07:00
Dustin Carlino
a643f039ad
most of the sim changes to use parking lots! need to work on pedestrians
...
using the front paths
2020-06-06 13:42:39 -07:00
Dustin Carlino
bf426bb6d1
the last spawner bug: handle parking blackholes
2020-06-03 13:45:29 -07:00
Dustin Carlino
6482772b73
lots of bug fixes in spawner involving borders, invalidating paths when
...
changing modes
2020-06-03 13:37:34 -07:00
Dustin Carlino
96f68964e3
woops, it's been a while since i regenerated the austin maps
2020-06-03 12:16:31 -07:00
Dustin Carlino
ea6a5c0f9d
encode parking spots cheaply, compute up-front
2020-06-03 11:50:46 -07:00
Dustin Carlino
b69d155812
clipping parking aisles to the lots, in most cases
2020-06-03 10:51:59 -07:00
Dustin Carlino
b9da2f2fdc
pick up parking aisles that cross the polygon
2020-06-02 19:31:20 -07:00
Dustin Carlino
971ee0f819
cleaning up the parking lot rendering a bit
2020-06-02 15:59:26 -07:00
Dustin Carlino
b497a9926f
start rendering parking aisles. lots of issues to cleanup, but VERY
...
solid start
2020-06-02 13:30:37 -07:00
Dustin Carlino
30eafea94a
start representing OSM parking lots in the map model and rendering layer
2020-06-01 12:51:14 -07:00
Dustin Carlino
42a35c736a
starting a city region picker
2020-05-28 14:11:34 -07:00
Dustin Carlino
0f8161f006
restore the upper bridge, but mark it under construction
2020-05-27 16:52:39 -07:00
Dustin Carlino
9c862542fc
give up on fancy uber-turn icons, just use simple arrows
2020-05-27 09:38:42 -07:00
Dustin Carlino
490df9675c
draw islands. in particular, harbord island!
2020-05-21 18:15:48 -07:00
Dustin Carlino
7a7f6f25d9
restore the lower bridge, bus-only. grab fresh osm, with lotsa west
...
seattle fixes
2020-05-21 17:53:10 -07:00
Dustin Carlino
3dba07e97c
detect roads beneath bridges, lower their zorder. adjust min zoom
2020-05-21 16:31:43 -07:00
Dustin Carlino
bcd5d39626
auto detect clusters of signals, seed the UI with that
2020-05-21 10:00:57 -07:00
Dustin Carlino
cf2ce9f5dd
group uber-turns similarly to turn groups. (except not handling lane
...
types yet)
2020-05-21 09:33:19 -07:00
Dustin Carlino
d3c4b0b26a
start grouping uber-turns together, to make editing clusters of signals sane. very basic first steps.
2020-05-20 14:01:19 -07:00
Dustin Carlino
ddf6de5f59
stop dependending directly on serde_derive
2020-05-19 15:06:32 -07:00
Dustin Carlino
90bc73580d
the 'has the coffee really kicked in yet' change: make the contraction hierarchy prevent illegal uber-turns. probably doesnt properly handle changing lane types inside a cluster yet.
2020-05-19 14:03:01 -07:00
Dustin Carlino
977d78775d
filter for legal or illegal uber-turns
2020-05-18 18:18:46 -07:00
Dustin Carlino
e2e4ddab2f
tool to visualize uber-turns
2020-05-18 17:44:46 -07:00
Dustin Carlino
65a69612e0
few adjustments to get Manhattan initially imported. not making
...
permanent yet
2020-05-18 11:42:44 -07:00
Dustin Carlino
e679eed6e6
some buildings come from relations
2020-05-16 16:05:34 -07:00
Dustin Carlino
9f66c38f69
optionally skip building CH during importing
2020-05-15 09:30:24 -07:00
Dustin Carlino
510e75b043
include importer in release [rebuild]
2020-05-12 11:04:18 -07:00
Dustin Carlino
d7df50ab37
make a one-command version of the importer. remove barranquilla and LA,
...
since they can just be handled by the oneshot tool, and arent being
actively used yet
2020-05-12 10:27:07 -07:00
Dustin Carlino
182f5139a5
rip out old mapfixes code. pure OSM is more maintainable. keep map_editor for drawing synthetic maps and debugging raw maps
2020-05-10 10:39:08 -07:00
Dustin Carlino
7f867fda70
trim down map file size a bit by not storing building OSM tags, which
...
weren't useful anyway. 873MB for all maps down to 786MB. huge_seattle
343MB to 305MB
2020-05-08 14:46:36 -07:00
Dustin Carlino
b758c10e62
save edits before leaving final score modal
2020-05-07 12:31:36 -07:00
Dustin Carlino
5c0c133253
finally get the first community proposal baked in!
2020-05-06 16:58:09 -07:00
Dustin Carlino
07c48f612d
change speed limits in the map_model layer
2020-05-06 15:18:59 -07:00
Dustin Carlino
3d16c7c626
and at last, robust lane edits
2020-05-06 12:58:31 -07:00
Dustin Carlino
138eacd48c
save stop sign changes in better format
2020-05-06 12:08:53 -07:00
Dustin Carlino
86f01f2736
starting to export edits in a longer-lasting format. getting some
...
round-trip code set up, not handling stop signs or lane edits yet
2020-05-06 11:45:42 -07:00
Dustin Carlino
9569fd6159
filter out access=no roads. removes the old 520 entrance that's causing lots of unrealistic border traffic in lakeslice. add a map to study west seattle
2020-05-05 09:46:03 -07:00
Dustin Carlino
6877189da7
actually, allow disconnecting some parking via edits
2020-05-04 15:33:18 -07:00
Dustin Carlino
4ffabadaf2
prevent creating new parking blackholes before confirming edits. the
...
check is too conservative right now.
2020-05-04 15:04:39 -07:00