diff --git a/package-lock.json b/package-lock.json index ec5dac8c..29111313 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "mmgis", - "version": "2.11.0", + "version": "3.0.0", "lockfileVersion": 2, "requires": true, "packages": { "": { "name": "mmgis", - "version": "2.11.0", + "version": "3.0.0", "dependencies": { "@babel/runtime": "^7.23.1", "@eonasdan/tempus-dominus": "^6.2.6", diff --git a/src/essence/Basics/Map_/Map_.js b/src/essence/Basics/Map_/Map_.js index 5e5e7dd4..1ec1da67 100644 --- a/src/essence/Basics/Map_/Map_.js +++ b/src/essence/Basics/Map_/Map_.js @@ -396,6 +396,21 @@ let Map_ = { } }, refreshLayer: async function (layerObj, cb, skipOrderedBringToFront) { + // If it's a dynamic extent layer, just re-call its function + if ( + L_._onSpecificLayerToggleSubscriptions[ + `dynamicextent_${layerObj.name}` + ] != null + ) { + if (L_.layers.on[layerObj.name]) + L_._onSpecificLayerToggleSubscriptions[ + `dynamicextent_${layerObj.name}` + ].func(layerObj.name) + + if (typeof cb === 'function') cb() + return true + } + // We need to find and remove all points on the map that belong to the layer // Not sure if there is a cleaner way of doing this for (var i = L_._layersOrdered.length - 1; i >= 0; i--) { @@ -406,11 +421,13 @@ let Map_ = { ) { if (L_._layersBeingMade[layerObj.name] !== true) { const wasOn = L_.layers.on[layerObj.name] + if (wasOn) L_.toggleLayer( L_.layers.data[layerObj.name], skipOrderedBringToFront ) // turn off if on + // fake on L_.layers.on[layerObj.name] = true await makeLayer(layerObj, true, null) @@ -801,11 +818,11 @@ async function makeVectorLayer( layerObj.controlled !== true ) L_.subscribeTimeChange( - `dynamicgeodataset_${layerObj.name}`, + `dynamicextent_${layerObj.name}`, f ) L_.subscribeOnSpecificLayerToggle( - `dynamicgeodataset_${layerObj.name}`, + `dynamicextent_${layerObj.name}`, layerObj.name, f )