nycplanning / labs-regional-viz Goto Github PK
View Code? Open in Web Editor NEWAn interactive mapping experience that highlights regional planning data and trends.
License: Other
An interactive mapping experience that highlights regional planning data and trends.
License: Other
The following variables can be visualized as integrated and NOT layered dot density maps, with different colors for each attribute but consistent density values:
Note, layered maps would misrepresent allocation of employment or units
User is presented with a narrative format that displays key takeways with explanation and allows for quickly visualizing the corresponding data.
There is logic for excluding geometries that are not significant from visualizations.
This issue is complete when all rules are followed:
Jobs:
Housing
Ack! I think we overthought the site-header
looping through the maps. Every map should show up in the site header menu. It's only the narrative that should skip the ones with hasNarrative: false
.
So this line:
{{#each-in (group-by "category" filteredMapLinks) as |category maps|}}
…can just be:
{{#each-in (group-by "category" model.maps) as |category maps|}}
…and we can remove the filteredMapLinks
computed property.
/cc @allthesignals
Color & breaks for Private Employment Change 2000-2016
-15000
0
25000
75000
100000
1000000
note change from the pop change map
d76423
ffa555
e0f7ff
97d4f5
3c9beb
004da8
We should get like two tests in there because ppl are deploying broken apps to production
I think we need a more substantial title for the map when the sidebar is closed. With no sidebar, it's just a full screen webmap with a small legend, and I think adding a title bar near the top might make it clearer what the user is looking at.
Currently, the site header menu lists all the map pages. It should instead show:
Each of the map categories should have a dropdown which shows all the maps within that category so that the user can navigate directly to that map.
I want to see load spinners so I know something is happening after clicking
We need load spinners to communicate that something is happening.
We need to decide whether to use tasks or promises or just use the normal loading substates
Map will be blank
There should be better handling for this
Add a query parameter for narrativeVisible
.
Add links to each of the main tables used by the app on the About page.
Certain race conditions with mapbox gl's map instance being loaded and the framework attempting to update attributes lends itself to some unpredictable error states with the app...
In this case, if a user rapidly clicks "next" several times, then clicks "previous", there will be issues about missing sources.
May need special legend to visualize.
Add two supporting layers:
Add simple checkbox UI for these.
For all municipalities with dot density change visualizations, where variable representing statistical significance of change is greater than 1.645 ("variable"Sig>1.645):
-visualize data on the map with consistent size threshold
If "variable"Sig <1.645
-do not visualize municipality data on the map
Right now, they navigate through everything, but they should navigate through filtered narratives
ESLint rules aren't being enforced in the project. We should add those dependencies.
Customer would like the intro page to show the 3 geographies outlined.
User can view all data variables within categories (People, Housing, Jobs) at municipality, county, and subregion geographies.
Config should indicate which geography levels are available for a given narrative.
Switching geography levels is effectively hiding/showing maps.
Need to figure out how to add "non-primary" layers to maps, where are they defined, etc?
Not all narratives will not have the same options for geometry-level switching, the UI should be config-driven, need to add geometry level property to config.
Config should also indicate which geometry level is default for a narrative.
narrative-toggle
points to the map
route.narrative-link
points to the narrative
route.remarkable and highlightsjs require this
Clipping the input geographies should be clipped to residential land use coverage so dots wouldn't be placed on airports
Loss of 2.5% or more [d76423]
-2.5% to -1.0% [ffa555]
-0.9% to +0.9% [ffffe0]
+1.0% - +2.5% [b3e4ff]
+2.5% - +5% [5ab4ff ]
Gain of 5% or more [004da8]
The default view of the app should show some introductory text about the app.
We can stub in some filler.
@daragoldberg to provide final copy.
source
as a property in the configsThis is a source "note", with intent that there is better sourcing w/links on the About page.
breaks
, buildPaint
)highlightedFeatureLayer
)We'd like the make the app 100% config-driven, so this issue exists to riff on what should be in a config to accomplish everything we need.
The following variables would be visualized at the census tract geography, but census tract geography would not be selectable/has no corresponding profile. User click would correspond to the closest municipal geography (either boundary or within boundary):
Done:
Hou16 Total Housing Units, 2012-2016 5YR Average
Still needs to be made:
EmTot15 Total Employment 2015
EmPr15 Total Private Employment 2015
The addon we use for the CMS helps to round up files and subdirectories into a single array of objects. We should take advantage of this.
Because we have no labels, it would be useful to do a very simple tooltip with the geometry's name when hovering.
The user can then get full information by clicking
We should make the clicked geometry's information bolder/more prominent in the popups.
Total Units Permits 2010 to 2016
<3,000 [ffffe0]
3,001 - 7,500 [ffffbe]
7,501 - 15,000 [ffd37f]
15,001 - 30,000 [ffaa00]
30,000 [ff5500]
When user clicks a selectable geography (i.e. municipality, county, subregion), corresponding data in profile window will pull up.
In sidebar, allow user to click previous and next to move between stories.
We should communicate if loading is occurring
If variable values have no statistical significance, font color will be set to GRAY . Otherwise, font color will be BLACK.
CV > 20
Sig < 1.645
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.