Commit Graph

2678 Commits

Author SHA1 Message Date
Dustin Carlino
047ced16be Improve heuristics for adding buffers to a bike lane 2021-08-21 16:24:26 -07:00
Dustin Carlino
b276178b4b Refactor add_new_lane heuristics, hopefully without changing behavior... 2021-08-21 15:38:54 -07:00
Dustin Carlino
f8a209724c Add some tests for adding a new lane to a road, in preparation to refactor / improve the heuristics. Closes #635 2021-08-21 15:32:14 -07:00
Dustin Carlino
7f9205598a Just split out road editing heuristics, to keep the main module focused on the UI 2021-08-21 15:22:32 -07:00
Dustin Carlino
816e125cbe Refactor some stuff related to unit tests for a road's lanes. #635 2021-08-21 15:17:57 -07:00
Dustin Carlino
657185c035 Fix a road editor crash:
1) click a lane
2) press left/right arrow key to move it
3) don't move the mouse! click

The current selection was never refreshed, but the lane IDs change
2021-08-21 10:44:23 -07:00
Dustin Carlino
ed7cf8515f Make it more obvious the route can be dragged 2021-08-20 15:39:43 -07:00
Dustin Carlino
c08645011d The street name rewriting case I was afraid of has ALREADY turned up,
because of course it has

(and fix rebase)
2021-08-20 15:18:54 -07:00
Dustin Carlino
4ad652fce5 Use SVG to create a text outline for labels 2021-08-20 15:14:41 -07:00
Dustin Carlino
e302100a9a Space out labels more aggressively: no overlapping 2021-08-20 15:14:41 -07:00
Dustin Carlino
28b9702032 Scale text at low zoom 2021-08-20 15:14:41 -07:00
Dustin Carlino
f584603065 Fix label backgrounds when rotated.
And make the labels an optional layer -- at least for temporary
development.
2021-08-20 15:14:41 -07:00
Dustin Carlino
d5a28a745f Shorten road names 2021-08-20 15:13:31 -07:00
Dustin Carlino
b575a0d346 Quick heuristic for spacing labels out a bit 2021-08-20 15:13:31 -07:00
Dustin Carlino
0931b0f245 The absolute mvp of unzoomed road labels 2021-08-20 15:13:31 -07:00
Dustin Carlino
cb2617ce1e UX feedback on the quick-sketch tool:
- name it more clearly
- don't show the "finalize" button until it's possible to use it
2021-08-20 15:12:26 -07:00
Dustin Carlino
c3e35a9a3f Stop accidentally overwriting Seattle collision data in the KML viewer 2021-08-20 12:49:25 -07:00
Michael Kirk
e124f21317
map explorer: add zoom buttons near legend (#726) 2021-08-20 12:47:19 -07:00
Dustin Carlino
cbc5820d4f UX feedback: for the contour layer, less opacity and less bold contour lines 2021-08-20 09:39:05 -07:00
Dustin Carlino
f3a216e935 Toggle bike network layer too in the new tool; we're probably using this
for a workshop presentation mode, and it's not always necessary

And also, remove the 'nearby stuff' layer -- the isochrone is super
broken, and it's unclear how this is supposed to help contextualize.
2021-08-20 09:31:50 -07:00
Dustin Carlino
135e85d06d Force some distance spinners to render in feet 2021-08-19 10:49:10 -07:00
Dustin Carlino
a297937ffa Add a free-form lane width spinner, alongside the dropdown with presets.
Achieves immediate goal of more control, but:
1) it reveals how painfully slow lane editing is!
2) the units are always meters in the spinner, which don't look great
2021-08-19 10:38:19 -07:00
Dustin Carlino
5bd9d1d711 Only enter road editor from zoomed view. It's too easy to accidentally click while unzoomed. 2021-08-18 13:44:17 -07:00
Dustin Carlino
70c6d47c13 Track locally which proposals have been uploaded, to avoid uploading copies of stuff uselessly. Not quite working, but big step forwards. 2021-08-18 10:23:20 -07:00
Dustin Carlino
1285b44668 Highlight road types when hovering on the legend 2021-08-17 10:55:36 -07:00
Dustin Carlino
b5a42ea448 Improve the bike network legend's layout, to show hierarchy 2021-08-17 10:37:19 -07:00
Dustin Carlino
c716dc3b2c Cutover proposal host to the prod appengine one! 2021-08-16 20:49:14 -07:00
Dustin Carlino
3d710afba2 Update the URL for the new bike network tool, including with edits. 2021-08-16 16:30:47 -07:00
Dustin Carlino
90a1d2ff83 Initially launch with edits loaded remotely 2021-08-16 16:00:01 -07:00
Dustin Carlino
090256668e Get the HTTP POST working on wasm too 2021-08-16 14:22:57 -07:00
Dustin Carlino
01fbfd37ae Hook up ungap tool to YIMBYhoodlum, saving proposals.
(Native only, might need some work to get this working on wasm...)
2021-08-16 13:26:49 -07:00
Dustin Carlino
07e738905c Color intersections in the ungap tool, so the coloring looks less
choppy.

