@opengeoweb/webmap-react 12.12.0 → 12.13.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/index.esm.js +194 -87
- package/package.json +4 -4
- package/src/lib/components/MapDimensionSelect/MapDimensionSelect.d.ts +1 -0
- package/src/lib/components/OpenLayers/layers/FeatureLayer.d.ts +2 -0
- package/src/lib/components/OpenLayers/layers/OpenLayersFeatureLayer.d.ts +2 -0
- package/src/lib/components/OpenLayers/layers/TimeAwareEDRLocationLayer.d.ts +1 -0
- package/src/lib/components/OpenLayers/utils/coverageCollectionToFeatureCollection.d.ts +1 -1
- package/src/lib/edr-layer-api/colormaps/edrOlLegendUtils.d.ts +3 -1
package/index.esm.js
CHANGED
|
@@ -3953,10 +3953,40 @@ var MapDimensionSelect = function MapDimensionSelect(_ref2) {
|
|
|
3953
3953
|
dimensionName = _ref2.dimensionName,
|
|
3954
3954
|
handleDimensionValueChanged = _ref2.handleDimensionValueChanged,
|
|
3955
3955
|
handleSyncChanged = _ref2.handleSyncChanged,
|
|
3956
|
-
layerDimension = _ref2.layerDimension
|
|
3956
|
+
layerDimension = _ref2.layerDimension,
|
|
3957
|
+
layerName = _ref2.layerName;
|
|
3957
3958
|
var _useWebmapReactTransl = useWebmapReactTranslation(),
|
|
3958
3959
|
t = _useWebmapReactTransl.t;
|
|
3959
3960
|
var wmLayer = webmapUtils.getWMLayerById(layerId);
|
|
3961
|
+
var _React$useState = React.useState(layerName),
|
|
3962
|
+
_React$useState2 = _slicedToArray(_React$useState, 2),
|
|
3963
|
+
layerTitle = _React$useState2[0],
|
|
3964
|
+
setLayerTitle = _React$useState2[1];
|
|
3965
|
+
React.useEffect(function () {
|
|
3966
|
+
// if the layername changes, the title needs to be updated
|
|
3967
|
+
var updateTitle = /*#__PURE__*/function () {
|
|
3968
|
+
var _ref3 = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee() {
|
|
3969
|
+
return _regeneratorRuntime().wrap(function _callee$(_context) {
|
|
3970
|
+
while (1) switch (_context.prev = _context.next) {
|
|
3971
|
+
case 0:
|
|
3972
|
+
_context.next = 2;
|
|
3973
|
+
return wmLayer.parseLayer();
|
|
3974
|
+
case 2:
|
|
3975
|
+
setLayerTitle(wmLayer.title || layerName);
|
|
3976
|
+
case 3:
|
|
3977
|
+
case "end":
|
|
3978
|
+
return _context.stop();
|
|
3979
|
+
}
|
|
3980
|
+
}, _callee);
|
|
3981
|
+
}));
|
|
3982
|
+
return function updateTitle() {
|
|
3983
|
+
return _ref3.apply(this, arguments);
|
|
3984
|
+
};
|
|
3985
|
+
}();
|
|
3986
|
+
if (wmLayer) {
|
|
3987
|
+
void updateTitle();
|
|
3988
|
+
}
|
|
3989
|
+
}, [layerName, wmLayer]);
|
|
3960
3990
|
var dimConfig = dimensionConfig(t).find(function (cnf) {
|
|
3961
3991
|
return cnf.name === dimensionName;
|
|
3962
3992
|
});
|
|
@@ -3967,7 +3997,6 @@ var MapDimensionSelect = function MapDimensionSelect(_ref2) {
|
|
|
3967
3997
|
if (!wmsDimension) {
|
|
3968
3998
|
return null;
|
|
3969
3999
|
}
|
|
3970
|
-
var layerTitle = wmLayer.title;
|
|
3971
4000
|
var marks = marksByDimension(t, wmsDimension);
|
|
3972
4001
|
var isLayerDimensionSynced = layerDimension.synced !== undefined && layerDimension.synced === true;
|
|
3973
4002
|
var tooltipTitle = isLayerDimensionSynced ? t('webmap-react-click-disconnect') : t('webmap-react-click-connect');
|
|
@@ -5250,47 +5279,53 @@ var TimeawareImageSourceWMSLayer = function TimeawareImageSourceWMSLayer(_ref) {
|
|
|
5250
5279
|
return _regeneratorRuntime().wrap(function _callee$(_context) {
|
|
5251
5280
|
while (1) switch (_context.prev = _context.next) {
|
|
5252
5281
|
case 0:
|
|
5253
|
-
if (wmLayer && visible !== false) {
|
|
5254
|
-
|
|
5255
|
-
|
|
5256
|
-
|
|
5257
|
-
|
|
5258
|
-
|
|
5259
|
-
|
|
5260
|
-
|
|
5261
|
-
|
|
5262
|
-
|
|
5282
|
+
if (!(wmLayer && visible !== false)) {
|
|
5283
|
+
_context.next = 11;
|
|
5284
|
+
break;
|
|
5285
|
+
}
|
|
5286
|
+
wmTimeDim = wmLayer === null || wmLayer === void 0 || (_wmLayer$dimensions = wmLayer.dimensions) === null || _wmLayer$dimensions === void 0 ? void 0 : _wmLayer$dimensions.find(function (dimension) {
|
|
5287
|
+
return dimension.name === 'time';
|
|
5288
|
+
}); // Set time dimension current value based on layerprops dimension value
|
|
5289
|
+
layerPropsTimeDim = dimensions === null || dimensions === void 0 ? void 0 : dimensions.find(function (dimension) {
|
|
5290
|
+
return dimension.name === 'time';
|
|
5291
|
+
});
|
|
5292
|
+
timeValueToInitialize = (layerPropsTimeDim === null || layerPropsTimeDim === void 0 ? void 0 : layerPropsTimeDim.currentValue) || (wmTimeDim === null || wmTimeDim === void 0 ? void 0 : wmTimeDim.getValue());
|
|
5293
|
+
wmTimeDim && timeValueToInitialize && wmTimeDim.setValue(timeValueToInitialize);
|
|
5294
|
+
refTimeDim = wmLayer === null || wmLayer === void 0 || (_wmLayer$dimensions2 = wmLayer.dimensions) === null || _wmLayer$dimensions2 === void 0 ? void 0 : _wmLayer$dimensions2.find(function (dimension) {
|
|
5295
|
+
return dimension.name === 'reference_time';
|
|
5296
|
+
}); // Update reference time dimension value, this will change the time values to prefetch. Depends on model run.
|
|
5297
|
+
if (refTimeDim && wmTimeDim) {
|
|
5298
|
+
layerPropsRefTimeDim = dimensions === null || dimensions === void 0 ? void 0 : dimensions.find(function (dimension) {
|
|
5263
5299
|
return dimension.name === 'reference_time';
|
|
5264
|
-
}); //
|
|
5265
|
-
|
|
5266
|
-
|
|
5267
|
-
|
|
5268
|
-
|
|
5269
|
-
refTimeDim && (layerPropsRefTimeDim === null || layerPropsRefTimeDim === void 0 ? void 0 : layerPropsRefTimeDim.currentValue) && refTimeDim.setValue(layerPropsRefTimeDim === null || layerPropsRefTimeDim === void 0 ? void 0 : layerPropsRefTimeDim.currentValue);
|
|
5270
|
-
refTimeToFind = wmTimeDim.getValue();
|
|
5271
|
-
firstRefTime = refTimeDim === null || refTimeDim === void 0 ? void 0 : refTimeDim.getClosestValue(refTimeToFind, true);
|
|
5272
|
-
firstRefTime && refTimeDim && wmTimeDim && wmTimeDim.setTimeValuesForReferenceTime(firstRefTime, refTimeDim);
|
|
5273
|
-
}
|
|
5274
|
-
// Make sure style is set in wmLayer as well
|
|
5275
|
-
styleName && wmLayer.setStyle(styleName);
|
|
5276
|
-
onInitializeLayer && onInitializeLayer({
|
|
5277
|
-
layerId: wmLayer.id,
|
|
5278
|
-
style: wmLayer.currentStyle,
|
|
5279
|
-
dimensions: wmLayer.dimensions.map(function (dimension) {
|
|
5280
|
-
return {
|
|
5281
|
-
name: dimension.name,
|
|
5282
|
-
units: dimension.units,
|
|
5283
|
-
currentValue: dimension.currentValue,
|
|
5284
|
-
maxValue: dimension.getLastValue(),
|
|
5285
|
-
minValue: dimension.getFirstValue(),
|
|
5286
|
-
synced: dimension.synced,
|
|
5287
|
-
values: dimension.values,
|
|
5288
|
-
unitSymbol: dimension.unitSymbol
|
|
5289
|
-
};
|
|
5290
|
-
})
|
|
5291
|
-
});
|
|
5300
|
+
}); // Set reftime dimension current value based on layerprops dimension value
|
|
5301
|
+
refTimeDim && (layerPropsRefTimeDim === null || layerPropsRefTimeDim === void 0 ? void 0 : layerPropsRefTimeDim.currentValue) && refTimeDim.setValue(layerPropsRefTimeDim === null || layerPropsRefTimeDim === void 0 ? void 0 : layerPropsRefTimeDim.currentValue);
|
|
5302
|
+
refTimeToFind = wmTimeDim.getValue();
|
|
5303
|
+
firstRefTime = refTimeDim === null || refTimeDim === void 0 ? void 0 : refTimeDim.getClosestValue(refTimeToFind, true);
|
|
5304
|
+
firstRefTime && refTimeDim && wmTimeDim && wmTimeDim.setTimeValuesForReferenceTime(firstRefTime, refTimeDim);
|
|
5292
5305
|
}
|
|
5293
|
-
|
|
5306
|
+
// Make sure style is set in wmLayer as well
|
|
5307
|
+
styleName && wmLayer.setStyle(styleName);
|
|
5308
|
+
// Make sure we have the latest dimension values before initializing
|
|
5309
|
+
_context.next = 10;
|
|
5310
|
+
return wmLayer.parseLayer();
|
|
5311
|
+
case 10:
|
|
5312
|
+
onInitializeLayer && onInitializeLayer({
|
|
5313
|
+
layerId: wmLayer.id,
|
|
5314
|
+
style: wmLayer.currentStyle,
|
|
5315
|
+
dimensions: wmLayer.dimensions.map(function (dimension) {
|
|
5316
|
+
return {
|
|
5317
|
+
name: dimension.name,
|
|
5318
|
+
units: dimension.units,
|
|
5319
|
+
currentValue: dimension.currentValue,
|
|
5320
|
+
maxValue: dimension.getLastValue(),
|
|
5321
|
+
minValue: dimension.getFirstValue(),
|
|
5322
|
+
synced: dimension.synced,
|
|
5323
|
+
values: dimension.values,
|
|
5324
|
+
unitSymbol: dimension.unitSymbol
|
|
5325
|
+
};
|
|
5326
|
+
})
|
|
5327
|
+
});
|
|
5328
|
+
case 11:
|
|
5294
5329
|
case "end":
|
|
5295
5330
|
return _context.stop();
|
|
5296
5331
|
}
|
|
@@ -5555,7 +5590,9 @@ var XYZLayer = function XYZLayer(_ref) {
|
|
|
5555
5590
|
var layer = new TileLayer({
|
|
5556
5591
|
source: new XYZ({
|
|
5557
5592
|
url: urlTemplate,
|
|
5558
|
-
projection: tileProjectionCode
|
|
5593
|
+
projection: tileProjectionCode,
|
|
5594
|
+
minZoom: layerOptions === null || layerOptions === void 0 ? void 0 : layerOptions.minZoom,
|
|
5595
|
+
maxZoom: layerOptions === null || layerOptions === void 0 ? void 0 : layerOptions.maxZoom
|
|
5559
5596
|
})
|
|
5560
5597
|
});
|
|
5561
5598
|
map.addLayer(layer);
|
|
@@ -5564,7 +5601,7 @@ var XYZLayer = function XYZLayer(_ref) {
|
|
|
5564
5601
|
map.removeLayer(layer);
|
|
5565
5602
|
setLayer(undefined);
|
|
5566
5603
|
};
|
|
5567
|
-
}, [map, tileProjectionCode, urlTemplate]);
|
|
5604
|
+
}, [map, tileProjectionCode, urlTemplate, layerOptions === null || layerOptions === void 0 ? void 0 : layerOptions.minZoom, layerOptions === null || layerOptions === void 0 ? void 0 : layerOptions.maxZoom]);
|
|
5568
5605
|
useEffect(function () {
|
|
5569
5606
|
if (!layerOptions || !layer) {
|
|
5570
5607
|
return;
|
|
@@ -6620,23 +6657,6 @@ var colorMaps = {
|
|
|
6620
6657
|
temperatureLegendColorsCWK: temperatureLegendColorsCWK
|
|
6621
6658
|
};
|
|
6622
6659
|
|
|
6623
|
-
/* *
|
|
6624
|
-
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
6625
|
-
* you may not use this file except in compliance with the License.
|
|
6626
|
-
* You may obtain a copy of the License at
|
|
6627
|
-
*
|
|
6628
|
-
* http://www.apache.org/licenses/LICENSE-2.0
|
|
6629
|
-
*
|
|
6630
|
-
* Unless required by applicable law or agreed to in writing, software
|
|
6631
|
-
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
6632
|
-
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
6633
|
-
* See the License for the specific language governing permissions and
|
|
6634
|
-
* limitations under the License.
|
|
6635
|
-
*
|
|
6636
|
-
* Copyright 2025 - Koninklijk Nederlands Meteorologisch Instituut (KNMI)
|
|
6637
|
-
* Copyright 2025 - Finnish Meteorological Institute (FMI)
|
|
6638
|
-
* Copyright 2025 - The Norwegian Meteorological Institute (MET Norway)
|
|
6639
|
-
* */
|
|
6640
6660
|
var makeLegendFromColorMap = function makeLegendFromColorMap(props) {
|
|
6641
6661
|
var numClasses = props.colors.length;
|
|
6642
6662
|
var minVal = props.min;
|
|
@@ -6684,10 +6704,61 @@ var getLegendClass = function getLegendClass(edrColorLegend, value) {
|
|
|
6684
6704
|
return value >= entry.min && value < entry.max;
|
|
6685
6705
|
});
|
|
6686
6706
|
};
|
|
6687
|
-
var
|
|
6707
|
+
var getOffsetValues = function getOffsetValues(factor) {
|
|
6708
|
+
return [[0, -20], [0, 0], [0, 20], [-30 * factor, -20], [-30 * factor, 0], [-30 * factor, 20], [30 * factor, -20], [30 * factor, 0], [30 * factor, 20], [60 * factor, -20], [60 * factor, 0], [60 * factor, 20], [-60 * factor, -20], [-60 * factor, 0], [-60 * factor, 20]];
|
|
6709
|
+
};
|
|
6710
|
+
var makeFeatureStyleMultiParam = function makeFeatureStyleMultiParam(feature) {
|
|
6688
6711
|
var _feature$getPropertie = feature.getProperties(),
|
|
6689
|
-
|
|
6690
|
-
var
|
|
6712
|
+
values = _feature$getPropertie.values;
|
|
6713
|
+
var paramValues = Object.values(values);
|
|
6714
|
+
// Determine offset between columns (long strings need more space)
|
|
6715
|
+
var maxLength = Math.max.apply(Math, _toConsumableArray(paramValues.map(function (el) {
|
|
6716
|
+
return el !== undefined ? el.toString().length : 1;
|
|
6717
|
+
})));
|
|
6718
|
+
var factor = maxLength > 5 ? 1.4 : 1;
|
|
6719
|
+
var offsetValues = getOffsetValues(factor);
|
|
6720
|
+
// Don't allow showing more than 15 params
|
|
6721
|
+
var params = paramValues.slice(0, 15);
|
|
6722
|
+
return params.map(function (paramVal, index) {
|
|
6723
|
+
return new Style({
|
|
6724
|
+
text: new Text({
|
|
6725
|
+
text: paramVal ? paramVal.toString() : '-',
|
|
6726
|
+
offsetX: offsetValues[index][0],
|
|
6727
|
+
offsetY: offsetValues[index][1],
|
|
6728
|
+
scale: 1.0,
|
|
6729
|
+
stroke: new Stroke({
|
|
6730
|
+
color: '#ffffffff',
|
|
6731
|
+
width: 1
|
|
6732
|
+
}),
|
|
6733
|
+
fill: new Fill({
|
|
6734
|
+
color: '#000000'
|
|
6735
|
+
}),
|
|
6736
|
+
font: 'bold 11px Arial',
|
|
6737
|
+
padding: [-5, -5, -5, -5]
|
|
6738
|
+
})
|
|
6739
|
+
});
|
|
6740
|
+
});
|
|
6741
|
+
};
|
|
6742
|
+
var makeFeatureStyleMultiParamLoading = function makeFeatureStyleMultiParamLoading() {
|
|
6743
|
+
return new Style({
|
|
6744
|
+
text: new Text({
|
|
6745
|
+
scale: 1.2,
|
|
6746
|
+
stroke: new Stroke({
|
|
6747
|
+
color: '#ffffffff',
|
|
6748
|
+
width: 3
|
|
6749
|
+
}),
|
|
6750
|
+
fill: new Fill({
|
|
6751
|
+
color: '#000000'
|
|
6752
|
+
}),
|
|
6753
|
+
text: '...'
|
|
6754
|
+
})
|
|
6755
|
+
});
|
|
6756
|
+
};
|
|
6757
|
+
var makeFeatureStyleDisc = function makeFeatureStyleDisc(feature, legend) {
|
|
6758
|
+
var _feature$getPropertie2 = feature.getProperties(),
|
|
6759
|
+
values = _feature$getPropertie2.values;
|
|
6760
|
+
var textValue = Object.values(values)[0];
|
|
6761
|
+
var legendEntry = getLegendClass(legend, textValue);
|
|
6691
6762
|
return new Style({
|
|
6692
6763
|
image: legendEntry === null || legendEntry === void 0 ? void 0 : legendEntry.image,
|
|
6693
6764
|
text: new Text({
|
|
@@ -6696,13 +6767,14 @@ var makeFeatureStyleDisc = function makeFeatureStyleDisc(feature, legend) {
|
|
|
6696
6767
|
fill: new Fill({
|
|
6697
6768
|
color: '#000000'
|
|
6698
6769
|
}),
|
|
6699
|
-
text:
|
|
6770
|
+
text: "".concat(textValue)
|
|
6700
6771
|
})
|
|
6701
6772
|
});
|
|
6702
6773
|
};
|
|
6703
6774
|
var makeFeatureStyleLoading = function makeFeatureStyleLoading(feature) {
|
|
6704
|
-
var _feature$
|
|
6705
|
-
|
|
6775
|
+
var _feature$getPropertie3 = feature.getProperties(),
|
|
6776
|
+
values = _feature$getPropertie3.values;
|
|
6777
|
+
var textValue = Object.values(values)[0];
|
|
6706
6778
|
return new Style({
|
|
6707
6779
|
image: new Circle({
|
|
6708
6780
|
radius: 14,
|
|
@@ -6720,7 +6792,7 @@ var makeFeatureStyleLoading = function makeFeatureStyleLoading(feature) {
|
|
|
6720
6792
|
fill: new Fill({
|
|
6721
6793
|
color: '#303030'
|
|
6722
6794
|
}),
|
|
6723
|
-
text:
|
|
6795
|
+
text: textValue
|
|
6724
6796
|
})
|
|
6725
6797
|
});
|
|
6726
6798
|
};
|
|
@@ -6737,7 +6809,12 @@ var defaultStyle$1 = function defaultStyle(feature) {
|
|
|
6737
6809
|
* @param styleName Strings like temperatureLegendColorsWoW:0,20 will get the legend temperatureLegendColorsWoW with a range from 0,20. This makes it flexible to adjust the colorrange via the stylename.
|
|
6738
6810
|
* @returns StyleLike
|
|
6739
6811
|
*/
|
|
6740
|
-
var styleNameToStyleLikeNotMemoed = function styleNameToStyleLikeNotMemoed(styleName) {
|
|
6812
|
+
var styleNameToStyleLikeNotMemoed = function styleNameToStyleLikeNotMemoed(styleName, multiParam) {
|
|
6813
|
+
if (multiParam) {
|
|
6814
|
+
return function (feature) {
|
|
6815
|
+
return makeFeatureStyleMultiParam(feature);
|
|
6816
|
+
};
|
|
6817
|
+
}
|
|
6741
6818
|
var minMaxPartFromNumericIndex = styleName.indexOf(':');
|
|
6742
6819
|
var legMinMax = minMaxPartFromNumericIndex > 0 ? styleName.substring(minMaxPartFromNumericIndex + 1).split(',').map(function (stringValue) {
|
|
6743
6820
|
return parseFloat(stringValue);
|
|
@@ -14893,7 +14970,11 @@ var FeatureLayer = function FeatureLayer(_ref) {
|
|
|
14893
14970
|
hoverSelect = _ref.hoverSelect,
|
|
14894
14971
|
clickOnFeature = _ref.clickOnFeature,
|
|
14895
14972
|
testId = _ref.testId,
|
|
14896
|
-
opacity = _ref.opacity
|
|
14973
|
+
opacity = _ref.opacity,
|
|
14974
|
+
_ref$declutter = _ref.declutter,
|
|
14975
|
+
declutter = _ref$declutter === void 0 ? false : _ref$declutter,
|
|
14976
|
+
_ref$visible = _ref.visible,
|
|
14977
|
+
visible = _ref$visible === void 0 ? true : _ref$visible;
|
|
14897
14978
|
var _useContext = useContext(MapContext),
|
|
14898
14979
|
map = _useContext.map;
|
|
14899
14980
|
var _useState = useState(),
|
|
@@ -14902,7 +14983,7 @@ var FeatureLayer = function FeatureLayer(_ref) {
|
|
|
14902
14983
|
setSource = _useState2[1];
|
|
14903
14984
|
var layerRef = useRef();
|
|
14904
14985
|
useEffect(function () {
|
|
14905
|
-
if (!map) {
|
|
14986
|
+
if (!map || visible === false) {
|
|
14906
14987
|
return function () {};
|
|
14907
14988
|
}
|
|
14908
14989
|
var source = new VectorSource({
|
|
@@ -14915,7 +14996,9 @@ var FeatureLayer = function FeatureLayer(_ref) {
|
|
|
14915
14996
|
properties: {
|
|
14916
14997
|
testId: testId
|
|
14917
14998
|
},
|
|
14918
|
-
opacity: opacity
|
|
14999
|
+
opacity: opacity,
|
|
15000
|
+
declutter: declutter,
|
|
15001
|
+
visible: visible
|
|
14919
15002
|
});
|
|
14920
15003
|
layerRef.current = layer;
|
|
14921
15004
|
layer.set('layerType', 'FeatureLayer');
|
|
@@ -14928,7 +15011,7 @@ var FeatureLayer = function FeatureLayer(_ref) {
|
|
|
14928
15011
|
};
|
|
14929
15012
|
// NOTE: style should not be part of this effect, as it changes always, causing the layer to be add/removed continuousely.
|
|
14930
15013
|
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
14931
|
-
}, [map, zIndex, testId]);
|
|
15014
|
+
}, [map, zIndex, testId, visible]);
|
|
14932
15015
|
useEffect(function () {
|
|
14933
15016
|
// Handle style function:
|
|
14934
15017
|
if (layerRef.current && style) {
|
|
@@ -14943,6 +15026,11 @@ var FeatureLayer = function FeatureLayer(_ref) {
|
|
|
14943
15026
|
(_layerRef$current2 = layerRef.current) === null || _layerRef$current2 === void 0 || _layerRef$current2.setOpacity(opacity);
|
|
14944
15027
|
}
|
|
14945
15028
|
}, [opacity]);
|
|
15029
|
+
// Layer visible useEffect
|
|
15030
|
+
useEffect(function () {
|
|
15031
|
+
var _layerRef$current3;
|
|
15032
|
+
(_layerRef$current3 = layerRef.current) === null || _layerRef$current3 === void 0 || _layerRef$current3.setVisible(!(visible === false));
|
|
15033
|
+
}, [visible]);
|
|
14946
15034
|
useEffect(function () {
|
|
14947
15035
|
if (!source) {
|
|
14948
15036
|
return;
|
|
@@ -14953,7 +15041,7 @@ var FeatureLayer = function FeatureLayer(_ref) {
|
|
|
14953
15041
|
}
|
|
14954
15042
|
}, [source, features]);
|
|
14955
15043
|
useEffect(function () {
|
|
14956
|
-
if (!map || !source || !hoverSelect || !hoverSelect.active) {
|
|
15044
|
+
if (!map || !source || !hoverSelect || !hoverSelect.active || visible === false) {
|
|
14957
15045
|
return function () {};
|
|
14958
15046
|
}
|
|
14959
15047
|
var previousHover = [];
|
|
@@ -14989,9 +15077,9 @@ var FeatureLayer = function FeatureLayer(_ref) {
|
|
|
14989
15077
|
unByKey(eventKey);
|
|
14990
15078
|
hoverSelect.onHover && hoverSelect.onHover(undefined);
|
|
14991
15079
|
};
|
|
14992
|
-
}, [map, source, hoverSelect]);
|
|
15080
|
+
}, [map, source, hoverSelect, visible]);
|
|
14993
15081
|
useEffect(function () {
|
|
14994
|
-
if (!map || !source || !clickOnFeature) {
|
|
15082
|
+
if (!map || !source || !clickOnFeature || visible === false) {
|
|
14995
15083
|
return function () {};
|
|
14996
15084
|
}
|
|
14997
15085
|
var clickFunction = function clickFunction(evt) {
|
|
@@ -15007,7 +15095,7 @@ var FeatureLayer = function FeatureLayer(_ref) {
|
|
|
15007
15095
|
return function () {
|
|
15008
15096
|
unByKey(eventKey);
|
|
15009
15097
|
};
|
|
15010
|
-
}, [map, source, clickOnFeature]);
|
|
15098
|
+
}, [map, source, clickOnFeature, visible]);
|
|
15011
15099
|
return null;
|
|
15012
15100
|
};
|
|
15013
15101
|
|
|
@@ -15028,7 +15116,11 @@ var OpenLayersFeatureLayer = function OpenLayersFeatureLayer(_ref) {
|
|
|
15028
15116
|
hoverSelect = _ref.hoverSelect,
|
|
15029
15117
|
clickOnFeature = _ref.clickOnFeature,
|
|
15030
15118
|
testId = _ref.testId,
|
|
15031
|
-
opacity = _ref.opacity
|
|
15119
|
+
opacity = _ref.opacity,
|
|
15120
|
+
_ref$declutter = _ref.declutter,
|
|
15121
|
+
declutter = _ref$declutter === void 0 ? false : _ref$declutter,
|
|
15122
|
+
_ref$visible = _ref.visible,
|
|
15123
|
+
visible = _ref$visible === void 0 ? true : _ref$visible;
|
|
15032
15124
|
var projection = useProjection();
|
|
15033
15125
|
var featureCollectionRef = useRef();
|
|
15034
15126
|
var features = useRef([]);
|
|
@@ -15054,7 +15146,9 @@ var OpenLayersFeatureLayer = function OpenLayersFeatureLayer(_ref) {
|
|
|
15054
15146
|
hoverSelect: hoverSelect,
|
|
15055
15147
|
clickOnFeature: clickOnFeature,
|
|
15056
15148
|
testId: testId,
|
|
15057
|
-
opacity: opacity
|
|
15149
|
+
opacity: opacity,
|
|
15150
|
+
declutter: declutter,
|
|
15151
|
+
visible: visible
|
|
15058
15152
|
});
|
|
15059
15153
|
};
|
|
15060
15154
|
|
|
@@ -15075,14 +15169,17 @@ var OpenLayersFeatureLayer = function OpenLayersFeatureLayer(_ref) {
|
|
|
15075
15169
|
* Copyright 2025 - Finnish Meteorological Institute (FMI)
|
|
15076
15170
|
* Copyright 2025 - The Norwegian Meteorological Institute (MET Norway)
|
|
15077
15171
|
* */
|
|
15078
|
-
var coverageCollectionToFeatureCollection = function coverageCollectionToFeatureCollection(cov,
|
|
15172
|
+
var coverageCollectionToFeatureCollection = function coverageCollectionToFeatureCollection(cov, parameterNames) {
|
|
15079
15173
|
var _cov$coverages;
|
|
15080
15174
|
var latLonValues = (cov === null || cov === void 0 || (_cov$coverages = cov.coverages) === null || _cov$coverages === void 0 ? void 0 : _cov$coverages.map(function (coverage) {
|
|
15081
|
-
var
|
|
15175
|
+
var paramValues = parameterNames.split(',').reduce(function (obj, parameterName) {
|
|
15176
|
+
var _coverage$ranges$para;
|
|
15177
|
+
return _objectSpread2(_objectSpread2({}, obj), {}, _defineProperty({}, parameterName, (_coverage$ranges$para = coverage.ranges[parameterName]) === null || _coverage$ranges$para === void 0 ? void 0 : _coverage$ranges$para.values[0]));
|
|
15178
|
+
}, {});
|
|
15082
15179
|
return {
|
|
15083
15180
|
type: 'Feature',
|
|
15084
15181
|
properties: {
|
|
15085
|
-
|
|
15182
|
+
values: _objectSpread2({}, paramValues)
|
|
15086
15183
|
},
|
|
15087
15184
|
geometry: {
|
|
15088
15185
|
coordinates: [coverage.domain.axes.x.values[0], coverage.domain.axes.y.values[0]],
|
|
@@ -15106,6 +15203,8 @@ var TimeAwareEDRLocationLayer = function TimeAwareEDRLocationLayer(_ref) {
|
|
|
15106
15203
|
opacity = _ref.opacity,
|
|
15107
15204
|
dimensions = _ref.dimensions,
|
|
15108
15205
|
layerId = _ref.layerId,
|
|
15206
|
+
_ref$visible = _ref.visible,
|
|
15207
|
+
visible = _ref$visible === void 0 ? true : _ref$visible,
|
|
15109
15208
|
onInitializeLayer = _ref.onInitializeLayer;
|
|
15110
15209
|
// get a wmLayer instance
|
|
15111
15210
|
var wmLayer = useGetEDRLayerInstance(edrBaseUrl, parameter, layerId, onInitializeLayer);
|
|
@@ -15128,11 +15227,14 @@ var TimeAwareEDRLocationLayer = function TimeAwareEDRLocationLayer(_ref) {
|
|
|
15128
15227
|
}
|
|
15129
15228
|
setFeaturePoints(featurePoint);
|
|
15130
15229
|
}, [parameter, result.data]);
|
|
15230
|
+
var loadingStyle = parameter !== null && parameter !== void 0 && parameter.includes(',') ? makeFeatureStyleMultiParamLoading : makeFeatureStyleLoading;
|
|
15131
15231
|
return jsx(OpenLayersFeatureLayer, {
|
|
15132
15232
|
featureCollection: featurePoints,
|
|
15133
|
-
style: result.isFetching ?
|
|
15233
|
+
style: result.isFetching ? loadingStyle : style,
|
|
15134
15234
|
opacity: opacity,
|
|
15135
|
-
zIndex: zIndex
|
|
15235
|
+
zIndex: zIndex,
|
|
15236
|
+
declutter: true,
|
|
15237
|
+
visible: visible
|
|
15136
15238
|
});
|
|
15137
15239
|
};
|
|
15138
15240
|
|
|
@@ -15182,7 +15284,8 @@ var OpenLayersLayer = function OpenLayersLayer(layerProps) {
|
|
|
15182
15284
|
});
|
|
15183
15285
|
case LayerType.edrLayer:
|
|
15184
15286
|
{
|
|
15185
|
-
var
|
|
15287
|
+
var multiParam = name === null || name === void 0 ? void 0 : name.includes(',');
|
|
15288
|
+
var styleLike = style !== undefined ? styleNameToStyleLike(style, multiParam) : undefined;
|
|
15186
15289
|
return jsx(TimeAwareEDRLocationLayer, {
|
|
15187
15290
|
layerId: id,
|
|
15188
15291
|
edrBaseUrl: service,
|
|
@@ -15191,7 +15294,8 @@ var OpenLayersLayer = function OpenLayersLayer(layerProps) {
|
|
|
15191
15294
|
zIndex: layerOptions.zIndex,
|
|
15192
15295
|
style: styleLike,
|
|
15193
15296
|
opacity: layerOptions.opacity,
|
|
15194
|
-
onInitializeLayer: onInitializeLayer
|
|
15297
|
+
onInitializeLayer: onInitializeLayer,
|
|
15298
|
+
visible: !!(enabled !== false)
|
|
15195
15299
|
});
|
|
15196
15300
|
}
|
|
15197
15301
|
}
|
|
@@ -15234,7 +15338,10 @@ var OpenLayersLayer = function OpenLayersLayer(layerProps) {
|
|
|
15234
15338
|
}
|
|
15235
15339
|
return jsx(XYZLayer, {
|
|
15236
15340
|
urlTemplate: urlTemplate,
|
|
15237
|
-
layerOptions: layerOptions,
|
|
15341
|
+
layerOptions: _objectSpread2(_objectSpread2({}, layerOptions), {}, {
|
|
15342
|
+
minZoom: tileSettingForCRS === null || tileSettingForCRS === void 0 ? void 0 : tileSettingForCRS.minLevel,
|
|
15343
|
+
maxZoom: tileSettingForCRS === null || tileSettingForCRS === void 0 ? void 0 : tileSettingForCRS.maxLevel
|
|
15344
|
+
}),
|
|
15238
15345
|
layerProps: _objectSpread2(_objectSpread2({}, layerProps), {}, {
|
|
15239
15346
|
enabled: true
|
|
15240
15347
|
}),
|
|
@@ -16232,4 +16339,4 @@ var getLayerUpdateInfo = function getLayerUpdateInfo(wmLayer, mapId) {
|
|
|
16232
16339
|
return updateObject;
|
|
16233
16340
|
};
|
|
16234
16341
|
|
|
16235
|
-
export { BaseLayerType, ClickOnMapTool, DRAWMODE, DefaultBaseLayers, DimensionSelectButton, DimensionSelectDialog, DimensionSelectSlider, EditModeButton as EditModeButtonField, FEATURE_FILL, FEATURE_STROKE, FEATURE_STROKE_EDIT, FEATURE_VERTICES_EDIT_HANDLES, FEATURE_VERTICE_HANDLE_IMAGE, FEATURE_VERTICE_IMAGE, FeatureLayer, FeatureLayers, GeoJSONTextField, ICON_LOCATIONMARKER, ICON_LOCATIONMARKER_MODIFY, IntersectionSelect, LayerInfoButton, LayerInfoDialog, LayerInfoLegend, LayerInfoList, LayerInfoText, Legend, LegendButton, LegendDialog, LegendLayout, MapContext, MapControlButton, MapControls, MapDimensionSelect, MapFeatureClass, MapTime, MapWarningProperties, NEW_FEATURE_CREATED, NEW_LINESTRING_CREATED, NEW_POINT_CREATED, OpenLayersFeatureLayer, OpenLayersGetFeatureInfo, OpenLayersLayer, OpenLayersMapDraw, OpenLayersMapView, OpenLayersZoomControl, Proj4js, SelectField, StoryLayoutGrid, TimeAwareEDRLocationLayer, TimeContext, TimeawareImageSource, TimeawareImageSourceWMSLayer, WEBMAP_REACT_NAMESPACE, WMSLayer, WMTSLayer, XYZLayer, ZoomControls, addFeatureProperties, addGeoJSONProperties, addSelectionTypeToGeoJSON, basicExampleDrawOptions, basicExampleMultipleShapeDrawOptions, basicExampleMultipleShapeWithValuesDrawOptions, clearImageCacheForAllMaps, colorMaps, createIconStyle, createInterSections, currentlySupportedDrawModes, defaultBox, defaultDelete, defaultGeoJSONStyleProperties, defaultIntersectionStyleProperties, defaultLayers, defaultModes, defaultPoint, defaultPolygon, defaultTimeFormat, dimensionConfig, drawPolyStoryStyles, drawStyles, emptyGeoJSON, endToolExampleConfig, exampleIntersectionOptions, exampleIntersectionWithShapeOptions, exampleIntersections, exampleIntersectionsMultiDrawTool, fakeEdrLayerApiHandlers, featureBox, featureMultiPoint, featurePoint, featurePolygon, fillOptions, firSelectionType, formatTime, genericOpenLayersFeatureStyle, geowebColorToOpenLayersColor, getDimensionIcon, getDimensionLabel, getDimensionValue, getDimensionsList, getDoubleControlToolIcon, getFeatureCollection, getFeatureExtent, getFirTitle, getGeoJSONPropertyValue, getGeoJson, getIcon, getIntersectionToolIcon, getIsInsideAcceptanceTime, getLastEmptyFeatureIndex, getLayerBbox, getLayerStyles, getLayerUpdateInfo, getLegendClass, getProj4, getTimeDimension, getToolIcon, initializeOpenLayersProjections, inlineFeatureStyle, intersectPointGeoJSONS, intersectPolygonGeoJSONS, intersectionFeatureBE, intersectionFeatureNL, isGeoJSONFeatureCreatedByTool, isGeoJSONGeometryEmpty, isPointFeatureCollection, lineString, lineStringCollection, makeFeatureStyleDisc, makeFeatureStyleLoading, makeLegendFromColorMap, makeView, marksByDimension, modifyStyles, moveFeature, multiLineStringLabelStyle, multiPolygonLabelStyle, opacityOptions, openLayersGetMapImageStore, precipitationMMLegendColorsWoW, projectorCache, publicLayers, publicServices, rewindGeometry, selectPreferredWMSProjection, setMapCenter, setViewFromExtent, setViewFromFeature, simpleBoxGeoJSON, simpleBoxGeoJSONWrongOrder, simpleFlightRouteLineStringGeoJSON, simpleFlightRoutePointsGeoJSON, simpleGeometryCollectionGeoJSON, simpleLineStringGeoJSON, simpleMultiPolygon, simplePointsGeojson, simplePolygonGeoJSON, simpleSmallLineStringGeoJSON, startToolExampleConfig, strokeWidthOptions, styleNameToStyleLike, temperatureLegendColorsCWK, temperatureLegendColorsWoW, textLabelStyle, textStyle, textStyleWithMargin, updateEditModeButtonsWithFir, useAnimationForLayer, useEDRLayerCollection, useEDRLayerCollectionCube, useGeoJSON, useGetEDRLayerInstance, useGetWMLayerInstance, useGetWMSLayerStyleList, useIconStyle, useMapDrawTool, useProjection, useQueryGetWMSGetCapabilities, useQueryGetWMSLayer, useQueryGetWMSLayers, useQueryGetWMSLayersTree, useQueryGetWMSServiceInfo, useQueryWMTSGetCapabilities, useSetIntervalWhenVisible, useViewFromLayer, viewUtils, webmapReactTranslations };
|
|
16342
|
+
export { BaseLayerType, ClickOnMapTool, DRAWMODE, DefaultBaseLayers, DimensionSelectButton, DimensionSelectDialog, DimensionSelectSlider, EditModeButton as EditModeButtonField, FEATURE_FILL, FEATURE_STROKE, FEATURE_STROKE_EDIT, FEATURE_VERTICES_EDIT_HANDLES, FEATURE_VERTICE_HANDLE_IMAGE, FEATURE_VERTICE_IMAGE, FeatureLayer, FeatureLayers, GeoJSONTextField, ICON_LOCATIONMARKER, ICON_LOCATIONMARKER_MODIFY, IntersectionSelect, LayerInfoButton, LayerInfoDialog, LayerInfoLegend, LayerInfoList, LayerInfoText, Legend, LegendButton, LegendDialog, LegendLayout, MapContext, MapControlButton, MapControls, MapDimensionSelect, MapFeatureClass, MapTime, MapWarningProperties, NEW_FEATURE_CREATED, NEW_LINESTRING_CREATED, NEW_POINT_CREATED, OpenLayersFeatureLayer, OpenLayersGetFeatureInfo, OpenLayersLayer, OpenLayersMapDraw, OpenLayersMapView, OpenLayersZoomControl, Proj4js, SelectField, StoryLayoutGrid, TimeAwareEDRLocationLayer, TimeContext, TimeawareImageSource, TimeawareImageSourceWMSLayer, WEBMAP_REACT_NAMESPACE, WMSLayer, WMTSLayer, XYZLayer, ZoomControls, addFeatureProperties, addGeoJSONProperties, addSelectionTypeToGeoJSON, basicExampleDrawOptions, basicExampleMultipleShapeDrawOptions, basicExampleMultipleShapeWithValuesDrawOptions, clearImageCacheForAllMaps, colorMaps, createIconStyle, createInterSections, currentlySupportedDrawModes, defaultBox, defaultDelete, defaultGeoJSONStyleProperties, defaultIntersectionStyleProperties, defaultLayers, defaultModes, defaultPoint, defaultPolygon, defaultTimeFormat, dimensionConfig, drawPolyStoryStyles, drawStyles, emptyGeoJSON, endToolExampleConfig, exampleIntersectionOptions, exampleIntersectionWithShapeOptions, exampleIntersections, exampleIntersectionsMultiDrawTool, fakeEdrLayerApiHandlers, featureBox, featureMultiPoint, featurePoint, featurePolygon, fillOptions, firSelectionType, formatTime, genericOpenLayersFeatureStyle, geowebColorToOpenLayersColor, getDimensionIcon, getDimensionLabel, getDimensionValue, getDimensionsList, getDoubleControlToolIcon, getFeatureCollection, getFeatureExtent, getFirTitle, getGeoJSONPropertyValue, getGeoJson, getIcon, getIntersectionToolIcon, getIsInsideAcceptanceTime, getLastEmptyFeatureIndex, getLayerBbox, getLayerStyles, getLayerUpdateInfo, getLegendClass, getProj4, getTimeDimension, getToolIcon, initializeOpenLayersProjections, inlineFeatureStyle, intersectPointGeoJSONS, intersectPolygonGeoJSONS, intersectionFeatureBE, intersectionFeatureNL, isGeoJSONFeatureCreatedByTool, isGeoJSONGeometryEmpty, isPointFeatureCollection, lineString, lineStringCollection, makeFeatureStyleDisc, makeFeatureStyleLoading, makeFeatureStyleMultiParam, makeFeatureStyleMultiParamLoading, makeLegendFromColorMap, makeView, marksByDimension, modifyStyles, moveFeature, multiLineStringLabelStyle, multiPolygonLabelStyle, opacityOptions, openLayersGetMapImageStore, precipitationMMLegendColorsWoW, projectorCache, publicLayers, publicServices, rewindGeometry, selectPreferredWMSProjection, setMapCenter, setViewFromExtent, setViewFromFeature, simpleBoxGeoJSON, simpleBoxGeoJSONWrongOrder, simpleFlightRouteLineStringGeoJSON, simpleFlightRoutePointsGeoJSON, simpleGeometryCollectionGeoJSON, simpleLineStringGeoJSON, simpleMultiPolygon, simplePointsGeojson, simplePolygonGeoJSON, simpleSmallLineStringGeoJSON, startToolExampleConfig, strokeWidthOptions, styleNameToStyleLike, temperatureLegendColorsCWK, temperatureLegendColorsWoW, textLabelStyle, textStyle, textStyleWithMargin, updateEditModeButtonsWithFir, useAnimationForLayer, useEDRLayerCollection, useEDRLayerCollectionCube, useGeoJSON, useGetEDRLayerInstance, useGetWMLayerInstance, useGetWMSLayerStyleList, useIconStyle, useMapDrawTool, useProjection, useQueryGetWMSGetCapabilities, useQueryGetWMSLayer, useQueryGetWMSLayers, useQueryGetWMSLayersTree, useQueryGetWMSServiceInfo, useQueryWMTSGetCapabilities, useSetIntervalWhenVisible, useViewFromLayer, viewUtils, webmapReactTranslations };
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@opengeoweb/webmap-react",
|
|
3
|
-
"version": "12.
|
|
3
|
+
"version": "12.13.0",
|
|
4
4
|
"description": "GeoWeb react wrapper for webmap",
|
|
5
5
|
"license": "Apache-2.0",
|
|
6
6
|
"repository": {
|
|
@@ -8,9 +8,9 @@
|
|
|
8
8
|
"url": "git@gitlab.com:opengeoweb/opengeoweb.git"
|
|
9
9
|
},
|
|
10
10
|
"dependencies": {
|
|
11
|
-
"@opengeoweb/webmap": "12.
|
|
12
|
-
"@opengeoweb/theme": "12.
|
|
13
|
-
"@opengeoweb/shared": "12.
|
|
11
|
+
"@opengeoweb/webmap": "12.13.0",
|
|
12
|
+
"@opengeoweb/theme": "12.13.0",
|
|
13
|
+
"@opengeoweb/shared": "12.13.0",
|
|
14
14
|
"lodash": "^4.17.21",
|
|
15
15
|
"ol": "^10.4.0",
|
|
16
16
|
"proj4": "^2.9.2",
|
|
@@ -6,6 +6,7 @@ export interface MapDimensionSelectProps {
|
|
|
6
6
|
handleDimensionValueChanged: (layerId: string, dimensionName: string, dimensionValue: string) => void;
|
|
7
7
|
handleSyncChanged: (layerId: string, dimensionName: string, dimensionValue: string, synced: boolean) => void;
|
|
8
8
|
layerDimension: Dimension;
|
|
9
|
+
layerName: string;
|
|
9
10
|
}
|
|
10
11
|
declare const MapDimensionSelect: React.FC<MapDimensionSelectProps>;
|
|
11
12
|
export default MapDimensionSelect;
|
|
@@ -9,6 +9,7 @@ interface TimeAwareEDRLocationLayerProps extends OpenLayersFeatureLayerProps {
|
|
|
9
9
|
dimensions?: Dimension[];
|
|
10
10
|
onInitializeLayer?: (payload: OnInitializeLayerProps) => void;
|
|
11
11
|
opacity?: number;
|
|
12
|
+
visible?: boolean;
|
|
12
13
|
}
|
|
13
14
|
export declare const TimeAwareEDRLocationLayer: React.FC<TimeAwareEDRLocationLayerProps>;
|
|
14
15
|
export {};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
import { CoverageCollection } from '@opengeoweb/shared';
|
|
2
|
-
export declare const coverageCollectionToFeatureCollection: (cov: CoverageCollection | undefined,
|
|
2
|
+
export declare const coverageCollectionToFeatureCollection: (cov: CoverageCollection | undefined, parameterNames: string) => GeoJSON.FeatureCollection;
|
|
@@ -16,6 +16,8 @@ export declare const makeLegendFromColorMap: (props: {
|
|
|
16
16
|
max: number;
|
|
17
17
|
}) => EdrOlColorLegend;
|
|
18
18
|
export declare const getLegendClass: (edrColorLegend: EdrOlColorLegend, value: number, clip?: boolean) => EdrMapLegendEntry | undefined;
|
|
19
|
+
export declare const makeFeatureStyleMultiParam: (feature: FeatureLike) => Style[];
|
|
20
|
+
export declare const makeFeatureStyleMultiParamLoading: () => Style;
|
|
19
21
|
export declare const makeFeatureStyleDisc: (feature: FeatureLike, legend: EdrOlColorLegend) => Style;
|
|
20
22
|
export declare const makeFeatureStyleLoading: (feature: FeatureLike) => Style;
|
|
21
|
-
export declare const styleNameToStyleLike: ((styleName: string) => ((feature: FeatureLike) => Style)) & import("lodash").MemoizedFunction;
|
|
23
|
+
export declare const styleNameToStyleLike: ((styleName: string, multiParam?: boolean) => ((feature: FeatureLike) => Style | Style[])) & import("lodash").MemoizedFunction;
|