Skip to content

Commit

Permalink
Map / WMS dimension saved in map
Browse files Browse the repository at this point in the history
Save current map dimension value in the map context to be able to open a
map on specific date.

Follow up of #6820
"
  • Loading branch information
fxprunayre committed Sep 14, 2023
1 parent 05dbac8 commit 41556b8
Show file tree
Hide file tree
Showing 2 changed files with 60 additions and 28 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -295,13 +295,30 @@
function initDimension(dimension) {
var dimensionConfig = scope.layer.get(dimension);
if (dimensionConfig) {
var idx = dimensionConfig.values.length - 1;
for (var i = 0; i < dimensionConfig.values.length; i++) {
if (dimensionConfig.values[i] === dimensionConfig.default) {
var currentLayerValue = scope.layer.getSource().getParams()[
dimension.toUpperCase()
];
var idx = undefined;
var defaultValueIdx = dimensionConfig.values.length - 1;
for (i = 0; i < dimensionConfig.values.length; i++) {
if (dimensionConfig.values[i] === currentLayerValue) {
idx = i;
break;
}
if (dimensionConfig.values[i] === dimensionConfig.default) {
defaultValueIdx = i;
}
}
if (currentLayerValue && !idx) {
console.warn(
"Dimension value " +
currentLayerValue +
" not found in dimension list of values. Using default or latest value: " +
dimensionConfig.values[defaultValueIdx]
);
}
idx = idx || defaultValueIdx;

scope.dimensions[dimension] = {
current: dimensionConfig.values[idx],
idx: idx,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -94,6 +94,7 @@
// eg. name="{type=arcgis,name=0,1,2,3,4}"
var reT = /type=([^,}|^]*)/;
var reL = /name=([^}]*)\}?\s*$/;
var dimensions = ["TIME", "ELEVATION"];

/**
* @ngdoc method
Expand Down Expand Up @@ -407,6 +408,13 @@
layer.metadataUuid = extension.uuid;
}

dimensions.forEach(function (dimension) {
if (extension[dimension.toLowerCase() + "DimensionValue"]) {
layer[dimension.toLowerCase() + "DimensionValue"] =
extension[dimension.toLowerCase() + "DimensionValue"];
}
});

var layerIndex = map.getLayers().push(loadingLayer) - 1;
var p = self.createLayer(layer, map, undefined, i, currentStyle);
loadingLayer.set("index", layerIndex);
Expand Down Expand Up @@ -698,6 +706,13 @@
extension.processInputs = processInputs;
}

dimensions.forEach(function (dimension) {
if (source.getParams()[dimension]) {
extension[dimension.toLowerCase() + "DimensionValue"] =
source.getParams()[dimension];
}
});

layerParams.extension = {
name: "Extension",
any: JSON.stringify(extension)
Expand Down Expand Up @@ -776,6 +791,29 @@
}
var createOnly = angular.isDefined(bgIdx) || angular.isDefined(index);

function setMapLayerProperties(olL, layer) {
olL.set("group", layer.group);
olL.set("groupcombo", layer.groupcombo);
olL.setOpacity(layer.opacity);
olL.setVisible(!layer.hidden);
var title = layer.title ? layer.title : olL.get("label");
olL.set("title", title || "");
olL.set("label", title || "");
olL.set("metadataUuid", layer.metadataUuid || "");
if (bgIdx) {
olL.set("bgIdx", bgIdx);
} else if (index) {
olL.set("tree_index", index);
}
var params = olL.getSource().getParams() || {};
dimensions.forEach(function (dimension) {
if (layer[dimension.toLowerCase() + "DimensionValue"]) {
params[dimension] = layer[dimension.toLowerCase() + "DimensionValue"];
olL.getSource().updateParams(params);
}
});
}

if (layer.name && layer.name.match(reT)) {
var type = reT.exec(layer.name)[1];
var name = reL.exec(layer.name)[1];
Expand Down Expand Up @@ -813,22 +851,7 @@

return promise
.then(function (olL) {
olL.set("group", layer.group);
olL.set("groupcombo", layer.groupcombo);
olL.setOpacity(layer.opacity);
olL.setVisible(!layer.hidden);
if (layer.title) {
olL.set("title", layer.title);
olL.set("label", layer.title);
}
if (layer.metadataUuid) {
olL.set("metadataUuid", layer.metadataUuid);
}
if (bgIdx) {
olL.set("bgIdx", bgIdx);
} else if (index) {
olL.set("tree_index", index);
}
setMapLayerProperties(olL, layer);
return olL;
})
.catch(function () {});
Expand All @@ -854,15 +877,7 @@
layer.group = decodeURIComponent(escape(layer.group));
}
} catch (e) {}
olL.set("group", layer.group);
olL.set("groupcombo", layer.groupcombo);
olL.set("tree_index", index);
olL.setOpacity(layer.opacity);
olL.setVisible(!layer.hidden);
var title = layer.title ? layer.title : olL.get("label");
olL.set("title", title || "");
olL.set("label", title || "");
olL.set("metadataUuid", layer.metadataUuid || "");
setMapLayerProperties(olL, layer);
$rootScope.$broadcast("layerAddedFromContext", olL);
return olL;
}
Expand Down

0 comments on commit 41556b8

Please sign in to comment.