Remove the "click to zoom" -- it's too easy to accidentally do this.
2021-08-15 11:05:17 -07:00
Dustin Carlino
5287308f6f Fix broken web build.
- I accidentally enabled something to debug map serialization, which
  broke in wasm -- fast_paths not meant to be serialized there, only
  deserialized.
- makefile for interactive development copied directories slightly wrong

Also picking up a slight UI panel change to the bike network tool from
days ago.

Also probably time to [rebuild] [release]
2021-08-15 09:05:41 -07:00
Dustin Carlino
8101324fa5 Improve heuristics slightly for quick sketching a bike network on roads without parking, but with many lanes. 2021-08-12 10:31:59 -07:00
Dustin Carlino
d392c67c00 Start unit tests for the quick bike sketch tool, to understand how lane transformations work
(And fix bucketize tests, which just haven't been run in a bit)
2021-08-12 09:47:40 -07:00
Dustin Carlino
19134163dc Fix ungap crash -- no need to explain what changed/edited roads are. 2021-08-10 09:20:54 -07:00
Dustin Carlino
207f91a018 Thicken lines in unzoomed view; stop trying to show which side of the road has lanes. 2021-08-08 11:37:23 -07:00
Dustin Carlino
1787611f56 More ergonomic route sketcher:
- still zoom when hovering on points
- more clearly show nodes being dragged
2021-08-08 10:00:44 -07:00
Dustin Carlino
9b4107f061 Track when a map is edited and update things better, in both the game's edit mode and the new tool. 2021-08-08 09:22:32 -07:00
Dustin Carlino
a393f4f66c Merge view/edit mode 2021-08-07 21:33:51 -07:00
Dustin Carlino
b59419ea84 Just rearrange code, in preparation for merging edit mode and the main explore map mode 2021-08-07 10:35:54 -07:00
Dustin Carlino
22dfb616a3 Split the route sketching out to a dedicated state, instead of squishing into edit mode. The dropdown value changing and being able to suddenly open a proposal in the middle doesn't make any sense. 2021-08-07 10:21:18 -07:00
Dustin Carlino
fdea0c8a91 Sort edits better -- untitled's to the back of the line, please 2021-08-07 10:02:49 -07:00
Dustin Carlino
51367088df Adding a 'nearby houses and shops' feature to the bike network tool
Results have major issues, probably going to leave this out of v1.
2021-08-06 20:05:04 -07:00
Dustin Carlino
e9aaeb8675 Load/save edits from new tool 2021-08-06 15:42:35 -07:00
Dustin Carlino
fe4adb9691 A thin veil of mist... 2021-08-06 15:19:20 -07:00
Dustin Carlino
20b8e7f94a Show edits. Regenerate layers on changes. 2021-08-06 14:47:05 -07:00
Dustin Carlino
96c55a067b Magnify while editing. Not feeling skeletal commit messages... 2021-08-06 14:20:03 -07:00
Dustin Carlino
190eaef251 Swap a femur with a tibia. A questionable trade, but I'm calling it
progress.
2021-08-05 18:51:19 -07:00
Dustin Carlino
116198e863 Revive the ability to render in greyscale with the fragment shader, for quicker color scheme tuning... 2021-08-05 15:37:49 -07:00
Dustin Carlino
b080c70d83 Sinew is meant to stretch. 2021-08-05 14:06:11 -07:00
Dustin Carlino
85b46e2dfa Set the default width of a newly added lane better. #597 2021-08-04 16:46:05 -07:00
Dustin Carlino
4bc8421066 There's more than devils in these details 2021-08-04 16:32:26 -07:00
Dustin Carlino
3bddceb275 Skeleton hands can't grasp the tip of tools, but they can refract the
gaze of the living...
2021-08-04 15:56:44 -07:00
Dustin Carlino
78f37e68e9 Broad strokes for fleshless folks 2021-08-04 13:46:34 -07:00
Dustin Carlino
1585eed66f Don't keep jamming the same button for the skeletonvator, that doesn't help 2021-08-04 10:51:31 -07:00
Dustin Carlino
4935ea4fd6 Come take a ride on my skele-skeletonvator
(I am so sorry)
2021-08-03 22:33:06 -07:00
Dustin Carlino
82865b4e08 The skeleton is already feeling conscious about its appearance, so early 2021-08-03 22:08:10 -07:00
Dustin Carlino
46eb26fd5c The skeleton begins to cover some of its bones 2021-08-03 19:23:28 -07:00
Dustin Carlino
a12c894eb5 The skeleton is implored to peek at its innards... (but skeleton bones
aren't polished)
2021-08-03 19:23:28 -07:00
Dustin Carlino
c019304ee3 A skeleton emerges, from whatever sort of place skeletons lurk 2021-08-03 19:23:28 -07:00
Dustin Carlino
e687dd0391 Automatically collapse more degenerate intersections. Manually tested
around the university bridge. Still far to go, but progress.

Not regenerating yet.
2021-08-02 12:06:47 -07:00
Dustin Carlino
314bed3d83 Adjust traffic signal editor icons, since they blended into the new grey scheme. #715 2021-08-01 12:36:37 -07:00
Dustin Carlino
2ae6dea692 Upgrade to rust 1.54, fix new clippy warnings 2021-07-30 09:48:31 -07:00
Dustin Carlino
c98b4f293e Regenerate all maps after last few changes. Split out the actdev scripts to more easily regenerate actdev scenarios. This is necessary if map intersection IDs change, for instance.
Rainier Valley starts crashing in the simulation! Not sure why the
regression happened, disabling for now, will look into it later.
2021-07-29 14:19:46 -07:00
Dustin Carlino
4547395067 Move the cycleway snapping step to happen just before RawMap->Map, so we can play with it in the map_editor. #330 2021-07-27 11:20:57 -07:00
Dustin Carlino
163244ace9 Trim dead-end cycleway and service road stubs. Not regenerating yet, but
spot checked in Tempe and the UDistrict.
2021-07-27 11:13:47 -07:00
Dustin Carlino
de5b7e7d43 Adjust colors and tooltips for multi road editor. #718 2021-07-26 12:59:45 -07:00
Dustin Carlino
9366116c9b Add a location button to the road / multi road editor. #718 2021-07-26 12:50:20 -07:00
Dustin Carlino
c5e769d276 Start a very basic binary classifier for high-stress cycling road, with a layer to check it. Use this to filter the mode shift dashboard -- effectively revealing PCT-esque gaps in the infrastructure. #448, #494 2021-07-26 10:48:00 -07:00
Dustin Carlino
06429d0d5f In the mode shift dashboard, show roads that might be highly used by converted trips... but that're missing bike infrastructure. #448 2021-07-26 10:41:51 -07:00
Dustin Carlino
d03d1b1305
When you change a lane type, also adjust to the default width for the new type. #597 (#714) 2021-07-25 16:05:51 -07:00
Dustin Carlino
0bce76e172 Parallelize commuter pattern calculation, to speed up the new concave hull algorithm on native 2021-07-25 10:20:27 -07:00
Michael Kirk
760d75e12a
Use concave hull for neighborhoods (#716)
Also, for sidewalks, interpolate points every n-meters to get a better
concave hull.
2021-07-25 10:11:12 -07:00
Dustin Carlino
b45f9e0134
Create new lane types to express different types of buffers for prote… (#704)
* Create new lane types to express different types of buffers for protected bike lanes. They're only created manually right now, to explore rendering.

* Update planter rendering

* Update planter - simplify

* fmt after merge

* Fixing up existing rendering

* Add curb buffer

* Adjust stripes

Co-authored-by: Robin Lovelace <rob00x@gmail.com>
2021-07-23 11:31:36 -07:00
Dustin Carlino
c5210e9887 Actually, keep the broken list of ways, to manually run with backtraces 2021-07-20 11:36:53 -07:00
Dustin Carlino
8dff4c5da5 If we fail to merge a road from debug mode, rollback the change to the JSON list of ways to merge. #654 2021-07-20 11:21:38 -07:00
Dustin Carlino
d10d8ceb33 Clean up code and regenerate everything with new the consolidation algorithm... #654
Phinney gridlocks again; 68daa6884a was
too ambitious. Otherwise all fine!
2021-07-19 15:07:10 -07:00
Dustin Carlino
68daa6884a Phinney and Wallingfjord don't gridlock right now, so opt them back into prebaked results 2021-07-18 22:58:22 -07:00
Dustin Carlino
9b40186c9c Avoid crashing when editing a stop sign near a tiny road. #707 [rebuild] [release] 2021-07-18 14:20:24 -07:00
Dustin Carlino
98978fa600 Remember which dashboard was open, and return to it when pressing 'more
data.' This makes it slightly less jarring to click on a specific trip
in a table or matrix, then return to the dashboard. Future work will
also remember filters/pagination of individual tables, maybe! (Since the
dashboards change over time, this might be weird.)

This also required adding a proper way to pick the dashboard from two of
the full-screen map dashboards. Otherwise, somebody would pick them and
get stuck!
2021-07-18 14:14:19 -07:00
Dustin Carlino
f6a94e8a58 Allow DrawWithTooltip to return custom data instead of string labels.
CloneableAny revived from e35c69f6f3
2021-07-18 14:14:19 -07:00
Dustin Carlino
ceff520ff4 Use the unedited map for elevation when viewing before edits. Fixes a crash when turns don't exist. 2021-07-18 14:14:19 -07:00
Dustin Carlino
2354ffa59d Don't make cells with 0 entries clickable 2021-07-18 14:14:19 -07:00
Dustin Carlino
942f2292fc Steps towards clicking cells in the problem matrix to explore trips with differences. #600
- Add optional clickable labels to DrawWithTooltips
- Wire up problem_matrix to remember the list of trips associated with
  each cell
- When clicking a cell, just open one arbitrary example trip
2021-07-18 14:14:19 -07:00
Dustin Carlino
d142b4fbd0 Refactor lots of the places walking along a PolyLine with a step size
Verified no behavioral change using the screenshot test. (Which only had
the driveway diff from b3ce53aa5f)
2021-07-16 14:17:08 -07:00
Dustin Carlino
9828006bcc Avoid a crash when editing very short roads. #703 2021-07-16 12:53:37 -07:00
Dustin Carlino
16f7796c68 Comparing paths before/after edits requires the unedited map.
Previously, this was done through an incredibly complicated dance of
loading the map file again when needed. This was slow (especially on
web!), made the InfoPanel API have a bizarre edge case, and even had
some way of crashing if you open a trip panel in some situation.

Rip all that nonsense out. The unedited map can just be cloned before
applying the first edit.
2021-07-15 23:01:35 -07:00
Dustin Carlino
ff310af3d1 Consistently follow rules for whether a lane can be edited. #597
Allow sidewalks, shoulders, and center turn lanes to be edited now.
Still don't touch service roads or light rail.
2021-07-15 18:21:49 -07:00
Dustin Carlino
b3ce53aa5f Draw building driveways per zoomed-in road, rather than as one map-wide batch. Otherwise, every single edit to road width needs to redraw all driveways. This doesn't scale with larger maps!
When zoomed in on just a building but not its road, this means the driveway won't show up until the road is in view. Acceptable trade-off.
2021-07-15 18:05:04 -07:00
Dustin Carlino
10fdaa8e92 estimate_duration already knows the mode, from the PathRequest 2021-07-14 12:38:19 -07:00
Dustin Carlino
9c3fe9e229 Add filters to the mode shift table. #448 2021-07-14 12:31:54 -07:00
Dustin Carlino
03d21c4fe9 A first mode-shift experiment: create a table of trips showing expected
time to drive/bike, the elevation profile, and the distance. #448
2021-07-14 12:17:03 -07:00
Dustin Carlino
149df630d4 Fix web build -- have to WASM-guard the debug tool that calls the importer 2021-07-13 23:00:45 -07:00
Dustin Carlino
38be4c0f68 Fixing small style/clippy problems and kicking off a [rebuild] [release] 2021-07-13 22:52:56 -07:00
Michael Kirk
7bf3f03251 add y-axis to aggregate duration table 2021-07-13 22:51:18 -07:00
Michael Kirk
43a3f2cdc2 round duration strings to largest unit 2021-07-13 22:51:18 -07:00
Dustin Carlino
14a0e005c8 Make sliders trigger Outcome::Changed, except for scrollbars. Manually
verified this doesn't break or slow down existing uses of sliders.
2021-07-13 12:36:54 -07:00
Dustin Carlino
e20ce2d041 While modifying a scenario, show how many trips match the filter.
(Except not updating the filter when changing sliders yet...)
2021-07-13 10:44:20 -07:00
Dustin Carlino
3d5955c2b6 Hardcode infinite parking option for a few maps. #688
This is an interim option until we decide whether this setting belongs
on the map, the scenario, or something else.
2021-07-13 09:03:07 -07:00