diff --git a/html/config.js b/html/config.js
index e0b146c..d3022c0 100644
--- a/html/config.js
+++ b/html/config.js
@@ -65,7 +65,9 @@
// bing_roads
// Default map dim state, true or false.
-//MapDim = true;
+// MapDim = true;
+// mapDimPercentage = 0.45;
+// mapContrastPercentage = 0;
// -- Marker settings -------------------------------------
diff --git a/html/defaults.js b/html/defaults.js
index 31c3c73..9224a44 100644
--- a/html/defaults.js
+++ b/html/defaults.js
@@ -52,6 +52,8 @@ let MapType_tar1090 = "carto_light_all";
// Default map dim state
let MapDim = true;
+let mapDimPercentage = 0.45;
+let mapContrastPercentage = 0;
// -- Marker settings -------------------------------------
diff --git a/html/script.js b/html/script.js
index da446f7..16bc6ca 100644
--- a/html/script.js
+++ b/html/script.js
@@ -94,6 +94,7 @@ let labelStrokeNarrow = null;
let bgFill = null;
let legSel = -1;
let geoMag = null;
+let globalCompositeTested = false;
let shareLink = '';
@@ -592,6 +593,18 @@ function initialize() {
if (tmp > 0)
tempTrailsTimeout = tmp;
}
+ if (search.has('mapDim')) {
+ let dim = parseFloat(search.get('mapDim'));
+ if (!isNaN(dim))
+ mapDimPercentage = dim;
+ }
+
+
+ if (search.has('mapContrast')) {
+ let contrast = parseFloat(search.get('mapContrast'));
+ if (!isNaN(contrast))
+ mapContrastPercentage = contrast;
+ }
if (search.has('hideButtons'))
hideButtons = true;
@@ -2980,20 +2993,27 @@ function toggleDebugTracks() {
}
function dim(evt) {
- const dim = 0.45;
- const contrast = 0;
- evt.context.globalCompositeOperation = 'multiply';
- if (evt.context.globalCompositeOperation == 'multiply') {
+ if (!globalCompositeTested) {
+ globalCompositeTested = true;
+ evt.context.globalCompositeOperation = 'multiply';
+ if (evt.context.globalCompositeOperation != 'multiply')
+ globalCompositeTested = false;
+ evt.context.globalCompositeOperation = 'overlay';
+ if (evt.context.globalCompositeOperation != 'overlay')
+ globalCompositeTested = false;
+ }
+ const dim = mapDimPercentage;
+ const contrast = mapContrastPercentage;
+ if (dim > 0.0001) {
+ evt.context.globalCompositeOperation = 'multiply';
evt.context.fillStyle = 'rgba(0,0,0,'+dim+')';
evt.context.fillRect(0, 0, evt.context.canvas.width, evt.context.canvas.height);
}
- /*
- evt.context.globalCompositeOperation = 'overlay';
- if (evt.context.globalCompositeOperation == 'overlay') {
+ if (contrast > 0.0001) {
+ evt.context.globalCompositeOperation = 'overlay';
evt.context.fillStyle = 'rgba(0,0,0,'+contrast+')';
evt.context.fillRect(0, 0, evt.context.canvas.width, evt.context.canvas.height);
}
- */
evt.context.globalCompositeOperation = 'source-over';
}