From 5595772da799ff47897fbdc5761cfa2853cfa565 Mon Sep 17 00:00:00 2001 From: xiaomkk Date: Wed, 5 Nov 2025 14:40:37 -0500 Subject: [PATCH] 6920 Story Map Project --- .DS_Store | Bin 0 -> 6148 bytes README.md | 60 +--- data/heat_vulnerability_ct.geojson | 391 ++++++++++++++++++++++++ data/philadelphia_neighborhoods.geojson | 166 ++++++++++ data/ppr_program_sites.geojson | 178 +++++++++++ data/ppr_swimming_pools.geojson | 79 +++++ img/skyline.jpg | Bin 0 -> 60607 bytes index.html | 71 +++++ main.js | 171 +++++++++++ style.css | 108 +++++++ 10 files changed, 1175 insertions(+), 49 deletions(-) create mode 100644 .DS_Store create mode 100644 data/heat_vulnerability_ct.geojson create mode 100644 data/philadelphia_neighborhoods.geojson create mode 100644 data/ppr_program_sites.geojson create mode 100644 data/ppr_swimming_pools.geojson create mode 100644 img/skyline.jpg create mode 100644 index.html create mode 100644 main.js create mode 100644 style.css diff --git a/.DS_Store b/.DS_Store new file mode 100644 index 0000000000000000000000000000000000000000..5008ddfcf53c02e82d7eee2e57c38e5672ef89f6 GIT binary patch literal 6148 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 z%0A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

hbdeBHirK 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 z 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 + + + + + Philly Heat & Cooling — Blueprint Story Map + + + + + +

+ + +
+ +
+
+

Staying Cool in Philly

+

Heat Vulnerability & Access to Cooling Resources

+ Philadelphia skyline +

Scroll or press ↓ to advance • Zoom buttons control the map

+ +
+
+ +
+
+

Where heat risk is highest

+

The City’s Heat Vulnerability Index (HVI) highlights neighborhoods facing elevated risk. Darker tracts indicate higher vulnerability based on environmental and social factors.

+
+
+ +
+
+

Swimming pools

+

Public pools provide seasonal relief on extreme heat days.

+
+
+ +
+
+

Recreation & program sites

+

PPR program sites (recreation centers, older adult centers, environmental education sites) may serve as cooling resources during emergencies.

+
+
+ +
+ + + + +

Data Sources

+
    +
  • Heat Vulnerability by Census Tract — City of Philadelphia / OpenDataPhilly (GeoJSON). Accessed September 23, 2025.
  • +
  • Parks & Recreation Program Sites — City of Philadelphia / OpenDataPhilly (GeoJSON). Accessed September 23, 2025.
  • +
  • Parks & Recreation Swimming Pools — City of Philadelphia / OpenDataPhilly (GeoJSON). Accessed September 23, 2025.
  • +
  • Philadelphia Neighborhoods — City of Philadelphia / OpenDataPhilly (GeoJSON). Accessed September 23, 2025.
  • +
