diff --git a/frontend/src/components/MaplibreViewer.tsx b/frontend/src/components/MaplibreViewer.tsx
index a0dc81a..ae89d35 100644
--- a/frontend/src/components/MaplibreViewer.tsx
+++ b/frontend/src/components/MaplibreViewer.tsx
@@ -19,7 +19,7 @@ import {
svgTanker, svgRecon, svgPlanePink, svgPlaneAlertRed, svgPlaneDarkBlue,
svgPlaneWhiteAlert, svgHeliPink, svgHeliAlertRed, svgHeliDarkBlue,
svgHeliBlue, svgHeliLime, svgHeliWhiteAlert, svgPlaneBlack, svgHeliBlack,
- svgDrone, svgDataCenter, svgShipGray, svgShipRed, svgShipYellow,
+ svgDrone, svgDataCenter, svgRadioTower, svgShipGray, svgShipRed, svgShipYellow,
svgShipBlue, svgShipWhite, svgCarrier, svgCctv, svgWarning, svgThreat,
svgTriangleYellow, svgTriangleRed,
svgFireYellow, svgFireOrange, svgFireRed, svgFireDarkRed,
@@ -423,6 +423,7 @@ const MaplibreViewer = ({ data, activeLayers, onEntityClick, flyToLocation, sele
// Deferred icons — for off-by-default layers and rare variants
// Loaded in next frame to avoid blocking initial map render
setTimeout(() => {
+ loadImg('svgRadioTower', svgRadioTower);
loadImg('svgPlanePink', svgPlanePink);
loadImg('svgPlaneAlertRed', svgPlaneAlertRed);
loadImg('svgPlaneDarkBlue', svgPlaneDarkBlue);
@@ -1763,38 +1764,37 @@ const MaplibreViewer = ({ data, activeLayers, onEntityClick, flyToLocation, sele
)}
- {/* KiwiSDR Receivers — clustered amber dots */}
+ {/* KiwiSDR Receivers — radio tower icons */}
{kiwisdrGeoJSON && (
+ {/* Cluster glow ring */}
+ {/* Individual tower icons */}
diff --git a/frontend/src/components/map/icons/AircraftIcons.ts b/frontend/src/components/map/icons/AircraftIcons.ts
index fccba06..7d47990 100644
--- a/frontend/src/components/map/icons/AircraftIcons.ts
+++ b/frontend/src/components/map/icons/AircraftIcons.ts
@@ -33,6 +33,7 @@ export const svgShipBlue = `data:image/svg+xml;utf8,${encodeURIComponent(``)}`;
export const svgCarrier = `data:image/svg+xml;utf8,${encodeURIComponent(``)}`;
export const svgCctv = `data:image/svg+xml;utf8,${encodeURIComponent(``)}`;
+export const svgRadioTower = `data:image/svg+xml;utf8,${encodeURIComponent(``)}`;
export const svgWarning = `data:image/svg+xml;utf8,${encodeURIComponent(``)}`;
export const svgThreat = `data:image/svg+xml;utf8,${encodeURIComponent(``)}`;
export const svgTriangleYellow = `data:image/svg+xml;utf8,${encodeURIComponent(``)}`;