fix: KiwiSDR clusters now use tower icon instead of circles

Replaced the circle cluster layer with a symbol layer using the same
radio tower icon. Clusters show the tower with a count label below.
No more orange blobs at any zoom level.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

Former-commit-id: 0b1cb0d2a082dde4dcefe12518cdfb28b492ab89
This commit is contained in:
anoracleofra-code
2026-03-13 16:39:41 -06:00
parent eaa4210959
commit ef61f528f9
+17 -15
View File
@@ -1764,27 +1764,29 @@ const MaplibreViewer = ({ data, activeLayers, onEntityClick, flyToLocation, sele
</Source>
)}
{/* KiwiSDR Receivers — radio tower icons */}
{/* KiwiSDR Receivers — radio tower icons everywhere */}
{kiwisdrGeoJSON && (
<Source id="kiwisdr" type="geojson" data={kiwisdrGeoJSON as any} cluster={true} clusterRadius={50} clusterMaxZoom={14}>
{/* Cluster glow ring */}
{/* Clusters — tower icon with count */}
<Layer
id="kiwisdr-clusters"
type="circle"
filter={['has', 'point_count']}
paint={{
'circle-color': 'rgba(245, 158, 11, 0.15)',
'circle-radius': ['step', ['get', 'point_count'], 18, 10, 22, 50, 28, 200, 34],
'circle-stroke-width': 1.5,
'circle-stroke-color': 'rgba(245, 158, 11, 0.5)'
}}
/>
<Layer
id="kiwisdr-cluster-count"
type="symbol"
filter={['has', 'point_count']}
layout={{ 'text-field': '{point_count_abbreviated}', 'text-size': 11, 'text-allow-overlap': true, 'text-font': ['Noto Sans Bold'] }}
paint={{ 'text-color': '#f59e0b', 'text-halo-color': '#000000', 'text-halo-width': 1.5 }}
layout={{
'icon-image': 'svgRadioTower',
'icon-size': 0.9,
'icon-allow-overlap': true,
'text-field': '{point_count_abbreviated}',
'text-size': 10,
'text-offset': [0, 1.4],
'text-allow-overlap': true,
'text-font': ['Noto Sans Bold'],
}}
paint={{
'text-color': '#f59e0b',
'text-halo-color': '#000000',
'text-halo-width': 1.5,
}}
/>
{/* Individual tower icons */}
<Layer