diff --git a/app/src/components/OLExportButton.vue b/app/src/components/OLExportButton.vue index a906d59d78..0125d33be0 100644 --- a/app/src/components/OLExportButton.vue +++ b/app/src/components/OLExportButton.vue @@ -46,7 +46,7 @@
Copy and paste this code into the map layers field of the storytelling editor:
-
{{ layersConfig }} @@ -283,7 +283,7 @@ Text describing the current step of the tour and why it is interesting what the if (foundType === 'Vector') { // We can't export a function style function // only flat styles, for now we ignore this case - if (typeof l.getStyle !== 'function') { + if (typeof l.getStyle() !== 'function') { layerConfig.style = l.getStyle(); } } diff --git a/app/src/components/map/MapOverlay.vue b/app/src/components/map/MapOverlay.vue index 210a5b8b80..9b6e233e62 100644 --- a/app/src/components/map/MapOverlay.vue +++ b/app/src/components/map/MapOverlay.vue @@ -83,6 +83,43 @@ export default { border-bottom: 0; margin-left: -10px; margin-bottom: -10px; + } + .loading-indicator { + top: unset; + bottom: 0.5em !important; + left: 0.5em !important; + height: 22px; + pointer-events: none !important; + } + + .loading-indicator.hidden { + display: none; + } + + @keyframes spinner { + to { + transform: rotate(360deg); + } + } + + .spinner:after { + content: ""; + box-sizing: border-box; + position: absolute; + top: 50%; + left: 50%; + width: 18px; + height: 18px; + margin-top: -9px; + margin-left: -9px; + border-radius: 50%; + border: 5px solid rgba(180, 180, 180, 0.6); + border-top-color: rgba(0, 0, 0, 0.6); + animation: spinner 0.6s linear infinite; + } + .theme--dark .spinner:after { + border: 5px solid rgba(180, 180, 180, 0.6); + border-top-color: rgba(255, 255, 255, 0.6); }`; if ('mapContainer' in this.$parent.$refs && this.$parent.$refs.mapContainer.shadowRoot) { this.$parent.$refs.mapContainer.shadowRoot.appendChild(style); diff --git a/app/src/components/map/timeLayerUtils.js b/app/src/components/map/timeLayerUtils.js index 0700377cb2..15408d534c 100644 --- a/app/src/components/map/timeLayerUtils.js +++ b/app/src/components/map/timeLayerUtils.js @@ -11,7 +11,7 @@ import GeoTIFF from 'ol/source/GeoTIFF'; // eslint-disable-next-line import/prefer-default-export export function updateTimeLayer(layer, config, time, drawnArea, sourceGet = 'updateTime') { - if (config.protocol === 'cog' && !config.features) { + if (config.protocol === 'cog' && 'sources' in config && !config.features) { const updatedSources = config.sources.map((item) => { const url = item.url.replace(/{time}/i, config.dateFormatFunction(time)); return { url }; @@ -21,6 +21,13 @@ export function updateTimeLayer(layer, config, time, drawnArea, sourceGet = 'upd normalize: config.normalize ? config.normalize : false, interpolate: false, })); + } else if (Array.isArray(time)) { + // This case if for geotiff assets passed in the time + layer.setSource(new GeoTIFF({ + sources: time[1].map((url) => ({ url })), + normalize: config.normalize ? config.normalize : false, + interpolate: false, + })); } else { const source = layer.getSource(); const updateTimeFunction = source.get(sourceGet);