From ff32621180fe1d611bd70d3fe8bcd0c870aab121 Mon Sep 17 00:00:00 2001 From: Szymon Porwolik Date: Fri, 7 Nov 2025 17:00:01 +0100 Subject: [PATCH] Day/Night mode at map --- application/views/bandmap/list.php | 1 + application/views/interface_assets/footer.php | 1 + assets/js/sections/bandmap_list.js | 37 +++++++++++++++++++ 3 files changed, 39 insertions(+) diff --git a/application/views/bandmap/list.php b/application/views/bandmap/list.php index 938c4f0cd..9ce18b5ce 100644 --- a/application/views/bandmap/list.php +++ b/application/views/bandmap/list.php @@ -91,6 +91,7 @@ // DX Map translation strings var lang_bandmap_draw_spotters = ""; var lang_bandmap_extend_map = ""; + var lang_bandmap_show_daynight = ""; var lang_bandmap_your_qth = ""; var lang_bandmap_callsign = ""; var lang_bandmap_frequency = ""; diff --git a/application/views/interface_assets/footer.php b/application/views/interface_assets/footer.php index 472bbf6d5..d0fb2da6e 100644 --- a/application/views/interface_assets/footer.php +++ b/application/views/interface_assets/footer.php @@ -1468,6 +1468,7 @@ mymap.on('mousemove', onQsoMapMove); + diff --git a/assets/js/sections/bandmap_list.js b/assets/js/sections/bandmap_list.js index 5fd7a6d39..499de2c28 100644 --- a/assets/js/sections/bandmap_list.js +++ b/assets/js/sections/bandmap_list.js @@ -3434,6 +3434,8 @@ $(function() { let connectionLines = []; let userHomeMarker = null; let showSpotters = false; + let showDayNight = true; // Day/Night terminator enabled by default + let terminatorLayer = null; // Store terminator layer reference let hoverSpottersData = new Map(); // Store spotter data for hover let hoverSpotterMarkers = []; // Temporary markers shown on hover let hoverConnectionLines = []; // Temporary lines shown on hover @@ -3471,6 +3473,9 @@ $(function() { addUserHomeMarker(); addSpottersControl(); + + // Initialize terminator (enabled by default) + updateTerminator(); } /** @@ -3509,6 +3514,7 @@ $(function() { const div = L.DomUtil.create("div", "legend"); div.innerHTML = ' ' + lang_bandmap_draw_spotters + '
'; div.innerHTML += ' ' + lang_bandmap_extend_map + '
'; + div.innerHTML += ' ' + lang_bandmap_show_daynight + '
'; return div; }; legend.addTo(dxMap); @@ -3533,9 +3539,37 @@ $(function() { dxMap.invalidateSize(); } }); + + $('#showDayNightCheckbox').on('change', function() { + showDayNight = this.checked; + updateTerminator(); + }); }, 100); } + /** + * Update day/night terminator layer + */ + function updateTerminator() { + if (!dxMap) return; + + // Remove existing terminator layer if it exists + if (terminatorLayer) { + dxMap.removeLayer(terminatorLayer); + terminatorLayer = null; + } + + // Add new terminator layer if enabled + if (showDayNight) { + terminatorLayer = L.terminator({ + fillOpacity: 0.3, + color: '#000', + weight: 1 + }); + terminatorLayer.addTo(dxMap); + } + } + /** * Group spots by DXCC entity */ @@ -4263,6 +4297,9 @@ $(function() { dxMap.fitBounds(bounds, { padding: [50, 50], maxZoom: 8 }); } + // Update day/night terminator + updateTerminator(); + setTimeout(() => { if (dxMap) dxMap.invalidateSize(); }, 100);