+
+ +
+
+ + + + + + + + diff --git a/main.js b/main.js new file mode 100644 index 00000000..1e763c5d --- /dev/null +++ b/main.js @@ -0,0 +1,171 @@ +// Blueprint Story Map - v2 + +// --- Map setup --- +const map = L.map('map', { + zoomControl: false, // we'll add our own in bottom-right + preferCanvas: true, + scrollWheelZoom: false, // keep scroll for slide navigation + inertia: true +}).setView([39.9526, -75.1652], 11.5); + +// CARTO light tiles => crisp linework; colorized via CSS overlay (see style.css) +const tiles = L.tileLayer( + 'https://{s}.basemaps.cartocdn.com/light_all/{z}/{x}/{y}{r}.png', + { + maxZoom: 19, + attribution: '© OpenStreetMap contributors © CARTO' + } +).addTo(map); + +// Custom-positioned zoom control (bottom-right) +L.control.zoom({ position: 'bottomright' }).addTo(map); + +// Scale +L.control.scale({ metric: false, position: 'bottomright' }).addTo(map); + +// --- Performance-friendly renderers --- +const canvasRenderer = L.canvas({ padding: 0.5 }); + +// --- Utilities --- +function firstProp(obj, keys) { + for (const k of keys) { + if (obj[k] !== undefined && obj[k] !== null && obj[k] !== '') return obj[k]; + } + return undefined; +} +function numberOr(obj, keys, fallback = 0) { + const v = firstProp(obj, keys); + const n = Number(v); + return Number.isFinite(n) ? n : fallback; +} + +// --- Layers --- +const layers = { + hvi: L.geoJSON(null, { + renderer: canvasRenderer, + smoothFactor: 0.5, + interactive: false, + style: f => { + const s = numberOr(f.properties, ['hvi_score','HVI_SCORE','HVI','hvi','score','SCORE'], 0); + // blueprint-friendly fill grades + let stroke = '#bfe8ff', fill = '#113a79'; + if (s >= 4) fill = '#0e2c5b'; + else if (s >= 3) fill = '#103468'; + else if (s >= 2) fill = '#123e7b'; + else fill = '#14508f'; + return { color: stroke, weight: 0.45, fillColor: fill, fillOpacity: 0.55 }; + } + }), + + hoods: L.geoJSON(null, { + renderer: canvasRenderer, + interactive: false, + style: () => ({ color: '#ffffff', weight: 0.6, opacity: .7, fillOpacity: 0 }) + }), + + pools: L.geoJSON(null, { + renderer: canvasRenderer, + pointToLayer: (f, latlng) => + L.circleMarker(latlng, { + radius: 6, color: '#fff', weight: 1, + fillColor: '#7cc6ff', fillOpacity: 0.95 + }).bindPopup(`${firstProp(f.properties, ['NAME','POOL_NAME','SITE_NAME','name']) ?? 'Pool'}
${firstProp(f.properties, ['ADDRESS','ADDRESS1','address']) ?? ''}`) + }), + + sites: L.geoJSON(null, { + renderer: canvasRenderer, + pointToLayer: (f, latlng) => + L.circleMarker(latlng, { + radius: 6, color: '#fff', weight: 1, + fillColor: '#2dd4bf', fillOpacity: 0.95 + }).bindPopup(`${firstProp(f.properties, ['SITE_NAME','NAME','name']) ?? 'PPR Site'}
${firstProp(f.properties, ['ADDRESS','ADDRESS1','address']) ?? ''}`) + }) +}; + +// --- Data load --- +Promise.all([ + fetch('data/heat_vulnerability_ct.geojson').then(r => r.json()), + fetch('data/philadelphia_neighborhoods.geojson').then(r => r.json()), + fetch('data/ppr_swimming_pools.geojson').then(r => r.json()), + fetch('data/ppr_program_sites.geojson').then(r => r.json()) +]).then(([hvi, hoods, pools, sites]) => { + layers.hvi.addData(hvi); + layers.hoods.addData(hoods); + layers.pools.addData(pools); + layers.sites.addData(sites); +}).catch(err => console.error('Data load error:', err)); + +// --- Slide logic --- +const slides = [...document.querySelectorAll('.slide')]; +const dots = document.getElementById('dots'); +let idx = 0; + +// Dot nav +slides.forEach((_, i) => { + const b = document.createElement('button'); + b.setAttribute('aria-label', `Go to slide ${i+1}`); + b.addEventListener('click', () => goTo(i)); + dots.appendChild(b); +}); +function updateDots() { + [...dots.children].forEach((d,i) => d.classList.toggle('active', i === idx)); +} +updateDots(); + +function activateLayers(stepEl){ + const layerKey = stepEl.dataset.layer; + const fit = (stepEl.dataset.fit || '').split(',').filter(Boolean); + const center = (stepEl.dataset.center || '').split(',').map(Number); + const zoom = Number(stepEl.dataset.zoom || map.getZoom()); + + Object.values(layers).forEach(l => map.removeLayer(l)); + if (layerKey && layers[layerKey]) layers[layerKey].addTo(map); + if (fit.length) { + const group = L.featureGroup(fit.map(k => layers[k]).filter(Boolean)); + if (group.getLayers().length) map.fitBounds(group.getBounds().pad(0.15), { animate: true, duration: 1.0 }); + } else if (center.length === 2 && !Number.isNaN(center[0])) { + map.flyTo(center, zoom, { animate: true, duration: 1.0 }); + } +} + +function goTo(i){ + idx = Math.max(0, Math.min(slides.length - 1, i)); + slides.forEach((s, j) => s.classList.toggle('active', j === idx)); + slides[idx].scrollIntoView({ behavior: 'smooth', block: 'start' }); + activateLayers(slides[idx]); + updateDots(); +} + +// IntersectionObserver for visible slide +const io = new IntersectionObserver((entries) => { + entries.forEach(e => { + if (e.isIntersecting) { + const newIdx = slides.indexOf(e.target); + if (newIdx !== idx) { + idx = newIdx; + slides.forEach((s, j) => s.classList.toggle('active', j === idx)); + activateLayers(slides[idx]); + updateDots(); + } + } + }); +}, {threshold: 0.6}); +slides.forEach(s => io.observe(s)); + +// Prev/Next + keyboard +document.getElementById('prevBtn').addEventListener('click', () => goTo(idx-1)); +document.getElementById('nextBtn').addEventListener('click', () => goTo(idx+1)); +window.addEventListener('keydown', (e) => { + if (e.key === 'ArrowDown' || e.key === 'PageDown' || e.key === ' ') goTo(idx+1); + if (e.key === 'ArrowUp' || e.key === 'PageUp') goTo(idx-1); +}); + +// Sources modal +const modal = document.getElementById('sources'); +const sourcesBtn = document.getElementById('sourcesBtn'); +if (sourcesBtn) { + sourcesBtn.addEventListener('click', () => modal.showModal()); +} + +// Initial activation +activateLayers(slides[0]); diff --git a/style.css b/style.css new file mode 100644 index 00000000..9866b55c --- /dev/null +++ b/style.css @@ -0,0 +1,108 @@ +:root{ + --bg: #0b2559; + --text: #e8f0ff; + --muted: #b6c6e3; + --accent: #88d0ff; + --panel: rgba(5,18,45,.78); + --btn: #1d64c3; + --btnText: #eaf2ff; +} + +html, body { height: 100%; } +body{ + margin: 0; + color: var(--text); + font-family: ui-sans-serif, system-ui, -apple-system, Segoe UI, Roboto, Helvetica, Arial; + background: var(--bg); + overflow-x: hidden; +} + +#map{ + position: fixed; + inset: 0; + z-index: 0; +} + +.leaflet-control-container .leaflet-bottom.leaflet-right{ + z-index: 4; +} +.leaflet-control-zoom{ + box-shadow: 0 8px 24px rgba(0,0,0,.3); + border-radius: 10px; + overflow: hidden; +} + +.slides{ + position: relative; + z-index: 2; + scroll-snap-type: y mandatory; + pointer-events: none; +} + +.slide{ + min-height: 100vh; + display: grid; + place-items: center; + padding: 10vh 1rem; + scroll-snap-align: start; + opacity: 0; + transform: translateY(10px); + transition: opacity .45s ease, transform .45s ease; +} +.slide.active{ + opacity: 1; + transform: translateY(0); +} + +.content{ + max-width: 920px; + width: min(92vw, 920px); + background: rgba(24,34,56,.88); + border: 1px solid rgba(200,230,255,.22); + border-radius: 22px; + box-shadow: 0 18px 60px rgba(0,0,0,.35); + padding: clamp(1rem, 4vw, 1.6rem); + backdrop-filter: blur(2px); + pointer-events: auto; +} + +h1,h2{ margin: .2rem 0 .6rem; letter-spacing: .3px; } +.lead{ color: var(--muted); margin: 0 0 .8rem; } +.hero{ width: 100%; height: auto; border-radius: 14px; border: 1px solid rgba(255,255,255,.2); } +.credits{ color: var(--muted); font-size: .95rem; margin-top: .6rem; } + +.dots{ + position: fixed; + right: 14px; top: 50%; transform: translateY(-50%); + display: flex; flex-direction: column; gap: 8px; + z-index: 3; pointer-events: auto; +} +.dots button{ + width: 10px; height: 10px; border-radius: 50%; + border: 2px solid rgba(255,255,255,.6); background: transparent; cursor: pointer; +} +.dots button.active{ background: var(--accent); border-color: var(--accent); } + +.navbtn{ + position: fixed; bottom: 16px; + width: 42px; height: 42px; border-radius: 50%; + background: var(--btn); color: var(--btnText); border: 1px solid rgba(255,255,255,.2); + box-shadow: 0 10px 24px rgba(0,0,0,.3); + cursor: pointer; z-index: 3; pointer-events: auto; +} +#prevBtn{ left: 16px; } +#nextBtn{ right: 16px; } + +/* Buttons + modal */ +.btn{ + background: var(--btn); color: var(--btnText); + border: 1px solid rgba(255,255,255,.25); border-radius: 10px; + padding: .5rem .8rem; cursor: pointer; +} +dialog{ + color: var(--text); + border: 1px solid rgba(124,198,255,.3); + border-radius: 14px; padding: 1rem 1rem 1.2rem; + background: rgba(5,18,45,.96); +} +dialog::backdrop{ background: rgba(0,0,0,.5); }