Day/Night mode at map

This commit is contained in:
Szymon Porwolik
2025-11-07 17:00:01 +01:00
parent 3723dd91e0
commit ff32621180
3 changed files with 39 additions and 0 deletions

View File

@@ -91,6 +91,7 @@
// DX Map translation strings
var lang_bandmap_draw_spotters = "<?= __("Draw Spotters"); ?>";
var lang_bandmap_extend_map = "<?= __("Extend Map"); ?>";
var lang_bandmap_show_daynight = "<?= __("Show Day/Night"); ?>";
var lang_bandmap_your_qth = "<?= __("Your QTH"); ?>";
var lang_bandmap_callsign = "<?= __("Callsign"); ?>";
var lang_bandmap_frequency = "<?= __("Frequency"); ?>";

View File

@@ -1468,6 +1468,7 @@ mymap.on('mousemove', onQsoMapMove);
<script type="text/javascript" src="<?php echo base_url(); ?>assets/js/cat.js?v=<?php echo time(); ?>"></script>
<script type="text/javascript" src="<?php echo base_url(); ?>assets/js/leaflet/leaflet.geodesic.js?v=<?php echo time(); ?>"></script>
<script type="text/javascript" src="<?php echo base_url(); ?>assets/js/leaflet.polylineDecorator.js?v=<?php echo time(); ?>"></script>
<script type="text/javascript" src="<?php echo base_url(); ?>assets/js/leaflet/L.Terminator.js?v=<?php echo time(); ?>"></script>
<script type="text/javascript" src="<?php echo base_url(); ?>assets/js/sections/bandmap_list.js?v=<?php echo time(); ?>"></script>
<?php } ?>

View File

@@ -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 = '<input type="checkbox" id="toggleSpotters" style="outline: none;"><span> ' + lang_bandmap_draw_spotters + '</span><br>';
div.innerHTML += '<input type="checkbox" id="extendMapCheckbox" style="outline: none;"><span> ' + lang_bandmap_extend_map + '</span><br>';
div.innerHTML += '<input type="checkbox" id="showDayNightCheckbox" checked style="outline: none;"><span> ' + lang_bandmap_show_daynight + '</span><br>';
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);