fix: wildfire counter shows cluster count, cable corridor antimeridian split
Wildfire sidebar counter now shows rendered cluster markers (180) instead of raw FIRMS detections (74,901); raw total preserved in tooltip. Transpacific cable corridor rectangle split into two halves at the antimeridian so it renders over the Pacific instead of across landmasses. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Opus 4.6
parent
71fbb1cda4
commit
be452eb7d9
@@ -1035,7 +1035,10 @@ function updateMapFires(data) {
|
||||
mk.addTo(mapLayers.fires);
|
||||
});
|
||||
}
|
||||
$('#cntFires').textContent = data.total_fires || total;
|
||||
var clusterCount = mapLayers.fires.getLayers().length;
|
||||
// Show cluster count for sidebar (what's on the map), full total in tooltip
|
||||
$('#cntFires').textContent = clusterCount;
|
||||
$('#cntFires').title = (data.total_fires || total) + ' individual fire detections';
|
||||
}
|
||||
|
||||
function updateMapConvergence(data) {
|
||||
@@ -1176,17 +1179,24 @@ function updateMapInfra(data) {
|
||||
});
|
||||
// Submarine cable corridors (shaded rectangles)
|
||||
var cables = (data.cable_corridors && data.cable_corridors.corridors) || [];
|
||||
var cableStyle = { color: '#4da8ff', weight: 1, opacity: 0.2, fillColor: '#4da8ff', fillOpacity: 0.04, dashArray: '4 3', className: 'cable-corridor' };
|
||||
cables.forEach(function(c) {
|
||||
if (!c.lat_range || !c.lon_range) return;
|
||||
total++;
|
||||
var bounds = [[c.lat_range[0], c.lon_range[0]], [c.lat_range[1], c.lon_range[1]]];
|
||||
var rect = L.rectangle(bounds, {
|
||||
color: '#4da8ff', weight: 1, opacity: 0.2,
|
||||
fillColor: '#4da8ff', fillOpacity: 0.04,
|
||||
dashArray: '4 3', className: 'cable-corridor'
|
||||
});
|
||||
rect.bindTooltip('<b>' + esc(c.name.replace(/_/g, ' ')) + '</b><br><span style="opacity:0.7">' + (c.cables || []).join(', ') + '</span>', { className: 'mk-tip', sticky: true });
|
||||
rect.addTo(mapLayers.infra);
|
||||
var tip = '<b>' + esc(c.name.replace(/_/g, ' ')) + '</b><br><span style="opacity:0.7">' + (c.cables || []).join(', ') + '</span>';
|
||||
// Handle antimeridian crossing (lon_start > lon_end means wrapping past 180)
|
||||
if (c.lon_range[0] > c.lon_range[1]) {
|
||||
var r1 = L.rectangle([[c.lat_range[0], c.lon_range[0]], [c.lat_range[1], 180]], cableStyle);
|
||||
var r2 = L.rectangle([[c.lat_range[0], -180], [c.lat_range[1], c.lon_range[1]]], cableStyle);
|
||||
r1.bindTooltip(tip, { className: 'mk-tip', sticky: true });
|
||||
r2.bindTooltip(tip, { className: 'mk-tip', sticky: true });
|
||||
r1.addTo(mapLayers.infra);
|
||||
r2.addTo(mapLayers.infra);
|
||||
} else {
|
||||
var rect = L.rectangle([[c.lat_range[0], c.lon_range[0]], [c.lat_range[1], c.lon_range[1]]], cableStyle);
|
||||
rect.bindTooltip(tip, { className: 'mk-tip', sticky: true });
|
||||
rect.addTo(mapLayers.infra);
|
||||
}
|
||||
});
|
||||
$('#cntInfra').textContent = total;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user