From 4aa9966f17ea18add11de1ce9175aee304ec756e Mon Sep 17 00:00:00 2001 From: ztimson Date: Sun, 21 Jun 2026 22:35:32 -0400 Subject: [PATCH] Fixed map --- client/src/components/MapView.vue | 28 ++++++++++------------------ 1 file changed, 10 insertions(+), 18 deletions(-) diff --git a/client/src/components/MapView.vue b/client/src/components/MapView.vue index 598adf9..4e6f187 100644 --- a/client/src/components/MapView.vue +++ b/client/src/components/MapView.vue @@ -61,7 +61,7 @@ const OVERLAYS = [ const activeOverlays = ref>(new Set(['rain'])) const radarTs = ref(Math.floor(Date.now() / 1000)) -const overlayLayers = new Map>() +const overlayLayers: {[key: string]: any} = {} let map: Map let stationLayer: VectorLayer @@ -95,7 +95,7 @@ function buildStationLayer(lat: number, lon: number, dark: boolean): VectorLayer const ringStroke = dark ? 'rgba(255,255,255,0.5)' : 'rgba(0,0,0,0.35)' // Rings at 50, 100, 150, 200 nm - for (const nm of [50, 100, 150, 200]) { + for (const nm of [100, 200, 300]) { const ring = new Feature(new CircleGeom(center, nm * NM)) ring.setStyle(new Style({ stroke: new Stroke({ color: ringStroke, width: 1, lineDash: [6, 4] }), @@ -115,29 +115,21 @@ function buildStationLayer(lat: number, lon: number, dark: boolean): VectorLayer })) source.addFeature(dot) - // Pulsing outer ring — just a slightly larger static ring for now - const pulse = new Feature(new Point(center)) - pulse.setStyle(new Style({ - image: new CircleStyle({ - radius: 13, - fill: new Fill({ color: 'transparent' }), - stroke: new Stroke({ color: dark ? 'rgba(255,255,255,0.4)' : 'rgba(0,0,0,0.3)', width: 1.5 }), - }), - })) - source.addFeature(pulse) - return new VectorLayer({ source, zIndex: 20 }) } function toggleOverlay(id: string) { if (activeOverlays.value.has(id)) { activeOverlays.value.delete(id) - const layer = overlayLayers.get(id) - if (layer) { map.removeLayer(layer); overlayLayers.delete(id) } + const layer = overlayLayers[id] + if (layer) { + map.removeLayer(layer); + delete overlayLayers[id]; + } } else { activeOverlays.value.add(id) const layer = buildOverlayLayer(id) - overlayLayers.set(id, layer) + overlayLayers[id] = layer map.addLayer(layer) } } @@ -157,14 +149,14 @@ onMounted(() => { for (const id of activeOverlays.value) { const layer = buildOverlayLayer(id) - overlayLayers.set(id, layer) + overlayLayers[id] = layer map.addLayer(layer) } // Refresh radar every 5 min radarInterval = setInterval(() => { radarTs.value = Math.floor(Date.now() / 1000) - const layer = overlayLayers.get('rain') + const layer = overlayLayers['rain'] if (layer) { const def = OVERLAYS.find(o => o.id === 'rain')! layer.setSource(new XYZ({ url: def.url(radarTs.value) }))