diff --git a/drb-c2-core/app/internal/intelligence.py b/drb-c2-core/app/internal/intelligence.py index 251d67c..f07bb72 100644 --- a/drb-c2-core/app/internal/intelligence.py +++ b/drb-c2-core/app/internal/intelligence.py @@ -52,7 +52,7 @@ Talkgroup: {talkgroup_name} {ten_codes_block}{vocabulary_block}{transcript_block}""" # Nominatim viewbox half-width in degrees (~11 km at mid-latitudes) -_GEO_DELTA = 0.1 +_GEO_DELTA = 0.5 # ~55 km bias radius; viewbox used as preference, not hard bound # node_id → state abbreviation/name from one-time reverse geocode _node_state_cache: dict[str, str] = {} @@ -231,7 +231,7 @@ async def _geocode_location( "format": "json", "limit": 1, "viewbox": viewbox, - "bounded": 1, + "bounded": 0, # viewbox biases results but doesn't hard-clip them } headers = {"User-Agent": "DRB-Dispatch/1.0 (public-safety radio monitor)"} try: diff --git a/drb-frontend/components/MapView.tsx b/drb-frontend/components/MapView.tsx index 8518395..f0bd722 100644 --- a/drb-frontend/components/MapView.tsx +++ b/drb-frontend/components/MapView.tsx @@ -65,7 +65,7 @@ function incidentIcon(type: string | null): L.DivIcon { function nodeFanIcon(members: NodeRecord[]): L.DivIcon { const n = members.length; const CARD = 13; - const STEP = 7; + const STEP = 5; const totalW = CARD + (n - 1) * STEP; const maxRot = Math.min(28, n * 7); const cards = members @@ -251,7 +251,7 @@ function FanIncidentLayer({ ); const incById = useMemo( - () => new Map(plotted.map((p) => [p.id, p.inc])), + () => new Map(plotted.map((p: { id: string; lat: number; lng: number; inc: IncidentRecord }) => [p.id, p.inc])), [plotted] ); @@ -454,14 +454,14 @@ export default function MapView({ nodes, activeCalls, incidents = [], lastUpdate )} - {/* ── Legend ──────────────────────────────────────────────────────────── */} -