@opengeoweb/core 19.3.0 → 19.5.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/dist/index.esm.js +236 -88
- package/dist/src/lib/components/ComponentsLookUp/componentsLookUp.d.ts +9 -0
- package/dist/src/lib/components/LayerManager/LayerContainerRow/LayerRow/Menubutton/MenuButton.d.ts +4 -0
- package/dist/src/lib/components/MapViewConnect/olMapUtils.d.ts +7 -0
- package/package.json +1 -2
package/dist/index.esm.js
CHANGED
|
@@ -9,7 +9,7 @@ import { mapSelectors, layerSelectors, layerActions, layerTypes, filterLayers, m
|
|
|
9
9
|
import i18n from 'i18next';
|
|
10
10
|
import { useTranslation, Trans, I18nextProvider } from 'react-i18next';
|
|
11
11
|
import { TIME_SLIDER_NAMESPACE, timesliderTranslations, defaultTimeSpan, AnimationLengthButton, AnimationLength, AutoUpdateButton, BackwardForwardStepButton, NowButton, handleSetNowEvent, PlayButton, defaultTimeStep, SpeedButton, TimeSpanButton, secondsPerPxFromCanvasWidth, getNewCenterOfFixedPointZoom, TimeStepButton, OptionsMenuButton, TimeSliderButtons, TimeSliderCurrentTimeBox, TimeSliderLegend, onsetNewDateDebounced, getFilteredTime, defaultSecondsPerPx, moveSelectedTimePx, TimeSlider } from '@opengeoweb/time-slider';
|
|
12
|
-
import { webmapReactTranslations, WEBMAP_REACT_NAMESPACE, webmapTranslations, WEBMAP_NAMESPACE, openLayersGetMapImageStore, LayerInfoButton, useGetWMLayerInstance, useEDRGetCollectionDetails,
|
|
12
|
+
import { webmapReactTranslations, WEBMAP_REACT_NAMESPACE, webmapTranslations, WEBMAP_NAMESPACE, openLayersGetMapImageStore, LayerInfoButton, useStacCollection, useGetWMLayerInstance, useEDRGetCollectionDetails, getStacCollectionStyles, resolvePreferredStyleName, defaultEdrStyles, LayerInfoDialog, MapControlButton, MapDimensionSelect, dimensionConfig, DimensionSelectDialog, DimensionSelectButton, Clock, LegendDialog, LegendButton, MapContext, emptyGeoJSON, MapFeatureClass, setMapCenter, makeTimeList, getIsInsideAcceptanceTime, OpenLayersLayer, isGeoJSONGeometryEmpty, OpenLayersFeatureLayer, OpenLayersMapDraw, MapMeasure, useSetIntervalWhenVisible, TimeContext, OpenLayersMapView, WMSLayer, genericOpenLayersFeatureStyle, OpenLayersGetFeatureInfo, MapControls, OpenLayersZoomControl, getLayerUpdateInfo, publicLayers } from '@opengeoweb/webmap-react';
|
|
13
13
|
import { Cached, Add, MapAdd, CollapseSmall, CollapseMedium, CollapseLarge, CollapseWindow, ExpandWindow, LayersAdd, CloudLoading, ColumnCollapsed, ColumnCollapse, DragHandle as DragHandle$1, None, FastForward, AutoUpdateActive, Both, Delete, Visibility, VisibilityOff, Copy, ZoomToLayer, Overlayers, WorldMapProjection, Layers, Search, Exclamation, MyLocation, Airplane, Region, Pinned, Close, ExitDomain, LocationInfo, Measure, Options, Info, ThemeWrapper, lightTheme, FlagBritain, FlagNetherlands, FlagFinland, FlagNorway } from '@opengeoweb/theme';
|
|
14
14
|
import { ReactSortable } from 'react-sortablejs';
|
|
15
15
|
import Sortable from 'sortablejs';
|
|
@@ -23,7 +23,6 @@ import { bbox } from '@turf/turf';
|
|
|
23
23
|
import proj4 from 'proj4';
|
|
24
24
|
import { getIntersection } from 'ol/extent';
|
|
25
25
|
import GeoJSON from 'ol/format/GeoJSON';
|
|
26
|
-
import axios from 'axios';
|
|
27
26
|
import { ImageWMS } from 'ol/source';
|
|
28
27
|
import DOMPurify from 'dompurify';
|
|
29
28
|
import { snackbarTypes, snackbarActions, SnackbarWrapperConnect } from '@opengeoweb/snackbar';
|
|
@@ -74,6 +73,10 @@ var en = {
|
|
|
74
73
|
"layermanager-layer-duplicate-to-other-maps": "Copy layer to other maps",
|
|
75
74
|
"layermanager-layer-remove-from-other-maps": "Remove layer from other maps",
|
|
76
75
|
"layermanager-layer-zoom-to-extent": "Zoom to layer",
|
|
76
|
+
"layermanager-stac-layout-title": "Raster layout",
|
|
77
|
+
"layermanager-stac-layout-auto": "Automatic",
|
|
78
|
+
"layermanager-stac-layout-temporal": "One image per time",
|
|
79
|
+
"layermanager-stac-layout-spatial-tiles": "Spatially tiled images",
|
|
77
80
|
"layermanager-options": "Options",
|
|
78
81
|
"layermanager-baselayers-tooltip": "Add base layers",
|
|
79
82
|
"layermanager-header-button-small": "small",
|
|
@@ -171,6 +174,10 @@ var fi = {
|
|
|
171
174
|
"layermanager-layer-duplicate-to-other-maps": "Kopioi karttataso muihin karttoihin",
|
|
172
175
|
"layermanager-layer-remove-from-other-maps": "Poista karttataso muista kartoista",
|
|
173
176
|
"layermanager-layer-zoom-to-extent": "Zoomaa karttatasoon",
|
|
177
|
+
"layermanager-stac-layout-title": "Rasteriaineiston rakenne",
|
|
178
|
+
"layermanager-stac-layout-auto": "Automaattinen",
|
|
179
|
+
"layermanager-stac-layout-temporal": "Yksi kuva ajanhetkeä kohti",
|
|
180
|
+
"layermanager-stac-layout-spatial-tiles": "Alueellisesti tiilitetyt kuvat",
|
|
174
181
|
"layermanager-options": "Valinnat",
|
|
175
182
|
"layermanager-baselayers-tooltip": "Lisää pohjakartta",
|
|
176
183
|
"layermanager-header-button-small": "Pieni",
|
|
@@ -259,6 +266,10 @@ var no = {
|
|
|
259
266
|
"layermanager-layer-duplicate-to-other-maps": "Kopier lag til andre kart",
|
|
260
267
|
"layermanager-layer-remove-from-other-maps": "Fjern lag fra andre kart",
|
|
261
268
|
"layermanager-layer-zoom-to-extent": "Zoom til lag",
|
|
269
|
+
"layermanager-stac-layout-title": "Rasteroppsett",
|
|
270
|
+
"layermanager-stac-layout-auto": "Automatisk",
|
|
271
|
+
"layermanager-stac-layout-temporal": "Ett bilde per tidspunkt",
|
|
272
|
+
"layermanager-stac-layout-spatial-tiles": "Romlig flislagte bilder",
|
|
262
273
|
"layermanager-options": "Laginnstillinger",
|
|
263
274
|
"layermanager-baselayers-tooltip": "Legg til basislag",
|
|
264
275
|
"layermanager-header-button-small": "liten",
|
|
@@ -348,6 +359,10 @@ var nl = {
|
|
|
348
359
|
"layermanager-layer-duplicate-to-other-maps": "Kopieer laag naar andere kaarten",
|
|
349
360
|
"layermanager-layer-remove-from-other-maps": "Verwijder laag van andere kaarten",
|
|
350
361
|
"layermanager-layer-zoom-to-extent": "Zoom naar laag",
|
|
362
|
+
"layermanager-stac-layout-title": "Rasterindeling",
|
|
363
|
+
"layermanager-stac-layout-auto": "Automatisch",
|
|
364
|
+
"layermanager-stac-layout-temporal": "Eén afbeelding per tijdstip",
|
|
365
|
+
"layermanager-stac-layout-spatial-tiles": "Ruimtelijk opgedeelde afbeeldingen",
|
|
351
366
|
"layermanager-options": "Opties",
|
|
352
367
|
"layermanager-baselayers-tooltip": "Basislagen toevoegen",
|
|
353
368
|
"layermanager-header-button-small": "klein",
|
|
@@ -2095,7 +2110,7 @@ var DragHandle = function DragHandle(_ref) {
|
|
|
2095
2110
|
var nonEmptyTooltipTitle = tooltipTitle != null ? tooltipTitle : t('layermanager-layer-drag');
|
|
2096
2111
|
var usedTooltipTitle = hideTooltip ? '' : nonEmptyTooltipTitle;
|
|
2097
2112
|
return jsx(CustomIconButton, {
|
|
2098
|
-
className:
|
|
2113
|
+
className: isDisabled ? undefined : 'handle',
|
|
2099
2114
|
"data-testid": "dragHandle",
|
|
2100
2115
|
disableTouchRipple: true,
|
|
2101
2116
|
disabled: isDisabled,
|
|
@@ -3374,7 +3389,10 @@ var LayerManagerMenuButton = function LayerManagerMenuButton(_ref) {
|
|
|
3374
3389
|
_ref$canZoomToLayerEx = _ref.canZoomToLayerExtent,
|
|
3375
3390
|
canZoomToLayerExtent = _ref$canZoomToLayerEx === void 0 ? true : _ref$canZoomToLayerEx,
|
|
3376
3391
|
tooltipTitle = _ref.tooltipTitle,
|
|
3377
|
-
icon = _ref.icon
|
|
3392
|
+
icon = _ref.icon,
|
|
3393
|
+
stacDataLayout = _ref.stacDataLayout,
|
|
3394
|
+
isTiledStacCollection = _ref.isTiledStacCollection,
|
|
3395
|
+
onChangeStacDataLayout = _ref.onChangeStacDataLayout;
|
|
3378
3396
|
var _useCoreTranslation = useCoreTranslation(),
|
|
3379
3397
|
t = _useCoreTranslation.t;
|
|
3380
3398
|
var nonEmptyTooltipTitle = tooltipTitle != null ? tooltipTitle : t('layermanager-options');
|
|
@@ -3393,6 +3411,32 @@ var LayerManagerMenuButton = function LayerManagerMenuButton(_ref) {
|
|
|
3393
3411
|
var onClickZoomToExtent = function onClickZoomToExtent() {
|
|
3394
3412
|
onLayerZoomToExtent == null || onLayerZoomToExtent();
|
|
3395
3413
|
};
|
|
3414
|
+
var stacDataLayoutMenuItem = onChangeStacDataLayout ? {
|
|
3415
|
+
text: t('layermanager-stac-layout-title'),
|
|
3416
|
+
action: function action() {},
|
|
3417
|
+
subMenuItems: [{
|
|
3418
|
+
text: t('layermanager-stac-layout-auto'),
|
|
3419
|
+
action: function action() {
|
|
3420
|
+
return onChangeStacDataLayout('auto');
|
|
3421
|
+
},
|
|
3422
|
+
controlType: 'radio',
|
|
3423
|
+
isSelected: !stacDataLayout || stacDataLayout === 'auto'
|
|
3424
|
+
}].concat(!isTiledStacCollection ? [{
|
|
3425
|
+
text: t('layermanager-stac-layout-temporal'),
|
|
3426
|
+
action: function action() {
|
|
3427
|
+
return onChangeStacDataLayout('temporal');
|
|
3428
|
+
},
|
|
3429
|
+
controlType: 'radio',
|
|
3430
|
+
isSelected: stacDataLayout === 'temporal'
|
|
3431
|
+
}] : [], [{
|
|
3432
|
+
text: t('layermanager-stac-layout-spatial-tiles'),
|
|
3433
|
+
action: function action() {
|
|
3434
|
+
return onChangeStacDataLayout('spatial-tiles');
|
|
3435
|
+
},
|
|
3436
|
+
controlType: 'radio',
|
|
3437
|
+
isSelected: stacDataLayout === 'spatial-tiles'
|
|
3438
|
+
}])
|
|
3439
|
+
} : undefined;
|
|
3396
3440
|
return jsx(ToggleMenu, {
|
|
3397
3441
|
buttonIcon: icon,
|
|
3398
3442
|
buttonSx: {
|
|
@@ -3423,7 +3467,7 @@ var LayerManagerMenuButton = function LayerManagerMenuButton(_ref) {
|
|
|
3423
3467
|
action: onClickZoomToExtent,
|
|
3424
3468
|
icon: jsx(ZoomToLayer, {}),
|
|
3425
3469
|
isDisabled: !canZoomToLayerExtent
|
|
3426
|
-
}],
|
|
3470
|
+
}].concat(stacDataLayoutMenuItem ? [stacDataLayoutMenuItem] : []),
|
|
3427
3471
|
menuPosition: "bottom",
|
|
3428
3472
|
tooltipTitle: nonEmptyTooltipTitle,
|
|
3429
3473
|
children: !!isFeatureLayer && jsx(SelectableFeaturesCheckboxConnect, {
|
|
@@ -4331,6 +4375,7 @@ var wmLayerHasZoomExtent = function wmLayerHasZoomExtent(wmLayer, mapSrs) {
|
|
|
4331
4375
|
return !!wmLayer.geographicBoundingBox;
|
|
4332
4376
|
};
|
|
4333
4377
|
var LayerManagerMenuButtonConnect = function LayerManagerMenuButtonConnect(_ref) {
|
|
4378
|
+
var _layer$service;
|
|
4334
4379
|
var layerId = _ref.layerId,
|
|
4335
4380
|
mapId = _ref.mapId,
|
|
4336
4381
|
tooltipTitle = _ref.tooltipTitle,
|
|
@@ -4346,6 +4391,11 @@ var LayerManagerMenuButtonConnect = function LayerManagerMenuButtonConnect(_ref)
|
|
|
4346
4391
|
return layerSelectors.getIsFeatureSyncLayer(store, layerId);
|
|
4347
4392
|
});
|
|
4348
4393
|
var isFeatureLayer = layerType === LayerType.featureLayer;
|
|
4394
|
+
var isStacGeoTIFFLayer = layerType === LayerType.stacGeoTIFFLayer;
|
|
4395
|
+
var _useStacCollection = useStacCollection(isStacGeoTIFFLayer ? (_layer$service = layer == null ? void 0 : layer.service) != null ? _layer$service : '' : ''),
|
|
4396
|
+
stacCollectionData = _useStacCollection.data;
|
|
4397
|
+
var isTiledStacCollection = Boolean(stacCollectionData == null ? void 0 : stacCollectionData.item_assets);
|
|
4398
|
+
var stacOptions = layer != null && layer.options && !('parameterNames' in layer.options) ? layer.options : undefined;
|
|
4349
4399
|
var mapSrs = useSelector(function (store) {
|
|
4350
4400
|
return mapSelectors.getSrs(store, mapId);
|
|
4351
4401
|
});
|
|
@@ -4449,6 +4499,19 @@ var LayerManagerMenuButtonConnect = function LayerManagerMenuButtonConnect(_ref)
|
|
|
4449
4499
|
origin: layerTypes.LayerActionOrigin.layerManager
|
|
4450
4500
|
}));
|
|
4451
4501
|
}, [dispatch, layerId]);
|
|
4502
|
+
var changeStacDataLayout = React.useCallback(function (dataLayout) {
|
|
4503
|
+
if (!layerId) {
|
|
4504
|
+
return;
|
|
4505
|
+
}
|
|
4506
|
+
dispatch(layerActions.layerChangeOptions({
|
|
4507
|
+
layerId: layerId,
|
|
4508
|
+
mapId: mapId,
|
|
4509
|
+
options: Object.assign({}, stacOptions, {
|
|
4510
|
+
dataLayout: dataLayout
|
|
4511
|
+
}),
|
|
4512
|
+
origin: layerTypes.LayerActionOrigin.layerManager
|
|
4513
|
+
}));
|
|
4514
|
+
}, [dispatch, layerId, mapId, stacOptions]);
|
|
4452
4515
|
return jsx(LayerManagerMenuButton, {
|
|
4453
4516
|
canZoomToLayerExtent: canZoomToLayerExtent,
|
|
4454
4517
|
icon: icon,
|
|
@@ -4456,6 +4519,8 @@ var LayerManagerMenuButtonConnect = function LayerManagerMenuButtonConnect(_ref)
|
|
|
4456
4519
|
isFeatureSyncLayer: isFeatureSyncLayer,
|
|
4457
4520
|
layerId: layerId,
|
|
4458
4521
|
mapId: mapId,
|
|
4522
|
+
isTiledStacCollection: isStacGeoTIFFLayer ? isTiledStacCollection : undefined,
|
|
4523
|
+
onChangeStacDataLayout: isStacGeoTIFFLayer ? changeStacDataLayout : undefined,
|
|
4459
4524
|
onLayerCopyToOtherMaps: copyLayerToOtherMaps,
|
|
4460
4525
|
onLayerDuplicate: function onLayerDuplicate() {
|
|
4461
4526
|
duplicateLayer({
|
|
@@ -4465,6 +4530,7 @@ var LayerManagerMenuButtonConnect = function LayerManagerMenuButtonConnect(_ref)
|
|
|
4465
4530
|
},
|
|
4466
4531
|
onLayerRemoveFromOtherMaps: removeLayerFromAllMaps,
|
|
4467
4532
|
onLayerZoomToExtent: zoomToLayerExtent,
|
|
4533
|
+
stacDataLayout: stacOptions == null ? void 0 : stacOptions.dataLayout,
|
|
4468
4534
|
tooltipTitle: tooltipTitle
|
|
4469
4535
|
});
|
|
4470
4536
|
};
|
|
@@ -4651,30 +4717,12 @@ var formatParameterTitle = function formatParameterTitle(baseTitle, parameterKey
|
|
|
4651
4717
|
var title = baseTitle + " (" + parameterKey;
|
|
4652
4718
|
return title.length > 100 ? title.substring(0, 100) + "...)" : title + ")";
|
|
4653
4719
|
};
|
|
4654
|
-
var getSTACServiceRootUrl$1 = function getSTACServiceRootUrl(serviceUrl) {
|
|
4655
|
-
return serviceUrl.replace(/\/collections\/[^/]+\/?$/, '');
|
|
4656
|
-
};
|
|
4657
|
-
var getTrailingSlashVariant = function getTrailingSlashVariant(url) {
|
|
4658
|
-
return url.endsWith('/') ? url.slice(0, -1) : url + "/";
|
|
4659
|
-
};
|
|
4660
4720
|
var getSTACCollectionUrl = function getSTACCollectionUrl(serviceRootUrl, collectionName) {
|
|
4661
4721
|
var normalizedRoot = serviceRootUrl.replace(/\/$/, '');
|
|
4662
4722
|
// Only encode if not already encoded to avoid double-encoding
|
|
4663
4723
|
var encodedName = collectionName.includes('%') ? collectionName : encodeURIComponent(collectionName);
|
|
4664
4724
|
return normalizedRoot + "/collections/" + encodedName;
|
|
4665
4725
|
};
|
|
4666
|
-
var resolvePreferredStyleName = function resolvePreferredStyleName(styleNames, currentStyle) {
|
|
4667
|
-
if (styleNames.length === 0) {
|
|
4668
|
-
return WMDefaultStyleName;
|
|
4669
|
-
}
|
|
4670
|
-
if (currentStyle && styleNames.includes(currentStyle)) {
|
|
4671
|
-
return currentStyle;
|
|
4672
|
-
}
|
|
4673
|
-
if (styleNames.includes(WMDefaultStyleName)) {
|
|
4674
|
-
return WMDefaultStyleName;
|
|
4675
|
-
}
|
|
4676
|
-
return styleNames[0];
|
|
4677
|
-
};
|
|
4678
4726
|
var RenderLayersConnect = function RenderLayersConnect(_ref) {
|
|
4679
4727
|
var _service$layers;
|
|
4680
4728
|
var layerId = _ref.layerId,
|
|
@@ -4697,7 +4745,7 @@ var RenderLayersConnect = function RenderLayersConnect(_ref) {
|
|
|
4697
4745
|
var serviceUrl = useSelector(function (store) {
|
|
4698
4746
|
return layerSelectors.getLayerService(store, layerId);
|
|
4699
4747
|
});
|
|
4700
|
-
var resolvedServiceUrl = isStacGeoTIFFLayer ? getSTACServiceRootUrl
|
|
4748
|
+
var resolvedServiceUrl = isStacGeoTIFFLayer ? layerUtils.getSTACServiceRootUrl(serviceUrl) : serviceUrl;
|
|
4701
4749
|
var isLayerEnabled = useSelector(function (store) {
|
|
4702
4750
|
return layerSelectors.getLayerEnabled(store, layerId);
|
|
4703
4751
|
});
|
|
@@ -4708,7 +4756,7 @@ var RenderLayersConnect = function RenderLayersConnect(_ref) {
|
|
|
4708
4756
|
if (!isStacGeoTIFFLayer) {
|
|
4709
4757
|
return serviceSelectors.getServiceByUrl(store, serviceUrl);
|
|
4710
4758
|
}
|
|
4711
|
-
return serviceSelectors.getServiceByUrl(store, resolvedServiceUrl) || serviceSelectors.getServiceByUrl(store, getTrailingSlashVariant(resolvedServiceUrl));
|
|
4759
|
+
return serviceSelectors.getServiceByUrl(store, resolvedServiceUrl) || serviceSelectors.getServiceByUrl(store, layerUtils.getTrailingSlashVariant(resolvedServiceUrl));
|
|
4712
4760
|
});
|
|
4713
4761
|
var layerOptions = useSelector(function (store) {
|
|
4714
4762
|
return layerSelectors.getLayerOptions(store, layerId);
|
|
@@ -4774,17 +4822,20 @@ var RenderLayersConnect = function RenderLayersConnect(_ref) {
|
|
|
4774
4822
|
if (!isStacGeoTIFFLayer || !isStacCollectionFetched) {
|
|
4775
4823
|
return;
|
|
4776
4824
|
}
|
|
4777
|
-
var
|
|
4778
|
-
|
|
4825
|
+
var styleNames = getStacCollectionStyles(stacCollectionData == null ? void 0 : stacCollectionData.renders, stacCollectionData == null ? void 0 : stacCollectionData.item_assets).map(function (_ref3) {
|
|
4826
|
+
var name = _ref3.name;
|
|
4827
|
+
return name;
|
|
4828
|
+
});
|
|
4829
|
+
var nextStyle = resolvePreferredStyleName(styleNames, currentLayerStyle);
|
|
4779
4830
|
if (currentLayerStyle !== nextStyle) {
|
|
4780
4831
|
layerChangeStyle(nextStyle);
|
|
4781
4832
|
}
|
|
4782
4833
|
}, [stacCollectionData, isStacCollectionFetched, isStacGeoTIFFLayer, currentLayerStyle, layerChangeStyle]);
|
|
4783
4834
|
React.useEffect(function () {
|
|
4784
|
-
if (!isStacGeoTIFFLayer || !
|
|
4835
|
+
if (!isStacGeoTIFFLayer || !stacCollectionData || !layerName) {
|
|
4785
4836
|
return;
|
|
4786
4837
|
}
|
|
4787
|
-
var styles =
|
|
4838
|
+
var styles = getStacCollectionStyles(stacCollectionData.renders, stacCollectionData.item_assets);
|
|
4788
4839
|
if (styles.length === 0) {
|
|
4789
4840
|
return;
|
|
4790
4841
|
}
|
|
@@ -4798,7 +4849,9 @@ var RenderLayersConnect = function RenderLayersConnect(_ref) {
|
|
|
4798
4849
|
path: [],
|
|
4799
4850
|
styles: styles
|
|
4800
4851
|
}],
|
|
4801
|
-
scope: 'system'
|
|
4852
|
+
scope: 'system',
|
|
4853
|
+
isUpdating: true,
|
|
4854
|
+
type: 'STAC'
|
|
4802
4855
|
});
|
|
4803
4856
|
}, [stacCollectionData, isStacGeoTIFFLayer, layerName, serviceUrl, serviceSetLayers]);
|
|
4804
4857
|
React.useEffect(function () {
|
|
@@ -4806,8 +4859,8 @@ var RenderLayersConnect = function RenderLayersConnect(_ref) {
|
|
|
4806
4859
|
return;
|
|
4807
4860
|
}
|
|
4808
4861
|
var layers = Object.entries(data == null ? void 0 : data.parameter_names).map(function (parameter) {
|
|
4809
|
-
var
|
|
4810
|
-
var parameterTitle = (
|
|
4862
|
+
var _ref4, _parameter$1$label;
|
|
4863
|
+
var parameterTitle = (_ref4 = (_parameter$1$label = parameter[1].label) != null ? _parameter$1$label : parameter[1].description) != null ? _ref4 : parameter[0];
|
|
4811
4864
|
var title = formatParameterTitle(parameterTitle, parameter[0]);
|
|
4812
4865
|
return {
|
|
4813
4866
|
name: parameter[0],
|
|
@@ -4831,9 +4884,9 @@ var RenderLayersConnect = function RenderLayersConnect(_ref) {
|
|
|
4831
4884
|
});
|
|
4832
4885
|
}, [data, serviceUrl, service, serviceSetLayers]);
|
|
4833
4886
|
var layers = (_service$layers = service == null ? void 0 : service.layers) != null ? _service$layers : [];
|
|
4834
|
-
var layerChangeName = React.useCallback(function (
|
|
4835
|
-
var layerId =
|
|
4836
|
-
name =
|
|
4887
|
+
var layerChangeName = React.useCallback(function (_ref5) {
|
|
4888
|
+
var layerId = _ref5.layerId,
|
|
4889
|
+
name = _ref5.name;
|
|
4837
4890
|
return dispatch(layerActions.layerChangeName({
|
|
4838
4891
|
layerId: layerId,
|
|
4839
4892
|
name: name,
|
|
@@ -4841,9 +4894,9 @@ var RenderLayersConnect = function RenderLayersConnect(_ref) {
|
|
|
4841
4894
|
origin: layerTypes.LayerActionOrigin.layerManager
|
|
4842
4895
|
}));
|
|
4843
4896
|
}, [dispatch, mapId]);
|
|
4844
|
-
var layerChangeOptions = React.useCallback(function (
|
|
4845
|
-
var layerId =
|
|
4846
|
-
options =
|
|
4897
|
+
var layerChangeOptions = React.useCallback(function (_ref6) {
|
|
4898
|
+
var layerId = _ref6.layerId,
|
|
4899
|
+
options = _ref6.options;
|
|
4847
4900
|
return dispatch(layerActions.layerChangeOptions({
|
|
4848
4901
|
layerId: layerId,
|
|
4849
4902
|
options: options,
|
|
@@ -4851,9 +4904,9 @@ var RenderLayersConnect = function RenderLayersConnect(_ref) {
|
|
|
4851
4904
|
origin: layerTypes.LayerActionOrigin.layerManager
|
|
4852
4905
|
}));
|
|
4853
4906
|
}, [dispatch, mapId]);
|
|
4854
|
-
var layerChangeService = React.useCallback(function (
|
|
4855
|
-
var layerId =
|
|
4856
|
-
service =
|
|
4907
|
+
var layerChangeService = React.useCallback(function (_ref7) {
|
|
4908
|
+
var layerId = _ref7.layerId,
|
|
4909
|
+
service = _ref7.service;
|
|
4857
4910
|
return dispatch(layerActions.layerChangeService({
|
|
4858
4911
|
layerId: layerId,
|
|
4859
4912
|
service: service,
|
|
@@ -4862,9 +4915,10 @@ var RenderLayersConnect = function RenderLayersConnect(_ref) {
|
|
|
4862
4915
|
}));
|
|
4863
4916
|
}, [dispatch, mapId]);
|
|
4864
4917
|
if (layerType === LayerType.edrFeatureLayer) {
|
|
4865
|
-
var
|
|
4866
|
-
var
|
|
4867
|
-
var
|
|
4918
|
+
var _edrLayerOptions$para;
|
|
4919
|
+
var edrLayerOptions = layerOptions && 'parameterNames' in layerOptions ? layerOptions : undefined;
|
|
4920
|
+
var selectedParams = (_edrLayerOptions$para = edrLayerOptions == null ? void 0 : edrLayerOptions.parameterNames) != null ? _edrLayerOptions$para : [];
|
|
4921
|
+
var collectionId = (edrLayerOptions == null ? void 0 : edrLayerOptions.collectionId) || '';
|
|
4868
4922
|
return jsx(RenderEDRLayers, {
|
|
4869
4923
|
collectionId: collectionId,
|
|
4870
4924
|
isEnabled: isLayerEnabled,
|
|
@@ -5006,20 +5060,14 @@ var LayerInfoButtonConnect = function LayerInfoButtonConnect(_ref) {
|
|
|
5006
5060
|
});
|
|
5007
5061
|
};
|
|
5008
5062
|
|
|
5009
|
-
var getSTACServiceRootUrl = function getSTACServiceRootUrl(serviceUrl) {
|
|
5010
|
-
return serviceUrl.replace(/\/+$/, '').replace(/\/collections\/[^/]+$/, '');
|
|
5011
|
-
};
|
|
5012
|
-
var trimTrailingSlashes = function trimTrailingSlashes(url) {
|
|
5013
|
-
return url.replace(/\/+$/, '');
|
|
5014
|
-
};
|
|
5015
5063
|
var hasSameServiceUrl = function hasSameServiceUrl(urlA, urlB) {
|
|
5016
|
-
return trimTrailingSlashes(urlA) === trimTrailingSlashes(urlB);
|
|
5064
|
+
return layerUtils.trimTrailingSlashes(urlA) === layerUtils.trimTrailingSlashes(urlB);
|
|
5017
5065
|
};
|
|
5018
5066
|
var hasSameSTACServiceUrl = function hasSameSTACServiceUrl(urlA, urlB) {
|
|
5019
|
-
return hasSameServiceUrl(getSTACServiceRootUrl(urlA), getSTACServiceRootUrl(urlB));
|
|
5067
|
+
return hasSameServiceUrl(layerUtils.getSTACServiceRootUrl(urlA), layerUtils.getSTACServiceRootUrl(urlB));
|
|
5020
5068
|
};
|
|
5021
5069
|
var isSTACCollectionUrl = function isSTACCollectionUrl(serviceUrl) {
|
|
5022
|
-
return trimTrailingSlashes(serviceUrl) !== getSTACServiceRootUrl(serviceUrl);
|
|
5070
|
+
return layerUtils.trimTrailingSlashes(serviceUrl) !== layerUtils.getSTACServiceRootUrl(serviceUrl);
|
|
5023
5071
|
};
|
|
5024
5072
|
var hasMatchingSTACLayerServiceUrl = function hasMatchingSTACLayerServiceUrl(layerServiceUrl, layerInfoServiceUrl) {
|
|
5025
5073
|
if (hasSameServiceUrl(layerServiceUrl, layerInfoServiceUrl)) {
|
|
@@ -5051,7 +5099,7 @@ var LayerInfoDialogConnect = function LayerInfoDialogConnect(_ref) {
|
|
|
5051
5099
|
});
|
|
5052
5100
|
var layerInfoServiceUrl = (_layerInfo$serviceUrl = layerInfo == null ? void 0 : layerInfo.serviceUrl) != null ? _layerInfo$serviceUrl : '';
|
|
5053
5101
|
var isSelectedSTACLayer = (selectedMapLayer == null ? void 0 : selectedMapLayer.layerType) === LayerType.stacGeoTIFFLayer;
|
|
5054
|
-
var serviceLookupUrl = isSelectedSTACLayer ? getSTACServiceRootUrl((_selectedMapLayer$ser = selectedMapLayer.service) != null ? _selectedMapLayer$ser : layerInfoServiceUrl) : layerInfoServiceUrl;
|
|
5102
|
+
var serviceLookupUrl = isSelectedSTACLayer ? layerUtils.getSTACServiceRootUrl((_selectedMapLayer$ser = selectedMapLayer.service) != null ? _selectedMapLayer$ser : layerInfoServiceUrl) : layerInfoServiceUrl;
|
|
5055
5103
|
var currentService = useSelector(function (store) {
|
|
5056
5104
|
if (!isSelectedSTACLayer) {
|
|
5057
5105
|
return serviceSelectors.getServiceByUrl(store, serviceLookupUrl);
|
|
@@ -5251,13 +5299,16 @@ var LayerContainerRow = /*#__PURE__*/React.memo(function (_ref) {
|
|
|
5251
5299
|
var _React$useState4 = React.useState(0),
|
|
5252
5300
|
rowsToDisplayFeature = _React$useState4[0],
|
|
5253
5301
|
setRowsToDisplayFeature = _React$useState4[1];
|
|
5254
|
-
var
|
|
5302
|
+
var displayFeatureLayers = React.useMemo(function () {
|
|
5255
5303
|
return featureLayers.filter(function (layer) {
|
|
5256
5304
|
return layer.name !== undefined && layer.id !== undefined;
|
|
5257
|
-
}).map(function (layer) {
|
|
5258
|
-
return layer.id;
|
|
5259
5305
|
});
|
|
5260
5306
|
}, [featureLayers]);
|
|
5307
|
+
var featureLayerIds = React.useMemo(function () {
|
|
5308
|
+
return displayFeatureLayers.map(function (layer) {
|
|
5309
|
+
return layer.id;
|
|
5310
|
+
});
|
|
5311
|
+
}, [displayFeatureLayers]);
|
|
5261
5312
|
var layerMove = React.useCallback(function (_ref2) {
|
|
5262
5313
|
var mapId = _ref2.mapId,
|
|
5263
5314
|
oldIndex = _ref2.oldIndex,
|
|
@@ -5342,21 +5393,21 @@ var LayerContainerRow = /*#__PURE__*/React.memo(function (_ref) {
|
|
|
5342
5393
|
settings: settings
|
|
5343
5394
|
}, "layerRowConnect-map-" + layerId);
|
|
5344
5395
|
});
|
|
5345
|
-
var featureLayerContents =
|
|
5396
|
+
var featureLayerContents = displayFeatureLayers.map(function (layer) {
|
|
5346
5397
|
var _settings$dragHandle3, _settings$dragHandle4;
|
|
5347
5398
|
return jsx(LayerRowConnect, {
|
|
5348
5399
|
collapsedColumns: collapsedColumns,
|
|
5349
5400
|
dragHandle: jsx(DragHandle, {
|
|
5350
|
-
hideTooltip: isSortingFeature || isDragDisabledFeature,
|
|
5401
|
+
hideTooltip: isSortingFeature || isDragDisabledFeature || Boolean(layer.featureSync),
|
|
5351
5402
|
icon: settings == null || (_settings$dragHandle3 = settings.dragHandle) == null ? void 0 : _settings$dragHandle3.icon,
|
|
5352
|
-
isDisabled: isDragDisabledFeature,
|
|
5403
|
+
isDisabled: isDragDisabledFeature || Boolean(layer.featureSync),
|
|
5353
5404
|
isSorting: isSortingFeature,
|
|
5354
5405
|
tooltipTitle: settings == null || (_settings$dragHandle4 = settings.dragHandle) == null ? void 0 : _settings$dragHandle4.tooltipTitle
|
|
5355
5406
|
}),
|
|
5356
|
-
layerId:
|
|
5407
|
+
layerId: layer.id,
|
|
5357
5408
|
mapId: mapId,
|
|
5358
5409
|
settings: settings
|
|
5359
|
-
}, "layerRowConnect-feature-" +
|
|
5410
|
+
}, "layerRowConnect-feature-" + layer.id);
|
|
5360
5411
|
});
|
|
5361
5412
|
React.useEffect(function () {
|
|
5362
5413
|
if (rowsToDisplayMap < mapLayerIds.length) {
|
|
@@ -7900,14 +7951,15 @@ var createLinkedFeatureCollection = function createLinkedFeatureCollection(linke
|
|
|
7900
7951
|
var originalId = getFeatureKey((_geoFeature$propertie = geoFeature.properties) == null ? void 0 : _geoFeature$propertie.originalId) || getFeatureKey(featureLayer.originalId);
|
|
7901
7952
|
return !(featureId && warningDialogFeatureKeys.has(featureId) || originalId && warningDialogFeatureKeys.has(originalId));
|
|
7902
7953
|
}).map(function (geoFeature) {
|
|
7903
|
-
var _featureLayer$feature, _getGeoFeatureSelecti;
|
|
7954
|
+
var _featureLayer$feature, _getGeoFeatureSelecti, _featureLayer$opacity;
|
|
7904
7955
|
var featureLayerKey = ((_featureLayer$feature = featureLayer.featureSync) == null ? void 0 : _featureLayer$feature.featureLayerKey) || featureLayer.id;
|
|
7905
7956
|
var selectedFeatureIds = featureLayerKey ? selectedFeatureIdsByLayerKey.get(featureLayerKey) : undefined;
|
|
7906
7957
|
var isSelected = selectedFeatureIds == null ? void 0 : selectedFeatureIds.has((_getGeoFeatureSelecti = getGeoFeatureSelectionKey(geoFeature)) != null ? _getGeoFeatureSelecti : '');
|
|
7907
7958
|
var existingProperties = geoFeature.properties && typeof geoFeature.properties === 'object' ? geoFeature.properties : {};
|
|
7908
7959
|
return Object.assign({}, geoFeature, {
|
|
7909
7960
|
properties: Object.assign({}, existingProperties, {
|
|
7910
|
-
sourceLayerId: featureLayer.id
|
|
7961
|
+
sourceLayerId: featureLayer.id,
|
|
7962
|
+
layerOpacity: (_featureLayer$opacity = featureLayer.opacity) != null ? _featureLayer$opacity : 1
|
|
7911
7963
|
}, isSelected ? {
|
|
7912
7964
|
highlightSelectedFeature: true
|
|
7913
7965
|
} : undefined, featureLayer.originalId ? {
|
|
@@ -8013,6 +8065,23 @@ var makeLayerInfoPayload = function makeLayerInfoPayload(payload, mapDimensions,
|
|
|
8013
8065
|
};
|
|
8014
8066
|
return updatedPayLoad;
|
|
8015
8067
|
};
|
|
8068
|
+
var getRenderedDimensions = function getRenderedDimensions(_ref) {
|
|
8069
|
+
var layerType = _ref.layerType,
|
|
8070
|
+
layerDimensions = _ref.layerDimensions,
|
|
8071
|
+
mapTimeDimension = _ref.mapTimeDimension;
|
|
8072
|
+
if (layerType !== LayerType.stacGeoTIFFLayer || !mapTimeDimension) {
|
|
8073
|
+
return layerDimensions;
|
|
8074
|
+
}
|
|
8075
|
+
var hasLayerTimeDimension = layerDimensions == null ? void 0 : layerDimensions.some(function (_ref2) {
|
|
8076
|
+
var name = _ref2.name;
|
|
8077
|
+
return name === 'time';
|
|
8078
|
+
});
|
|
8079
|
+
return hasLayerTimeDimension ? layerDimensions.map(function (dimension) {
|
|
8080
|
+
return dimension.name === 'time' ? Object.assign({}, dimension, {
|
|
8081
|
+
currentValue: mapTimeDimension.currentValue
|
|
8082
|
+
}) : dimension;
|
|
8083
|
+
}) : [].concat(layerDimensions != null ? layerDimensions : [], [Object.assign({}, mapTimeDimension)]);
|
|
8084
|
+
};
|
|
8016
8085
|
var getCenterOfLinkedFeature = function getCenterOfLinkedFeature(feature, srs) {
|
|
8017
8086
|
var _feature$getGeometry;
|
|
8018
8087
|
if (feature && ((_feature$getGeometry = feature.getGeometry()) == null ? void 0 : _feature$getGeometry.getType()) === 'Point') {
|
|
@@ -8030,11 +8099,11 @@ var getCenterOfLinkedFeature = function getCenterOfLinkedFeature(feature, srs) {
|
|
|
8030
8099
|
}
|
|
8031
8100
|
return null;
|
|
8032
8101
|
};
|
|
8033
|
-
function useFitAndHighlightWarningFeature(
|
|
8034
|
-
var view =
|
|
8035
|
-
warningDialogFeatures =
|
|
8036
|
-
srs =
|
|
8037
|
-
mapId =
|
|
8102
|
+
function useFitAndHighlightWarningFeature(_ref3) {
|
|
8103
|
+
var view = _ref3.view,
|
|
8104
|
+
warningDialogFeatures = _ref3.warningDialogFeatures,
|
|
8105
|
+
srs = _ref3.srs,
|
|
8106
|
+
mapId = _ref3.mapId;
|
|
8038
8107
|
var dispatch = useDispatch();
|
|
8039
8108
|
useEffect(function () {
|
|
8040
8109
|
var _warningDialogFeature, _geoJsonFeature$prope, _warningDialogFeature2, _geoJsonFeature$bbox;
|
|
@@ -8118,6 +8187,9 @@ var OlMapViewLayerConnect = function OlMapViewLayerConnect(layerProps) {
|
|
|
8118
8187
|
var mapDimensions = useSelector(function (store) {
|
|
8119
8188
|
return mapSelectors.getMapDimensions(store, mapId);
|
|
8120
8189
|
});
|
|
8190
|
+
var mapTimeDimension = useSelector(function (store) {
|
|
8191
|
+
return mapSelectors.getMapDimension(store, mapId, 'time');
|
|
8192
|
+
});
|
|
8121
8193
|
var dispatch = useDispatch();
|
|
8122
8194
|
var onInitializeLayer = useCallback(function (initProps) {
|
|
8123
8195
|
var updatedPayLoad = makeLayerInfoPayload(initProps, mapDimensions || [], mapId);
|
|
@@ -8125,17 +8197,26 @@ var OlMapViewLayerConnect = function OlMapViewLayerConnect(layerProps) {
|
|
|
8125
8197
|
}, [dispatch, mapDimensions, mapId]);
|
|
8126
8198
|
var _useGetWMLayerInstanc = useGetWMLayerInstance(layer),
|
|
8127
8199
|
wmLayer = _useGetWMLayerInstanc.wmLayer;
|
|
8200
|
+
var effectiveLayerType = (wmLayer == null ? void 0 : wmLayer.layerType) || (layer == null ? void 0 : layer.layerType);
|
|
8201
|
+
var renderedDimensions = getRenderedDimensions({
|
|
8202
|
+
layerType: effectiveLayerType,
|
|
8203
|
+
layerDimensions: layer == null ? void 0 : layer.dimensions,
|
|
8204
|
+
mapTimeDimension: mapTimeDimension
|
|
8205
|
+
});
|
|
8128
8206
|
if (!wmLayer || !layer) {
|
|
8129
8207
|
return null;
|
|
8130
8208
|
}
|
|
8131
|
-
|
|
8209
|
+
// STAC layers query the exact map time, which is reflected in
|
|
8210
|
+
// renderedDimensions even when the layer metadata still points at its latest time.
|
|
8211
|
+
var isInsideAcceptanceTime = getIsInsideAcceptanceTime(layer.acceptanceTimeInMinutes, mapDimensions, renderedDimensions);
|
|
8132
8212
|
return jsx(OpenLayersLayer, Object.assign({
|
|
8133
8213
|
id: "layer-" + (layer == null ? void 0 : layer.id),
|
|
8134
8214
|
zIndex: zIndex
|
|
8135
8215
|
}, layer, {
|
|
8136
8216
|
debugMode: debugMode,
|
|
8217
|
+
dimensions: renderedDimensions,
|
|
8137
8218
|
enabled: !!isInsideAcceptanceTime && layer.enabled,
|
|
8138
|
-
layerType:
|
|
8219
|
+
layerType: effectiveLayerType,
|
|
8139
8220
|
onInitializeLayer: onInitializeLayer
|
|
8140
8221
|
}), "layer-" + (layer == null ? void 0 : layer.id));
|
|
8141
8222
|
};
|
|
@@ -8553,6 +8634,64 @@ var getTitle = function getTitle(layerId) {
|
|
|
8553
8634
|
var wmjsLayer = webmapUtils.getWMLayerById(layerId);
|
|
8554
8635
|
return wmjsLayer ? wmjsLayer.title || wmjsLayer.name : layerId;
|
|
8555
8636
|
};
|
|
8637
|
+
var getWmtsFeatureInfoUrl = function getWmtsFeatureInfoUrl(wmjsLayer, layer, mapPinLocation) {
|
|
8638
|
+
var _layer$dimensions;
|
|
8639
|
+
(_layer$dimensions = layer.dimensions) == null || _layer$dimensions.forEach(function (dim) {
|
|
8640
|
+
var wmDim = wmjsLayer == null ? void 0 : wmjsLayer.getDimension(dim.name);
|
|
8641
|
+
if (wmDim && wmDim.getValue() !== dim.currentValue) {
|
|
8642
|
+
wmDim.setValue(dim.currentValue);
|
|
8643
|
+
}
|
|
8644
|
+
});
|
|
8645
|
+
var wmtsSource = wmjsLayer == null ? void 0 : wmjsLayer.olSource;
|
|
8646
|
+
if (!wmtsSource || !(wmjsLayer != null && wmjsLayer.getfeatureinfoURL)) {
|
|
8647
|
+
return '';
|
|
8648
|
+
}
|
|
8649
|
+
var tileGrid = wmtsSource.getTileGrid();
|
|
8650
|
+
var tileCoord = tileGrid.getTileCoordForCoordAndResolution([mapPinLocation.projectionX, mapPinLocation.projectionY], mapPinLocation.resolution);
|
|
8651
|
+
if (!tileCoord) {
|
|
8652
|
+
return '';
|
|
8653
|
+
}
|
|
8654
|
+
var z = tileCoord[0],
|
|
8655
|
+
tileCol = tileCoord[1],
|
|
8656
|
+
tileRow = tileCoord[2];
|
|
8657
|
+
var tileExtent = tileGrid.getTileCoordExtent(tileCoord);
|
|
8658
|
+
var tileResolution = tileGrid.getResolution(z);
|
|
8659
|
+
var tileSize = tileGrid.getTileSize(z);
|
|
8660
|
+
var tileWidth = Array.isArray(tileSize) ? tileSize[0] : tileSize;
|
|
8661
|
+
var tileHeight = Array.isArray(tileSize) ? tileSize[1] : tileSize;
|
|
8662
|
+
if (!tileResolution || !tileWidth || !tileHeight) {
|
|
8663
|
+
return '';
|
|
8664
|
+
}
|
|
8665
|
+
var i = Math.min(Math.max(Math.floor((mapPinLocation.projectionX - tileExtent[0]) / tileResolution), 0), tileWidth - 1);
|
|
8666
|
+
var pixelJ = Math.min(Math.max(Math.floor((tileExtent[3] - mapPinLocation.projectionY) / tileResolution), 0), tileHeight - 1);
|
|
8667
|
+
var matrixIds = (tileGrid.getMatrixIds == null ? void 0 : tileGrid.getMatrixIds()) || [];
|
|
8668
|
+
var tileMatrix = matrixIds[z] || "" + z;
|
|
8669
|
+
var params = new URLSearchParams();
|
|
8670
|
+
params.set('SERVICE', 'WMTS');
|
|
8671
|
+
params.set('REQUEST', 'GetFeatureInfo');
|
|
8672
|
+
params.set('VERSION', '1.0.0');
|
|
8673
|
+
params.set('LAYER', wmjsLayer.getLayerName());
|
|
8674
|
+
params.set('STYLE', wmjsLayer.getStyle() || 'default');
|
|
8675
|
+
params.set('TILEMATRIXSET', wmjsLayer.wmtsTileMatrixSet || 'EPSG:3857');
|
|
8676
|
+
params.set('TILEMATRIX', tileMatrix);
|
|
8677
|
+
params.set('TILEROW', "" + tileRow);
|
|
8678
|
+
params.set('TILECOL', "" + tileCol);
|
|
8679
|
+
params.set('I', "" + i);
|
|
8680
|
+
params.set('J', "" + pixelJ);
|
|
8681
|
+
params.set('INFOFORMAT', wmjsLayer.wmtsInfoFormat || 'text/html');
|
|
8682
|
+
var mapDimURL = getMapDimURL(wmjsLayer).toString();
|
|
8683
|
+
if (mapDimURL) {
|
|
8684
|
+
var dimParams = new URLSearchParams(mapDimURL);
|
|
8685
|
+
dimParams.forEach(function (value, key) {
|
|
8686
|
+
params.set(key.toUpperCase(), value);
|
|
8687
|
+
});
|
|
8688
|
+
}
|
|
8689
|
+
var featureInfoUrl = new URL(wmjsLayer.getfeatureinfoURL);
|
|
8690
|
+
params.forEach(function (value, key) {
|
|
8691
|
+
featureInfoUrl.searchParams.set(key, value);
|
|
8692
|
+
});
|
|
8693
|
+
return featureInfoUrl.toString();
|
|
8694
|
+
};
|
|
8556
8695
|
var getFeatureInfoUrl = function getFeatureInfoUrl(layer, mapPinLocation) {
|
|
8557
8696
|
/*
|
|
8558
8697
|
We need a wmjsLayer to build the getfeatureinfo url (getWMSGetFeatureInfoRequestURL function).
|
|
@@ -8560,13 +8699,13 @@ var getFeatureInfoUrl = function getFeatureInfoUrl(layer, mapPinLocation) {
|
|
|
8560
8699
|
Therefore make a clone of this layer and set its dimensions based on the layer object.
|
|
8561
8700
|
Otherwise we risk making a getfeatureinfo call with outdated dimension values.
|
|
8562
8701
|
*/
|
|
8563
|
-
var
|
|
8564
|
-
|
|
8565
|
-
// WMTS Layers do not support GetFeatureInfo
|
|
8566
|
-
return '';
|
|
8567
|
-
}
|
|
8702
|
+
var originalWmjsLayer = webmapUtils.getWMLayerById(layer.id);
|
|
8703
|
+
var wmjsLayer = originalWmjsLayer.cloneLayer();
|
|
8568
8704
|
if (mapPinLocation) {
|
|
8569
|
-
var _layer$
|
|
8705
|
+
var _layer$dimensions2;
|
|
8706
|
+
if (wmjsLayer.layerType === LayerType.wmtsMapLayer) {
|
|
8707
|
+
return getWmtsFeatureInfoUrl(wmjsLayer, layer, mapPinLocation);
|
|
8708
|
+
}
|
|
8570
8709
|
// OpenLayers WMS version
|
|
8571
8710
|
var source = new ImageWMS({
|
|
8572
8711
|
url: wmjsLayer.getmapURL,
|
|
@@ -8574,7 +8713,7 @@ var getFeatureInfoUrl = function getFeatureInfoUrl(layer, mapPinLocation) {
|
|
|
8574
8713
|
LAYERS: wmjsLayer.getLayerName()
|
|
8575
8714
|
}
|
|
8576
8715
|
});
|
|
8577
|
-
(_layer$
|
|
8716
|
+
(_layer$dimensions2 = layer.dimensions) == null || _layer$dimensions2.forEach(function (dim) {
|
|
8578
8717
|
var wmDim = wmjsLayer.getDimension(dim.name);
|
|
8579
8718
|
if (wmDim && wmDim.getValue() !== dim.currentValue) {
|
|
8580
8719
|
wmDim.setValue(dim.currentValue);
|
|
@@ -8708,7 +8847,7 @@ var GetFeatureInfoDialog = function GetFeatureInfoDialog(_ref) {
|
|
|
8708
8847
|
/* Do a GFI call to the server and use the updateLayerResult to provide the results. */
|
|
8709
8848
|
var fetchLayerInfo = /*#__PURE__*/function () {
|
|
8710
8849
|
var _ref3 = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee(url, layerId) {
|
|
8711
|
-
var
|
|
8850
|
+
var response, data, errorMessage, _t;
|
|
8712
8851
|
return _regenerator().w(function (_context) {
|
|
8713
8852
|
while (1) switch (_context.p = _context.n) {
|
|
8714
8853
|
case 0:
|
|
@@ -8730,19 +8869,28 @@ var GetFeatureInfoDialog = function GetFeatureInfoDialog(_ref) {
|
|
|
8730
8869
|
isLoading: true
|
|
8731
8870
|
});
|
|
8732
8871
|
_context.n = 2;
|
|
8733
|
-
return
|
|
8872
|
+
return fetch(url);
|
|
8734
8873
|
case 2:
|
|
8735
|
-
|
|
8736
|
-
|
|
8874
|
+
response = _context.v;
|
|
8875
|
+
if (response.ok) {
|
|
8876
|
+
_context.n = 3;
|
|
8877
|
+
break;
|
|
8878
|
+
}
|
|
8879
|
+
throw new Error("GetFeatureInfo request failed (" + response.status + ")");
|
|
8880
|
+
case 3:
|
|
8881
|
+
_context.n = 4;
|
|
8882
|
+
return response.text();
|
|
8883
|
+
case 4:
|
|
8884
|
+
data = _context.v;
|
|
8737
8885
|
updateLayerResult({
|
|
8738
8886
|
layerId: layerId,
|
|
8739
8887
|
data: data,
|
|
8740
8888
|
isLoading: false
|
|
8741
8889
|
});
|
|
8742
|
-
_context.n =
|
|
8890
|
+
_context.n = 6;
|
|
8743
8891
|
break;
|
|
8744
|
-
case
|
|
8745
|
-
_context.p =
|
|
8892
|
+
case 5:
|
|
8893
|
+
_context.p = 5;
|
|
8746
8894
|
_t = _context.v;
|
|
8747
8895
|
errorMessage = _t instanceof Error ? _t.message : 'fetchLayerInfo failed';
|
|
8748
8896
|
updateLayerResult({
|
|
@@ -8750,10 +8898,10 @@ var GetFeatureInfoDialog = function GetFeatureInfoDialog(_ref) {
|
|
|
8750
8898
|
data: errorMessage,
|
|
8751
8899
|
isLoading: false
|
|
8752
8900
|
});
|
|
8753
|
-
case
|
|
8901
|
+
case 6:
|
|
8754
8902
|
return _context.a(2);
|
|
8755
8903
|
}
|
|
8756
|
-
}, _callee, null, [[1,
|
|
8904
|
+
}, _callee, null, [[1, 5]]);
|
|
8757
8905
|
}));
|
|
8758
8906
|
return function fetchLayerInfo(_x, _x2) {
|
|
8759
8907
|
return _ref3.apply(this, arguments);
|
|
@@ -11989,4 +12137,4 @@ var storyUtils = /*#__PURE__*/Object.freeze({
|
|
|
11989
12137
|
useDefaultMapSettings: useDefaultMapSettings
|
|
11990
12138
|
});
|
|
11991
12139
|
|
|
11992
|
-
export { CORE_NAMESPACE, _ConfigurableMapConnect as ConfigurableMapConnect, CoreI18nProvider, CoreStoreProvider, CoreThemeProvider, CoreThemeStoreProvider, DemoWrapper, DemoWrapperConnect, HarmonieTempAndPrecipPreset, LanguageSelect, LayerInfoButtonConnect, LayerInfoDialogConnect, _LayerManager as LayerManager, BaseLayerRow as LayerManagerBaseLayerRow, LayerManagerConnect, DescriptionRow as LayerManagerDescriptionRow, HeaderOptions as LayerManagerHeaderOptions, LayerContainerRow as LayerManagerLayerContainerRow, LayerManagerMapButtonConnect, LegendConnect, LegendMapButtonConnect, LoadingIndicatorProgressBar, LocationSearch, LocationSearchConnect, MultiDimensionSelectMapButtonsConnect, MultiMapMultiDimensionSelectConnect as MultiMapDimensionSelectConnect, MultiMapViewConnect, MyMapLocation, OlMapViewConnect, RouterWrapperConnect, SearchControlButtonConnect, SelectedFeaturesDialogConnect, SyncGroupViewerConnect, TimeSliderConnect, componentsLookUp, coreTranslations, defaultBbox, defaultConfigurations, filterMapPresets, filterServices, filterTimeSeriesServices, getCenterOfLinkedFeature, getIsOutdated, getLanguageFromLocalStorage, languageLocalStorageKey, makeLayerInfoPayload, makePrefetchTimeSpan, saveLanguageToLocalStorage, storyUtils, testLayers, useFetchServices, useFitAndHighlightWarningFeature, useGetOpenLayersView, useLocationDetail, useLocationList, usePrefetchTimeSpan, useUpdateTimeSpan, useUpdateTimestep };
|
|
12140
|
+
export { CORE_NAMESPACE, _ConfigurableMapConnect as ConfigurableMapConnect, CoreI18nProvider, CoreStoreProvider, CoreThemeProvider, CoreThemeStoreProvider, DemoWrapper, DemoWrapperConnect, HarmonieTempAndPrecipPreset, LanguageSelect, LayerInfoButtonConnect, LayerInfoDialogConnect, _LayerManager as LayerManager, BaseLayerRow as LayerManagerBaseLayerRow, LayerManagerConnect, DescriptionRow as LayerManagerDescriptionRow, HeaderOptions as LayerManagerHeaderOptions, LayerContainerRow as LayerManagerLayerContainerRow, LayerManagerMapButtonConnect, LegendConnect, LegendMapButtonConnect, LoadingIndicatorProgressBar, LocationSearch, LocationSearchConnect, MultiDimensionSelectMapButtonsConnect, MultiMapMultiDimensionSelectConnect as MultiMapDimensionSelectConnect, MultiMapViewConnect, MyMapLocation, OlMapViewConnect, RouterWrapperConnect, SearchControlButtonConnect, SelectedFeaturesDialogConnect, SyncGroupViewerConnect, TimeSliderConnect, componentsLookUp, coreTranslations, defaultBbox, defaultConfigurations, filterMapPresets, filterServices, filterTimeSeriesServices, getCenterOfLinkedFeature, getIsOutdated, getLanguageFromLocalStorage, getRenderedDimensions, languageLocalStorageKey, makeLayerInfoPayload, makePrefetchTimeSpan, saveLanguageToLocalStorage, storyUtils, testLayers, useFetchServices, useFitAndHighlightWarningFeature, useGetOpenLayersView, useLocationDetail, useLocationList, usePrefetchTimeSpan, useUpdateTimeSpan, useUpdateTimestep };
|
|
@@ -27,6 +27,15 @@ export interface InitialTimeSeriesProps {
|
|
|
27
27
|
services: TimeSeriesService[];
|
|
28
28
|
hideLocationMarkers?: boolean;
|
|
29
29
|
syncGroupsIds: string[];
|
|
30
|
+
locationMenuSize?: {
|
|
31
|
+
width: number;
|
|
32
|
+
height: number;
|
|
33
|
+
};
|
|
34
|
+
locationMenuPosition?: {
|
|
35
|
+
x: number;
|
|
36
|
+
y: number;
|
|
37
|
+
};
|
|
38
|
+
isLocationsDialogOpen?: boolean;
|
|
30
39
|
}
|
|
31
40
|
export interface InitialSoundingsProps {
|
|
32
41
|
selectedSources: Record<string, SourceSelection>;
|
package/dist/src/lib/components/LayerManager/LayerContainerRow/LayerRow/Menubutton/MenuButton.d.ts
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
|
+
import type { STACGeoTIFFLayerOptions } from '@opengeoweb/webmap';
|
|
2
3
|
interface LayerManagerMenuButtonProps {
|
|
3
4
|
mapId: string;
|
|
4
5
|
layerId?: string;
|
|
@@ -14,6 +15,9 @@ interface LayerManagerMenuButtonProps {
|
|
|
14
15
|
canZoomToLayerExtent?: boolean;
|
|
15
16
|
tooltipTitle?: string;
|
|
16
17
|
icon?: React.ReactNode;
|
|
18
|
+
stacDataLayout?: STACGeoTIFFLayerOptions['dataLayout'];
|
|
19
|
+
isTiledStacCollection?: boolean;
|
|
20
|
+
onChangeStacDataLayout?: (dataLayout: NonNullable<STACGeoTIFFLayerOptions['dataLayout']>) => void;
|
|
17
21
|
}
|
|
18
22
|
declare const LayerManagerMenuButton: React.FC<LayerManagerMenuButtonProps>;
|
|
19
23
|
export default LayerManagerMenuButton;
|
|
@@ -1,10 +1,17 @@
|
|
|
1
1
|
import type { Feature, View } from 'ol';
|
|
2
2
|
import type { TimeSliderStartEndStep } from '@opengeoweb/store';
|
|
3
3
|
import type { Dimension, RefTimeDimensionModes } from '@opengeoweb/webmap';
|
|
4
|
+
import { LayerType } from '@opengeoweb/webmap';
|
|
4
5
|
import type { MapLocation, OnInitializeLayerProps, TimeContextType, UpdateLayerInfoPayload } from '@opengeoweb/webmap-react';
|
|
5
6
|
export declare const makePrefetchTimeSpan: (timeSliderStartCenterEndTime: TimeSliderStartEndStep, isAnimating: boolean, prefetchList: number[]) => TimeContextType;
|
|
6
7
|
export declare const usePrefetchTimeSpan: (timeSliderStartCenterEndTime: TimeSliderStartEndStep, isAnimating: boolean, animationList: number[], refTimeDimensionModes?: RefTimeDimensionModes) => TimeContextType;
|
|
7
8
|
export declare const makeLayerInfoPayload: (payload: OnInitializeLayerProps, mapDimensions: Dimension[], mapId: string) => UpdateLayerInfoPayload;
|
|
9
|
+
interface GetRenderedDimensionsProps {
|
|
10
|
+
layerType?: LayerType;
|
|
11
|
+
layerDimensions?: Dimension[];
|
|
12
|
+
mapTimeDimension?: Dimension;
|
|
13
|
+
}
|
|
14
|
+
export declare const getRenderedDimensions: ({ layerType, layerDimensions, mapTimeDimension, }: GetRenderedDimensionsProps) => Dimension[] | undefined;
|
|
8
15
|
export declare const getCenterOfLinkedFeature: (feature: Feature | undefined, srs: string) => MapLocation | null;
|
|
9
16
|
interface UseFitAndHighlightWarningFeatureOptions {
|
|
10
17
|
view: View | undefined;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@opengeoweb/core",
|
|
3
|
-
"version": "19.
|
|
3
|
+
"version": "19.5.0",
|
|
4
4
|
"description": "GeoWeb Core library for the opengeoweb project",
|
|
5
5
|
"license": "Apache-2.0",
|
|
6
6
|
"repository": {
|
|
@@ -28,7 +28,6 @@
|
|
|
28
28
|
"@opengeoweb/webmap-react": "*",
|
|
29
29
|
"@opengeoweb/webmap": "*",
|
|
30
30
|
"@opengeoweb/theme": "*",
|
|
31
|
-
"axios": "^1.18.0",
|
|
32
31
|
"@opengeoweb/layer-select": "*",
|
|
33
32
|
"lodash": "^4.18.1",
|
|
34
33
|
"ol": "^10.4.0",
|