88 POPULATION_GRID_URL ,
99 SOCIOECONOMIC_URL ,
1010 PARKS_URL ,
11+ URBAN_NATURE_AREAS_URL ,
1112 TREES_URL ,
1213 STREET_LIGHTS_URL ,
1314 AMENITIES_CLEAN_URL ,
@@ -68,6 +69,7 @@ const {
6869 createBuildingsFillLayer,
6970 createBuildingsSelectedLayer,
7071 applyParkDotPattern,
72+ applyUrbanNatureDotPattern,
7173 Urban95ScoreSidebar,
7274 Urban95InfoModal,
7375 Urban95Dashboards,
@@ -156,6 +158,7 @@ const legendLabels = document.getElementById("legend-labels");
156158const SYM_PCT_KEY = "_u95_symb_pct" ;
157159const tooltip = document . getElementById ( "tooltip" ) ;
158160const radiusToggle = document . getElementById ( "radius-toggle" ) ;
161+ const showUrbanNatureToggle = document . getElementById ( "show-urban-nature-toggle" ) ;
159162const showTreesToggle = document . getElementById ( "show-trees-toggle" ) ;
160163const showLightsToggle = document . getElementById ( "show-lights-toggle" ) ;
161164const showAmenityPointsToggle = document . getElementById ( "show-amenity-points-toggle" ) ;
@@ -361,6 +364,7 @@ const SCHOOLS_SOURCE_ID = "schools";
361364const SCHOOLS_LAYER_ID = "schools-points" ;
362365const KIDS_POPULATION_SOURCE_ID = "kids-population-grid" ;
363366const KIDS_POPULATION_LAYER_ID = "kids-population-grid-fill" ;
367+ const URBAN_NATURE_LAYER_ID = "urban-nature-fill" ;
364368const SOCIOECONOMIC_SOURCE_ID = "socioeconomic-statareas" ;
365369const SOCIOECONOMIC_FILL_LAYER_ID = "socioeconomic-statareas-fill" ;
366370const SOCIOECONOMIC_OUTLINE_LAYER_ID = "socioeconomic-statareas-outline" ;
@@ -785,6 +789,7 @@ const modeController = Urban95ModeController.create({
785789function switchMode ( mode ) {
786790 const result = modeController . switchMode ( mode ) ;
787791 applySchoolsLayerVisibility ( ) ;
792+ applyUrbanNatureVisibility ( ) ;
788793 return result ;
789794}
790795const applyHouseModeHexBackground = modeController . applyHouseModeHexBackground ;
@@ -1241,9 +1246,11 @@ Urban95AppStartupBridge.bindStartup({
12411246 applyScoreModeAmenities : amenityMode . apply ,
12421247 clearDerivedCaches : clearDerivedCachesState ,
12431248 applyHouseModeHexBackground : applyHouseModeHexBackground ,
1249+ applyUrbanNatureVisibility : applyUrbanNatureVisibility ,
12441250 } ,
12451251 renderers : {
12461252 applyParkDotPattern : applyParkDotPattern ,
1253+ applyUrbanNatureDotPattern : applyUrbanNatureDotPattern ,
12471254 addAmenityLayers : Urban95MapRenderers . addAmenityLayers ,
12481255 applyShowPointsToggle : Urban95MapRenderers . applyShowPointsToggle ,
12491256 updateBuildingColors : Urban95MapRenderers . updateBuildingColors ,
@@ -1254,6 +1261,7 @@ Urban95AppStartupBridge.bindStartup({
12541261 urls : {
12551262 buildings : BUILDINGS_URL ,
12561263 parks : PARKS_URL ,
1264+ urbanNatureAreas : URBAN_NATURE_AREAS_URL ,
12571265 } ,
12581266} ) ;
12591267Urban95MapEvents . bind ( {
@@ -1366,6 +1374,17 @@ function ensureKidsPopulationLayer() {
13661374 ) ;
13671375 }
13681376}
1377+ function applyUrbanNatureVisibility ( ) {
1378+ if ( ! map . getLayer ( URBAN_NATURE_LAYER_ID ) ) return ;
1379+ const enabled = showUrbanNatureToggle && showUrbanNatureToggle . checked ;
1380+ const showInMode = currentMode === "house" || currentMode === "citywide" ;
1381+ map . setLayoutProperty (
1382+ URBAN_NATURE_LAYER_ID ,
1383+ "visibility" ,
1384+ enabled && showInMode ? "visible" : "none"
1385+ ) ;
1386+ }
1387+
13691388function applyKidsPopulationVisibility ( ) {
13701389 if ( ! map . getLayer ( KIDS_POPULATION_LAYER_ID ) ) return ;
13711390 const visible = showKidsPopulationToggle && showKidsPopulationToggle . checked ;
@@ -1662,6 +1681,10 @@ if (showRoadsToggle) {
16621681 showRoadsToggle . addEventListener ( "change" , applyRoadSymbologyVisibility ) ;
16631682 map . on ( "load" , applyRoadSymbologyVisibility ) ;
16641683}
1684+ if ( showUrbanNatureToggle ) {
1685+ showUrbanNatureToggle . addEventListener ( "change" , applyUrbanNatureVisibility ) ;
1686+ map . on ( "load" , applyUrbanNatureVisibility ) ;
1687+ }
16651688if ( showKidsPopulationToggle ) {
16661689 showKidsPopulationToggle . addEventListener ( "change" , applyKidsPopulationVisibility ) ;
16671690}
0 commit comments