Commit Graph

880 Commits

Author SHA1 Message Date
Dustin Carlino
05ba77ba9b prototyping map edits as a sequence of commands. some existing behavior
temporarily lost. i think this is simpler, will forge ahead
2019-11-16 20:27:10 -08:00
Dustin Carlino
f840175ef4 display pathfinding cost in info panel and heatmap 2019-11-16 15:16:28 -08:00
Dustin Carlino
b8abeccb43 very basic pathfinding penalty for not using bike/bus lanes when theyre available. except it's not working! argh 2019-11-15 15:00:14 -08:00
Dustin Carlino
22397b93a7 NOW ban bikes from motorways. popdat trip filtering needed to handle
some impossible-to-fulfill requests involving borders
2019-11-15 10:48:33 -08:00
Dustin Carlino
8ed42e9fb6 can_use can ban bikes from highways... disabled because it's breaking
psrc scenario, about to dig in
2019-11-15 10:11:31 -08:00
Dustin Carlino
59913d79e9 also switch some border-related methods to use PathConstraints 2019-11-14 20:37:03 -08:00
Dustin Carlino
2dea662fa0 rip out old methods in map for filtering turns 2019-11-14 20:24:54 -08:00
Dustin Carlino
0f3191bca8 tweak pathfinding to use PathConstraints 2019-11-14 20:10:53 -08:00
Dustin Carlino
9e3f318f48 make floodfiller show reachability based on PathConstraint. start new
methods for valid turns based on PathConstraint.
2019-11-14 20:00:52 -08:00
Dustin Carlino
4c9975f8b0 be a little more precise with PathRequest 2019-11-14 19:18:22 -08:00
Dustin Carlino
1c330d856f fix the close-intersection tool. make it check that sidewalks aren't disconnected by the change. implement un-closing an intersection for construction! 2019-11-14 13:03:33 -08:00
Dustin Carlino
98ef31fa24 disabled: import and render pedestrian traffic islands. include them in
search results.
2019-11-14 10:54:11 -08:00
Dustin Carlino
53bbf4e272 manually trim a few disconnected sidewalks 2019-11-13 15:01:53 -08:00
Dustin Carlino
628111b421 show sidewalks disconnected in edit impact. prerequisite to preventing this. 2019-11-12 16:08:39 -08:00
Dustin Carlino
03d599775f clean up some crosswalks generated near roads with sidewalks only on one side 2019-11-12 15:54:47 -08:00
Dustin Carlino
65d8f9e3c6 oops, wasnt recomputing pedestrian graphs at all. but now that connectivity can change too, so... 2019-11-11 15:17:40 -08:00
Dustin Carlino
1ff80b2e20 start figuring out what impact edits have on trips in a scenario. also,
count trips with the first path failing as aborted.
2019-11-11 14:14:19 -08:00
Dustin Carlino
6fb5fd2239 start modeling intersections closed for construction. ignore impact on trips, pathfinding, etc. bugs with applying edits, but a start. 2019-11-10 15:03:06 -08:00
Dustin Carlino
0fb358b38d interpret sidewalks=separate as =both for now, so the downtown map is usable again 2019-11-10 12:19:39 -08:00
Dustin Carlino
5aecb96d8f refactor turn restriction handling in map_editor... no behavioral changes yet 2019-11-09 16:10:18 -08:00
Dustin Carlino
5bb8e0a83b overhaul stop signs. can only toggle which roads have a stop sign or
not. no more granular control of individul turns
2019-11-09 14:20:31 -08:00
Dustin Carlino
7b2a0b87b3 just use 3 turn priorities, interpret them a bit differently.
temporarily kinda breaking stop signs
2019-11-09 13:35:55 -08:00
Dustin Carlino
6a5b312a07 same for correct end lanes 2019-11-07 16:32:26 -08:00
Dustin Carlino
b0dde63e57 make bulk spawner use correct start lanes 2019-11-07 16:16:04 -08:00
Dustin Carlino
179009de32 stop coloring synthetic/original stuff in map editor. not useful now that it's normal to modify existing stuff 2019-11-06 10:16:06 -08:00
Dustin Carlino
7800ac046e WIP detecting problems applying fixes 2019-11-06 09:58:21 -08:00
Dustin Carlino
1a28768df3 displaying bus delay data over time. needs work, but solid start to a
general plotting mechanism
2019-11-05 13:00:51 -08:00
Dustin Carlino
03e2c0b3f2 one master set of fixes in huge_seattle coordinate space, then a single override per map. start over with fixes... again. for the last time?! all the tricky cases from last time work now... 2019-11-04 09:50:59 -08:00
Dustin Carlino
432995d8e5 confirm before bailing out of sandbox mode 2019-11-01 20:43:09 -07:00
Dustin Carlino
33fe2981af oh wow, traffic signal durations have been hardcoded forever. woops? 2019-11-01 14:26:27 -07:00
Dustin Carlino
f0bc8eb1fa move a validity check for border intersections up-front in map construction. be able to skip fixes in precompute scripts too 2019-10-31 15:55:02 -07:00
Dustin Carlino
abf14e1fac track when map edits are dirty 2019-10-31 14:51:35 -07:00
Dustin Carlino
11af01d0ea prevent bus routes near borders from being filtered out 2019-10-31 12:07:35 -07:00
Dustin Carlino
9995bed6ab improve dead-ends by using a shared sidewalk corner, not a crosswalk 2019-10-30 10:10:28 -07:00
Dustin Carlino
a5892daedb add a new lane type for road closures 2019-10-29 17:04:57 -07:00
Dustin Carlino
8e4bc6961b montlake is completely fixed of short roads! also turn restrictions
around 520, crosswalks over 2 one-ways, decided to use one fix file per
map
2019-10-28 19:08:44 -07:00
Dustin Carlino
ca43e6fb43 woops, wasnt deleting turn restrictions from world layer. fix up
montlake/520 once again, modulo turn restrictions
2019-10-28 16:16:25 -07:00
Dustin Carlino
1f7c113267 fix road merging. simpler now that roads only have one object
associated. require turn restrictions to be deleted first. fix the
boston area as a test
2019-10-28 14:33:10 -07:00
Dustin Carlino
6f50cbaa30 finishing the big cutover from stable to original IDs. main path works,
now looking at map editor
2019-10-28 12:40:09 -07:00
Dustin Carlino
ea50371d64 rip out stable IDs in favor of orig IDs. the extra layer is confusing for things like MapFixes. stop modifying orig IDs when merging roads.
NOT done with this transition yet, just pushing to not lose work
2019-10-28 12:08:11 -07:00
Dustin Carlino
ecc86b6d6a revamping MapFixes. very straightforward full override of synthetic/normal stuff, including geometry. no more semantically weird hints like merging roads. some bugs left. 2019-10-27 17:15:27 -07:00
Dustin Carlino
75e155fec6 filter out parking lanes without any sidewalks at all nearby (and also
warn about them)
2019-10-26 17:53:09 -07:00
Dustin Carlino
e881d13014 find all the short lanes, from map_editor 2019-10-26 15:01:27 -07:00
Dustin Carlino
fe14e1709b implement PartialEq on Pt2D using the old epsilon_eq. too many places in the codebase are inconsistent. 2019-10-25 12:24:18 -07:00
Dustin Carlino
1e903c6cee pass a flag to disable using mapfixes, since it's annoying to keep temporarily deleting these 2019-10-25 10:09:47 -07:00
Dustin Carlino
1a92590c28 some fixes become invalid as osm edits happen. print better errors so the fixes can be manually... fixed. and a script to grab fresh OSM data 2019-10-24 17:11:35 -07:00
Dustin Carlino
d8b11ca10e some right (by angle) turns cross roads; those should be straight turns 2019-10-23 14:37:00 -07:00
Dustin Carlino
2313b06995 DISABLED: apply sidewalk hints, same as parking. need to sort out what
should happen with parking without sidewalks
2019-10-23 13:00:42 -07:00
Dustin Carlino
9cab5bf903 prep before bringing in king county sidewalks. clean up lane type
calculation, move motorway/parking filter earlier. stop bringing in
street signs.
2019-10-23 09:35:41 -07:00
Dustin Carlino
996eceea92 with the new traffic signal, add back the 520 EB onramp 2019-10-22 15:00:56 -07:00
Dustin Carlino
2d02f90d9b another easy one -- one phase per road 2019-10-22 14:29:58 -07:00
Dustin Carlino
92b15507d5 new strawman 2-phase traffic signal policy 2019-10-22 13:54:09 -07:00
Dustin Carlino
44eb13d5ee argh, there are two tags used for shared left turn lane 2019-10-21 19:31:41 -07:00
Dustin Carlino
d358f574d5 handle OSM polylines that have redundant internal nodes and cause weird shifting later (26th and gilman) 2019-10-21 19:28:31 -07:00
Dustin Carlino
c9db056c3a start representing shared left turn lanes. nothing uses them yet,
just draw them (without the left turn markings)
2019-10-21 16:14:16 -07:00
Dustin Carlino
7ead5f9281 make traffic signal diagram always be a fixed width; zoom the intersection based on that 2019-10-21 15:17:21 -07:00
Dustin Carlino
f78b11d633 (temporarily) filter out driveways too close to either end of the road.
get cars unparking from driveways properly.
2019-10-19 19:10:59 -07:00
Dustin Carlino
96a38b98b1 allow sidewalks on both sides of all oneways. dont remember where the negative case was earlier. this was causing parking->sidewalk crashes in many maps 2019-10-18 14:50:05 -07:00
Dustin Carlino
012d5bdd1d make parking/unparking on offside shift the correct direction.
theoretically also handle unparking from a driveway, but cant test that
easily yet...
2019-10-17 14:40:27 -07:00
Dustin Carlino
5e41a607fd adjust starting pos of parked cars going to offside driving lane 2019-10-17 14:11:07 -07:00
Dustin Carlino
03d31477af make sim handle parking lanes on off-side of a oneway. ostensibly.
haven't forced a test case yet
2019-10-16 17:55:22 -07:00
Dustin Carlino
10f2f6008f improve map_editor's intersection preview
- timer for setting up world
- preview all intersections
- move world to map_editor; it's too oddly specialized
- dont show circle while previewing intersection geom
- show overlapping intersection polygons
2019-10-16 15:08:22 -07:00
Dustin Carlino
413525aae5 refactor RawRoad -> initial Road 2019-10-16 10:36:39 -07:00
Dustin Carlino
1438a1490b allow parking lanes on the 'backwards' direction of oneways. they exist, still need to use them properly. 2019-10-16 10:23:29 -07:00
Dustin Carlino
a762887cf8 interpret parking tags from OSM. explicitly mark when convert_osm infers and adds these. 2019-10-15 09:49:11 -07:00
Dustin Carlino
51352d05a9 interpret OSM tags to figure out bike lanes on one side 2019-10-14 15:05:45 -07:00
Dustin Carlino
85ff33e72d basic, but working, impl of cars lane-changing opportunistically 2019-10-13 14:30:20 -07:00
Dustin Carlino
2edb275d3c rename cycle -> phase, match the literature 2019-10-09 15:27:25 -07:00
Dustin Carlino
b7b3a97a5e remove parking from SR-99 and other highways :) 2019-10-08 11:41:45 -07:00
Dustin Carlino
8d826c2f43 ah, need to rerender lane on the other side of the road for contraflow to erase dashed white lines 2019-10-08 11:32:30 -07:00
Dustin Carlino
258f3d4528 reverse lane direction as a new edit. might be a few determinism issues,
but seems to mostly work.
2019-10-07 18:04:31 -07:00
Dustin Carlino
c82e90bbec allow merging short roads with metadata changes. some fixes around
madison
2019-09-30 10:11:45 -07:00
Dustin Carlino
75b18ccfd5 plumb back better errors for not being able to make map_editor changes 2019-09-30 09:49:47 -07:00
Dustin Carlino
707a649fdd skip empty phases of generated traffic signals 2019-09-30 09:35:42 -07:00
Dustin Carlino
a539270beb dont compare GPSBounds exactly, bc floating pt serialization problems.
add a turn restriction near uw.
2019-09-30 09:24:17 -07:00
Dustin Carlino
c971a732dd more flexibly merge short roads with stop sign and traffic signal. use it to fix a stuck part of 23rd. 2019-09-29 20:50:14 -07:00
Dustin Carlino
9d237f314b dont conflict between synthetic OSM IDs created by map_editor and by map clipping 2019-09-29 12:43:02 -07:00
Dustin Carlino
b99dfce763 transform geometry in MapFixes based on GPSBounds. also have to
abandon the 520 fixes, because something odd is going on with the newer
osm import. :( IDs changed?
2019-09-29 10:17:02 -07:00
Dustin Carlino
1a7e0b0a07 fiddle with apply_fixes order to make deleting roads with restrictions work 2019-09-27 11:24:04 -07:00
Dustin Carlino
0ef002ad30 saving the turn restriction mods 2019-09-27 11:19:27 -07:00
Dustin Carlino
1a678f6e72 revamp osm turn restriction handling. capture the 'via' to disambiguate things, and match to roads way sooner. not persisting to MapFixes again. 2019-09-27 11:05:19 -07:00
Dustin Carlino
00b9fc18e3 working on intersection geometry. few disabled things. 2019-09-26 15:56:31 -07:00
Dustin Carlino
2554b08641 upgrade to rust 1.38, fix new clippy errors 2019-09-26 14:38:50 -07:00
Dustin Carlino
0961475abc some prep to make debugging intersection geometry in map_editor easier.
showing cursor pt and labeled debug lines.
2019-09-26 14:29:23 -07:00
Dustin Carlino
837de16c32 preview intersection geometry from map_editor 2019-09-25 12:20:13 -07:00
Dustin Carlino
b9df20de5c save turn restriction edits in MapFixes. some caveats. 2019-09-25 11:51:34 -07:00
Dustin Carlino
1b21f03464 cant add turn restriction btwn unconnected roads 2019-09-25 11:03:12 -07:00
Dustin Carlino
cfa21d4cc3 cant delete roads involving turn restrictions 2019-09-25 10:50:06 -07:00
Dustin Carlino
23166b1aa8 switch to turn restriction enums, so we can easily use IDs in map_editor 2019-09-24 18:58:06 -07:00
Dustin Carlino
dd9827df72 add/delete turn restrictions, without saving in fixes yet. adding is
buggy.
2019-09-24 18:35:57 -07:00
Dustin Carlino
8046f36936 working on turn restrictions in map_editor 2019-09-24 13:55:41 -07:00
Dustin Carlino
67fb1b39da filling in more validity checks for map_editor... 2019-09-24 13:24:33 -07:00
Dustin Carlino
b108f0cbc0 remove the intermediate HalfMap structure 2019-09-23 16:06:43 -07:00
Dustin Carlino
536df84844 rename raw_data layer of stuff for easier importing, disambiguation 2019-09-23 15:00:55 -07:00
Dustin Carlino
333f976721 remove dead merge code 2019-09-23 14:12:54 -07:00
Dustin Carlino
72d834b332 remove hints. MapFixes took over. 2019-09-23 14:10:50 -07:00
Dustin Carlino
18b5d1ae8f goodbye, fix_map_geom. rename synthetic crate to map_editor 2019-09-23 13:54:09 -07:00
Dustin Carlino
f06db4ecb4 remove the old hacky fix_ramps phase. underlying problem is probably pedestrian islands not being modeled properly. workarounds now possible through synthetic. 2019-09-23 12:48:55 -07:00
Dustin Carlino
1495cc2970 remove redundancy of osm IDs on raw stuff 2019-09-23 12:08:00 -07:00
Dustin Carlino
deaa555565 cutover Original{Road,Intersection} to just use OSM IDs. adjust a few
other places to ensure unique-per-map synthetic OSM IDs
2019-09-23 11:50:04 -07:00
Dustin Carlino
b2fb7e7396 adjust epsilon so huge_seattle imports again 2019-09-21 08:22:28 -07:00
Dustin Carlino
1e73baa078 start remembering osm_node_ids for intersections 2019-09-20 15:17:54 -07:00
Dustin Carlino
a130f876f9 more validations for merging short roads 2019-09-20 14:36:53 -07:00
Dustin Carlino
3a8752d2e9 less dumb raw_data mutation API. take stable IDs, which synthetic model already has and apply_fixes computes anyway 2019-09-20 14:13:08 -07:00
Dustin Carlino
9d077c8081 moving remainder of mutations from model to raw_data 2019-09-20 13:54:51 -07:00
Dustin Carlino
e1988e56e5 recording fixes inside raw map. simplifying model's way of managing all fixes 2019-09-20 13:14:28 -07:00
Dustin Carlino
b9ac8021d0 making first-class mutations on raw map, so synthetic model does less
work. not porting over the mutations not preserved by fixes yet, and
also not actually recording fixes for the moment...
2019-09-20 13:06:29 -07:00
Dustin Carlino
0ae0a88abb actually, serialize MapFixes as json for now. will switch to binary when this is large later, but for now, this is easier to handle schema changes and debug. 2019-09-19 14:39:31 -07:00
Dustin Carlino
9a58136fc1 remove two debuggers (original roads and reattempting intersection geom) from game. not useful, and this could work better in synthetic or fix_map_geom. also lets us stop copying an extra polyline in the final map 2019-09-19 14:16:50 -07:00
Dustin Carlino
1599507934 support for merging short roads in synthetic editor. the fix gets
applied later by very painfully copying logic and doing a slow thing.
2019-09-19 14:03:04 -07:00
Dustin Carlino
3eb9acf0aa plumb parking lane hints around through tags too; simplifies a few places 2019-09-19 13:30:07 -07:00
Dustin Carlino
fd273ae62d woops, i broke fix_map_geom when deferring remove_disconnected_roads.
also update install instructions to prep for hackathon
2019-09-19 11:44:52 -07:00
Dustin Carlino
fac8d4d9ff remember tag overrides for osm roads in fixes 2019-09-18 15:25:52 -07:00
Dustin Carlino
3fd74673cf edit name and speed limit of a synthetic road 2019-09-18 11:15:06 -07:00
Dustin Carlino
d86f4a6e89 separate files for groups of fixes 2019-09-18 10:48:17 -07:00
Dustin Carlino
6f1ac3969e organizing osm keys 2019-09-17 17:14:09 -07:00
Dustin Carlino
e52fa1fc1a recording and applying fixes to create new synthetic intersections and roads 2019-09-17 16:16:19 -07:00
Dustin Carlino
e32b540f54 draw boundary polygon, and deal with matching orig IDs that run right up
against the map boundary
2019-09-17 13:56:15 -07:00
Dustin Carlino
eee5981c14 stable IDs for buildings in raw layer too. stop futzing with ID problems there. 2019-09-17 13:11:08 -07:00
Dustin Carlino
33ab7d4553 a big cutover -- synthetic model is just a thin wrapper on a raw_data map. mostly everything works! 2019-09-17 12:55:33 -07:00
Dustin Carlino
0e406afe0f store name in raw map; simplifies some plumbing elsewhere 2019-09-17 10:27:32 -07:00
Dustin Carlino
18baf7ae49 remove disconnected roads from raw map later, not in convert_osm. that way, if MapFixes disconnect anything, it gets removed later 2019-09-17 09:41:38 -07:00
Dustin Carlino
030191ef31 fixed OriginalRoads, which were pretty much always wrong (not split from
the original OSM way). also handle cul-de-sacs.
2019-09-17 09:29:19 -07:00
Dustin Carlino
572c69175c apply fixes to raw_data in synthetic crate and when creating the full map model. adjusting some LonLat matches to do approx_eq. not stable yet -- sometimes we leave a road connected to something missing. 2019-09-16 12:31:15 -07:00
Dustin Carlino
3e8a825ac1 recording changes from synthetic crate 2019-09-16 10:56:45 -07:00
Dustin Carlino
8d8237a40e making sure we only consider appropriate lane types for parking searches 2019-09-15 10:11:13 -07:00
Dustin Carlino
3a5e9c5a29 make_degenerate_crosswalks broke on huge_seattle, dodge tiny lines 2019-09-14 09:37:30 -07:00
Dustin Carlino
c86c1df21a add ability to move intersections to fix_map_geom... it partly works. 2019-09-10 11:47:11 -07:00
Dustin Carlino
c4b47aeeb5 make other_crosswalk_ids aware of the degenerate intersection quadruple case, and avoid quadruple-rendering 2019-09-09 14:55:53 -07:00
Dustin Carlino
18abb85431 adjust degenerate intersections: only one crosswalk, reduce size of it 2019-09-09 12:28:19 -07:00
Dustin Carlino
68269530fe refactor intersection type checks 2019-09-07 12:34:39 -07:00
Dustin Carlino
edb85da4c4 dont connect driveway to SR-99, yo 2019-09-02 22:57:44 -07:00
Dustin Carlino
528010f308 render cars on driveways a little better 2019-09-02 22:34:01 -07:00
Dustin Carlino
1910d06bc7 infer clipping polygon from entire .osm if no polygon is specified 2019-09-02 12:37:40 -07:00
Dustin Carlino
ba2b5fc831 compute and render driveway lines 2019-08-30 12:38:07 -07:00
Dustin Carlino
ea9d01bcc1 set a modal menu's prompt just once in a few places, where that's more
convenient
2019-08-27 14:56:43 -07:00
Dustin Carlino
0a39f4bd77 get rid of the coordinates_in_world_space hack; synthetic can just directly work in Pt2Ds now 2019-08-26 15:57:28 -07:00
Dustin Carlino
9fac44e28b fix roundabout handling. clearing out hints, because many no longer
apply with the back-and-forth gps/pt2d stuff... reasonable to reset
efforts anyway, now that I'm considering patching in OSM edits instead
2019-08-26 14:40:47 -07:00
Dustin Carlino
c545e5d86e some bug with previous commit messing up roundabout handling... quick detour to only have HashablePt2D for Pt2D, never for LonLat 2019-08-26 14:10:34 -07:00
Dustin Carlino
114a76893a now raw_data::Road 2019-08-26 13:59:10 -07:00
Dustin Carlino
9156cbd434 raw_data::Intersection too 2019-08-26 11:18:39 -07:00
Dustin Carlino
ce4369be27 raw_data::Building too 2019-08-26 10:36:00 -07:00
Dustin Carlino
6af2c5c0e0 raw_data::Area up-front stores a Polygon 2019-08-25 19:28:59 -07:00
Dustin Carlino
29eb463a6f base gps_bounds off of boundary polygon only. temporarily allow some out-of-bound coordinates, and deal with them during clipping. this means the osmosis boundary polygon is required. 2019-08-25 19:07:12 -07:00
Dustin Carlino
2b9ce7fef1 nit: why did FrontPath need a reference to the bldg? never passing it around in isolation. also update map article for parking blackholes 2019-08-25 14:57:04 -07:00
Dustin Carlino
1936f5f75e match offstreet parking KML to buildings 2019-08-25 14:00:25 -07:00
Dustin Carlino
5c0fb90819 recompute parking blackholes after edits 2019-08-23 13:21:45 -07:00
Dustin Carlino
17136509cf the parking redirects dont have to be before the lane... they can also be after. just nearby is the goal. this fixes a few more aborted trips 2019-08-23 12:30:25 -07:00
Dustin Carlino
9f897ef094 removing ezgui inline color parsing. pretty much unused, isn't helping
compile time. also fixing clippy issues
2019-08-22 13:38:16 -07:00
Dustin Carlino
ed0ca15aef make sim layer use parking redirects. lots of aborted trips now fixed! 2019-08-21 15:06:49 -07:00