feat(storm-intel): search, pin-drop radius, more event types
Search: text filter across areaName/type/severity in sidebar Pin drop (up to 5 pins): - Crosshair button activates drop mode; next map click places a pin - 5-mile radius circle drawn on map for each pin - Sidebar shows only events within 5mi of any pin, sorted by distance - Distance label (e.g. "1.2 mi") shown on each card - Individual pin removal + clear all; + Add pin shortcut in pin strip - Map shows blank + drop-prompt until at least one pin is placed More event types: - Hook now fetches WS/BZ/WW/IS (winter storm, blizzard, ice) from IEM - SV without hailtag maps to wind; SV with hailtag maps to hail - New icons: CloudHail, CloudSnow, CloudRain per type - Type filter row added to filter bar: All/Hail/Tornado/Flood/Wind/Snow/Rain
This commit is contained in:
@@ -21,8 +21,8 @@ const WFO = 'FWD'; // Fort Worth NWS office — covers Collin County / Plan
|
||||
// Plano / Collin County bounding box
|
||||
const BBOX = { minLat: 32.85, maxLat: 33.45, minLon: -97.15, maxLon: -96.35 };
|
||||
|
||||
// Only keep storm-relevant phenomena
|
||||
const KEEP_PH = new Set(['SV', 'TO', 'FF']);
|
||||
// Storm-relevant NWS phenomena codes
|
||||
const KEEP_PH = new Set(['SV', 'TO', 'FF', 'WS', 'BZ', 'WW', 'IS']);
|
||||
|
||||
function extractRing(geom) {
|
||||
if (!geom) return null;
|
||||
@@ -70,7 +70,12 @@ function featureToEvent(feature, idx) {
|
||||
|
||||
const polygon = rawCoords.map(([lon, lat]) => [lat, lon]); // → Leaflet [lat,lon]
|
||||
|
||||
const type = ph === 'TO' ? 'tornado' : ph === 'FF' ? 'flood' : 'hail';
|
||||
const type = ph === 'TO' ? 'tornado'
|
||||
: ph === 'FF' ? 'flood'
|
||||
: ph === 'WS' || ph === 'BZ' ? 'snow'
|
||||
: ph === 'WW' || ph === 'IS' ? 'ice'
|
||||
: hailIn !== null ? 'hail'
|
||||
: 'wind';
|
||||
|
||||
const hailIn = p.hailtag ? parseFloat(p.hailtag) : null;
|
||||
const severity = ph === 'TO' ? 'severe'
|
||||
|
||||
Reference in New Issue
Block a user