@opengeoweb/core 12.11.0 → 12.12.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 CHANGED
@@ -15,7 +15,7 @@ import { layerTypes, layerUtils, mapSelectors, layerActions, layerSelectors, ser
15
15
  import { webmapUtils, queryWMSServiceInfo, queryWMSLayers, queryWMSLayersTree, invalidateWMSGetCapabilities, LayerType, getWMSServiceId, handleDateUtilsISOString, getMapDimURL, generateLayerId, WMJSDimension, getWMLayerById, WMLayer } from '@opengeoweb/webmap';
16
16
  import _, { isArray, isEqual, range } from 'lodash';
17
17
  import { Box as Box$1, styled as styled$1 } from '@mui/system';
18
- import { LayerSelectButtonConnect, LayerSelectConnect } from '@opengeoweb/layer-select';
18
+ import { LayerSelectButtonConnect, LayerSelectConnect, DataExplorerButtonConnect } from '@opengeoweb/layer-select';
19
19
  import { unByKey } from 'ol/Observable';
20
20
  import axios from 'axios';
21
21
  import { ImageWMS } from 'ol/source';
@@ -28,6 +28,7 @@ import { getIntersection } from 'ol/extent';
28
28
  import { snackbarTypes, snackbarActions, SnackbarWrapperConnect } from '@opengeoweb/snackbar';
29
29
  import { useNavigate } from 'react-router-dom';
30
30
  import * as Sentry from '@sentry/react';
31
+ import { http, HttpResponse, passthrough } from 'msw';
31
32
  import Card from '@mui/material/Card';
32
33
  import CardContent from '@mui/material/CardContent';
33
34
  import Typography$1 from '@mui/material/Typography';
@@ -1387,8 +1388,8 @@ var DimensionSelect = function DimensionSelect(_ref) {
1387
1388
  };
1388
1389
 
1389
1390
  var getRenderLayersValues = function getRenderLayersValues(layerName, layers) {
1390
- var serviceLayer = layers.find(function (l) {
1391
- return l.name === layerName;
1391
+ var serviceLayer = layers.find(function (layer) {
1392
+ return layer.name === layerName;
1392
1393
  });
1393
1394
  if (!serviceLayer && layerName) {
1394
1395
  return {
@@ -1404,8 +1405,8 @@ var getRenderLayersValues = function getRenderLayersValues(layerName, layers) {
1404
1405
  }
1405
1406
  return {
1406
1407
  currentValue: (serviceLayer == null ? void 0 : serviceLayer.name) || '',
1407
- currentIndex: layers.findIndex(function (l) {
1408
- return l.name === (serviceLayer == null ? void 0 : serviceLayer.name);
1408
+ currentIndex: layers.findIndex(function (layer) {
1409
+ return layer.name === (serviceLayer == null ? void 0 : serviceLayer.name);
1409
1410
  }),
1410
1411
  extendedLayers: layers
1411
1412
  };
@@ -3697,8 +3698,8 @@ var WMSServerList = function WMSServerList(_ref) {
3697
3698
  var handleListItemClick = function handleListItemClick(event, service) {
3698
3699
  handleChangeService(service);
3699
3700
  };
3700
- var sortedServices = [].concat(availableServices).sort(function (a, b) {
3701
- return a.name.localeCompare(b.name);
3701
+ var sortedServices = [].concat(availableServices).sort(function (serviceA, serviceB) {
3702
+ return serviceA.name.localeCompare(serviceB.name);
3702
3703
  });
3703
3704
  return jsxs(Fragment, {
3704
3705
  children: [jsx(Grid, {
@@ -4693,27 +4694,29 @@ var ProjectionSelectConnect = function ProjectionSelectConnect(_ref) {
4693
4694
  });
4694
4695
  };
4695
4696
 
4696
- var availableOverlayers = [{
4697
- name: 'Default Overlayer',
4698
- value: 'Default Overlayer'
4699
- },
4700
- // TODO: rename to 'None' when implemented: https://gitlab.com/opengeoweb/opengeoweb/-/issues/6095
4701
- {
4702
- name: 'None (not implemented)',
4703
- value: 'None'
4704
- }];
4705
4697
  var OverlayersSelect = function OverlayersSelect(_ref) {
4706
- var _availableOverlayers$;
4707
- var selectedOverlayer = _ref.selectedOverlayer,
4708
- onChangeOverlayer = _ref.onChangeOverlayer;
4698
+ var mapId = _ref.mapId,
4699
+ selectedOverlayer = _ref.selectedOverlayer,
4700
+ onChangeOverlayer = _ref.onChangeOverlayer,
4701
+ availableOverlayers = _ref.availableOverlayers;
4709
4702
  var _useCoreTranslation = useCoreTranslation(),
4710
4703
  t = _useCoreTranslation.t;
4711
- var index = availableOverlayers.findIndex(function (layer) {
4712
- return layer.value === selectedOverlayer;
4704
+ var handleOverlayerChange = function handleOverlayerChange(value) {
4705
+ var selectedOverlayer = availableOverlayers == null ? void 0 : availableOverlayers.find(function (layer) {
4706
+ return layer.name === value;
4707
+ });
4708
+ if (selectedOverlayer) {
4709
+ onChangeOverlayer(mapId, selectedOverlayer);
4710
+ }
4711
+ };
4712
+ var overlayerOptions = availableOverlayers == null ? void 0 : availableOverlayers.map(function (layer) {
4713
+ return {
4714
+ value: layer.name
4715
+ };
4716
+ });
4717
+ var currentIndex = availableOverlayers == null ? void 0 : availableOverlayers.findIndex(function (layer) {
4718
+ return layer.name === selectedOverlayer.name;
4713
4719
  });
4714
- var selectedOverlayerName = (_availableOverlayers$ = availableOverlayers.find(function (layer) {
4715
- return layer.value === selectedOverlayer;
4716
- })) == null ? void 0 : _availableOverlayers$.name;
4717
4720
  return jsxs(Grid, {
4718
4721
  container: true,
4719
4722
  className: "overlayers-column",
@@ -4743,31 +4746,31 @@ var OverlayersSelect = function OverlayersSelect(_ref) {
4743
4746
  SelectDisplayProps: {
4744
4747
  'aria-label': 'overlayerSelect'
4745
4748
  },
4746
- tooltip: t('layermanager-overlayers-overlayer') + ": " + selectedOverlayerName,
4749
+ tooltip: t('layermanager-overlayers-overlayer') + ": " + selectedOverlayer.name,
4747
4750
  isEnabled: true,
4748
4751
  style: {
4749
4752
  maxWidth: '100%'
4750
4753
  },
4751
- value: selectedOverlayer,
4752
- list: availableOverlayers,
4753
- currentIndex: index,
4754
+ value: selectedOverlayer.name,
4755
+ list: overlayerOptions,
4756
+ currentIndex: currentIndex,
4754
4757
  onChange: function onChange(event) {
4755
4758
  event.stopPropagation();
4756
- onChangeOverlayer(event.target.value);
4759
+ handleOverlayerChange(event.target.value);
4757
4760
  },
4758
- onChangeMouseWheel: function onChangeMouseWheel(e) {
4759
- onChangeOverlayer(e.value);
4761
+ onChangeMouseWheel: function onChangeMouseWheel(value) {
4762
+ handleOverlayerChange(value.value);
4760
4763
  },
4761
4764
  children: [jsx(MenuItem, {
4762
4765
  disabled: true,
4763
4766
  children: t('layermanager-overlayers-title')
4764
- }), availableOverlayers.map(function (_ref2) {
4765
- var name = _ref2.name,
4766
- value = _ref2.value;
4767
+ }), availableOverlayers == null ? void 0 : availableOverlayers.map(function (_ref2) {
4768
+ var id = _ref2.id,
4769
+ name = _ref2.name;
4767
4770
  return jsx(MenuItem, {
4768
- value: value,
4771
+ value: name,
4769
4772
  children: name
4770
- }, name);
4773
+ }, id);
4771
4774
  })]
4772
4775
  })
4773
4776
  })
@@ -4775,15 +4778,38 @@ var OverlayersSelect = function OverlayersSelect(_ref) {
4775
4778
  });
4776
4779
  };
4777
4780
 
4778
- var OverlayersSelectConnect = function OverlayersSelectConnect() {
4779
- var _React$useState = React__default.useState('Default Overlayer'),
4780
- selectedOverlayer = _React$useState[0],
4781
- setSelectedOverlayer = _React$useState[1];
4781
+ var OverlayersSelectConnect = function OverlayersSelectConnect(_ref) {
4782
+ var mapId = _ref.mapId;
4783
+ var dispatch = useDispatch();
4784
+ var availableOverlayers = useSelector(function (store) {
4785
+ return layerSelectors.getOverlayersForMapId(store, mapId);
4786
+ });
4787
+ var currentOverlayerId = useSelector(function (store) {
4788
+ return mapSelectors.getSelectedOverlayerByMapId(store, mapId);
4789
+ });
4790
+ var overlayersWithNone = !availableOverlayers.some(function (layer) {
4791
+ return layer.id === 'none';
4792
+ }) ? [].concat(availableOverlayers, [{
4793
+ id: 'none',
4794
+ name: 'None'
4795
+ }]) : availableOverlayers;
4796
+ var selectedOverlayer = overlayersWithNone.find(function (layer) {
4797
+ return layer.id === currentOverlayerId;
4798
+ }) || {
4799
+ id: 'none',
4800
+ name: 'None'
4801
+ };
4802
+ var changeOverlayer = React__default.useCallback(function (mapId, selectedOverlayer) {
4803
+ dispatch(mapActions.changeOverlayer({
4804
+ mapId: mapId || '',
4805
+ selectedOverlayer: selectedOverlayer.id
4806
+ }));
4807
+ }, [dispatch]);
4782
4808
  return jsx(OverlayersSelect, {
4809
+ mapId: mapId || '',
4810
+ availableOverlayers: overlayersWithNone,
4783
4811
  selectedOverlayer: selectedOverlayer,
4784
- onChangeOverlayer: function onChangeOverlayer(selection) {
4785
- setSelectedOverlayer(selection);
4786
- }
4812
+ onChangeOverlayer: changeOverlayer
4787
4813
  });
4788
4814
  };
4789
4815
 
@@ -4943,7 +4969,9 @@ var LayerManager = function LayerManager(_ref) {
4943
4969
  mapId: mapId,
4944
4970
  settings: settings == null ? void 0 : settings.content,
4945
4971
  collapsedColumns: collapsedColumns
4946
- }), jsx(OverlayersSelectConnect, {}), jsx(BaseLayerRow, {
4972
+ }), jsx(OverlayersSelectConnect, {
4973
+ mapId: mapId
4974
+ }), jsx(BaseLayerRow, {
4947
4975
  mapId: mapId,
4948
4976
  tooltip: t('layermanager-baselayers-tooltip'),
4949
4977
  preloadedAvailableBaseLayers: preloadedAvailableBaseLayers,
@@ -7296,6 +7324,28 @@ var LocationSearchConnect = function LocationSearchConnect(_ref) {
7296
7324
  });
7297
7325
  };
7298
7326
 
7327
+ /* *
7328
+ * Licensed under the Apache License, Version 2.0 (the "License");
7329
+ * you may not use this file except in compliance with the License.
7330
+ * You may obtain a copy of the License at
7331
+ *
7332
+ * http://www.apache.org/licenses/LICENSE-2.0
7333
+ *
7334
+ * Unless required by applicable law or agreed to in writing, software
7335
+ * distributed under the License is distributed on an "AS IS" BASIS,
7336
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
7337
+ * See the License for the specific language governing permissions and
7338
+ * limitations under the License.
7339
+ *
7340
+ * Copyright 2025 - Koninklijk Nederlands Meteorologisch Instituut (KNMI)
7341
+ * Copyright 2025 - Finnish Meteorological Institute (FMI)
7342
+ * Copyright 2025 - The Norwegian Meteorological Institute (MET Norway)
7343
+ * */
7344
+
7345
+ var types = /*#__PURE__*/Object.freeze({
7346
+ __proto__: null
7347
+ });
7348
+
7299
7349
  var OpenLayersFeatureLayerConnect = function OpenLayersFeatureLayerConnect(_ref) {
7300
7350
  var layer = _ref.layer,
7301
7351
  layerId = _ref.layerId,
@@ -7965,7 +8015,8 @@ var OlMapViewConnect = function OlMapViewConnect(_ref) {
7965
8015
  var layerDivStyle = React.useMemo(function () {
7966
8016
  var style = {
7967
8017
  position: 'absolute',
7968
- zIndex: 1
8018
+ zIndex: 1,
8019
+ width: '100%'
7969
8020
  };
7970
8021
  if (isSearchDialogOpen) {
7971
8022
  style.top = 8 + 40 + "px";
@@ -8055,6 +8106,8 @@ var OlMapViewConnect = function OlMapViewConnect(_ref) {
8055
8106
  multiLegend: controls == null ? void 0 : controls.multiLegend,
8056
8107
  source: source
8057
8108
  })]
8109
+ }), (controls == null ? void 0 : controls.dataExplorerButton) && jsx(DataExplorerButtonConnect, {
8110
+ mapId: mapId
8058
8111
  }), (controls == null ? void 0 : controls.dimensionSelect) && jsx(MultiDimensionSelectMapButtonsConnect, {
8059
8112
  mapId: mapId
8060
8113
  }), (controls == null ? void 0 : controls.getFeatureInfo) && jsx(GetFeatureInfoButtonConnect, {
@@ -8078,7 +8131,7 @@ var OlMapViewConnect = function OlMapViewConnect(_ref) {
8078
8131
  });
8079
8132
  };
8080
8133
 
8081
- var _excluded = ["id", "dockedLayerManagerSize", "title", "layers", "dimensions", "shouldAutoUpdate", "shouldAnimate", "shouldAutoFetch", "initialBbox", "srs", "shouldShowZoomControls", "displayMapPin", "showTimeSlider", "disableTimeSlider", "displayTimeInMap", "displayLayerManagerAndLegendButtonInMap", "displayDimensionSelectButtonInMap", "multiLegend", "shouldShowLayerManager", "shouldShowDockedLayerManager", "showClock", "displayGetFeatureInfoButtonInMap", "shouldDisplayDrawControls", "displaySearchButtonInMap", "mapControls", "children", "shouldDisablePrefetching", "tileServerSettings"];
8134
+ var _excluded = ["id", "dockedLayerManagerSize", "title", "layers", "dimensions", "shouldAutoUpdate", "shouldAnimate", "shouldAutoFetch", "initialBbox", "srs", "shouldShowZoomControls", "displayMapPin", "showTimeSlider", "disableTimeSlider", "displayTimeInMap", "displayLayerManagerAndLegendButtonInMap", "displayDimensionSelectButtonInMap", "multiLegend", "shouldShowLayerManager", "shouldShowDockedLayerManager", "showClock", "displayGetFeatureInfoButtonInMap", "shouldDisplayDrawControls", "displaySearchButtonInMap", "displayDataExplorerButtonOnMap", "mapControls", "children", "shouldDisablePrefetching", "tileServerSettings"];
8082
8135
  var titleStyle = function titleStyle(theme) {
8083
8136
  return {
8084
8137
  position: 'absolute',
@@ -8143,6 +8196,8 @@ var ConfigurableMapConnect = function ConfigurableMapConnect(_ref) {
8143
8196
  shouldDisplayDrawControls = _ref$shouldDisplayDra === void 0 ? false : _ref$shouldDisplayDra,
8144
8197
  _ref$displaySearchBut = _ref.displaySearchButtonInMap,
8145
8198
  displaySearchButtonInMap = _ref$displaySearchBut === void 0 ? false : _ref$displaySearchBut,
8199
+ _ref$displayDataExplo = _ref.displayDataExplorerButtonOnMap,
8200
+ displayDataExplorerButtonOnMap = _ref$displayDataExplo === void 0 ? false : _ref$displayDataExplo,
8146
8201
  mapControls = _ref.mapControls,
8147
8202
  children = _ref.children,
8148
8203
  shouldDisablePrefetching = _ref.shouldDisablePrefetching,
@@ -8238,9 +8293,10 @@ var ConfigurableMapConnect = function ConfigurableMapConnect(_ref) {
8238
8293
  multiLegend: multiLegend,
8239
8294
  dimensionSelect: displayDimensionSelectButtonInMap,
8240
8295
  getFeatureInfo: displayGetFeatureInfoButtonInMap,
8296
+ dataExplorerButton: displayDataExplorerButtonOnMap,
8241
8297
  additionalMapControls: mapControls
8242
8298
  };
8243
- }, [title, displaySearchButtonInMap, shouldShowZoomControls, displayLayerManagerAndLegendButtonInMap, multiLegend, displayDimensionSelectButtonInMap, displayGetFeatureInfoButtonInMap, mapControls]);
8299
+ }, [title, displaySearchButtonInMap, shouldShowZoomControls, displayLayerManagerAndLegendButtonInMap, multiLegend, displayDimensionSelectButtonInMap, displayGetFeatureInfoButtonInMap, displayDataExplorerButtonOnMap, mapControls]);
8244
8300
  return React__default.useMemo(function () {
8245
8301
  renderCounter.count(ConfigurableMapConnect.name + "_" + mapId);
8246
8302
  return jsxs(Box, {
@@ -8520,8 +8576,8 @@ var useGetReferenceTimes = function useGetReferenceTimes(inputLayer) {
8520
8576
  var refTimeDim = layer.getDimension('reference_time');
8521
8577
  /* Loop through all values of the dimension.
8522
8578
  A map cannot be used for iterating, as the dimension values are not in an array (it is an API). */
8523
- for (var j = 0; j < refTimeDim.size(); j += 1) {
8524
- var referenceTimeValue = refTimeDim.getValueForIndex(j);
8579
+ for (var jIndex = 0; jIndex < refTimeDim.size(); jIndex += 1) {
8580
+ var referenceTimeValue = refTimeDim.getValueForIndex(jIndex);
8525
8581
  referenceTimes.push(referenceTimeValue);
8526
8582
  }
8527
8583
  setReferenceTimes(referenceTimes);
@@ -8616,7 +8672,8 @@ var componentsLookUp = function componentsLookUp(_ref) {
8616
8672
  var mapPreset = initialProps.mapPreset,
8617
8673
  mapControls = initialProps.mapControls,
8618
8674
  shouldDisplayDrawControls = initialProps.shouldDisplayDrawControls,
8619
- displaySearchButtonInMap = initialProps.displaySearchButtonInMap;
8675
+ displaySearchButtonInMap = initialProps.displaySearchButtonInMap,
8676
+ displayDataExplorerButtonOnMap = initialProps.displayDataExplorerButtonOnMap;
8620
8677
  return jsx(ConfigurableMapConnect, Object.assign({}, mapPreset, {
8621
8678
  initialBbox: mapPreset == null || (_mapPreset$proj = mapPreset.proj) == null ? void 0 : _mapPreset$proj.bbox,
8622
8679
  srs: mapPreset == null || (_mapPreset$proj2 = mapPreset.proj) == null ? void 0 : _mapPreset$proj2.srs,
@@ -8625,6 +8682,7 @@ var componentsLookUp = function componentsLookUp(_ref) {
8625
8682
  displayGetFeatureInfoButtonInMap: true,
8626
8683
  shouldDisplayDrawControls: shouldDisplayDrawControls,
8627
8684
  displaySearchButtonInMap: displaySearchButtonInMap,
8685
+ displayDataExplorerButtonOnMap: displayDataExplorerButtonOnMap,
8628
8686
  mapControls: mapControls
8629
8687
  }));
8630
8688
  }
@@ -9424,6 +9482,162 @@ var LanguageSelect = function LanguageSelect(_ref) {
9424
9482
  });
9425
9483
  };
9426
9484
 
9485
+ /* *
9486
+ * Licensed under the Apache License, Version 2.0 (the "License");
9487
+ * you may not use this file except in compliance with the License.
9488
+ * You may obtain a copy of the License at
9489
+ *
9490
+ * http://www.apache.org/licenses/LICENSE-2.0
9491
+ *
9492
+ * Unless required by applicable law or agreed to in writing, software
9493
+ * distributed under the License is distributed on an "AS IS" BASIS,
9494
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
9495
+ * See the License for the specific language governing permissions and
9496
+ * limitations under the License.
9497
+ *
9498
+ * Copyright 2025 - Koninklijk Nederlands Meteorologisch Instituut (KNMI)
9499
+ * Copyright 2025 - Finnish Meteorological Institute (FMI)
9500
+ * Copyright 2025 - The Norwegian Meteorological Institute (MET Norway)
9501
+ * */
9502
+ var fakeLocationList = [{
9503
+ id: 'EHAM',
9504
+ name: 'Amsterdam Airport Schiphol - EHAM',
9505
+ source: 'A'
9506
+ }, {
9507
+ id: 'weg-c7702b4019c119f21789f499a9270a8c',
9508
+ name: 'A12, Arnhem',
9509
+ source: 'P'
9510
+ }, {
9511
+ id: 'weg-ef6c8b8fd8440f4d96d96824fc2a4093',
9512
+ name: 'A12, Arnhem, MultiLineString',
9513
+ source: 'P'
9514
+ }, {
9515
+ id: 'pcd-5d8813ff27d390369c3d2fff69bfb0fa',
9516
+ name: 'Blauwkapelseweg, 3572KC Utrecht',
9517
+ source: 'P'
9518
+ }, {
9519
+ id: '06260',
9520
+ name: 'De Bilt - 06260',
9521
+ source: 'W'
9522
+ }, {
9523
+ id: 'gem-0b2a8b92856b27f86fbd67ab35808ebf',
9524
+ name: 'Gemeente Amsterdam',
9525
+ source: 'P'
9526
+ }, {
9527
+ id: 'gem-e64a22d3a9bb57e785a884bd7f7df6ca',
9528
+ name: 'Gemeente Arnhem',
9529
+ source: 'P'
9530
+ }, {
9531
+ id: '658225',
9532
+ name: 'Helsinki, Uusimaa, Finland',
9533
+ source: 'G'
9534
+ }];
9535
+ var fakeLocationDetailList = [{
9536
+ id: 'EHAM',
9537
+ name: 'Amsterdam Airport Schiphol - EHAM',
9538
+ source: 'A',
9539
+ lon: 4.76389,
9540
+ lat: 52.308601
9541
+ }, {
9542
+ id: '06260',
9543
+ name: 'De Bilt - 06260',
9544
+ source: 'W',
9545
+ lon: 5.18,
9546
+ lat: 52.1
9547
+ }, {
9548
+ lat: 52.10125783,
9549
+ lon: 5.12972011,
9550
+ source: 'P',
9551
+ id: 'pcd-5d8813ff27d390369c3d2fff69bfb0fa',
9552
+ name: 'Blauwkapelseweg, 3572KC Utrecht',
9553
+ geometry: {
9554
+ type: 'Feature',
9555
+ geometry: {
9556
+ type: 'Point',
9557
+ coordinates: [5.12972011, 52.10125783]
9558
+ }
9559
+ }
9560
+ }, {
9561
+ id: 'weg-c7702b4019c119f21789f499a9270a8c',
9562
+ name: 'A12, Arnhem',
9563
+ source: 'P',
9564
+ lat: 52.01459863,
9565
+ lon: 5.92115805,
9566
+ geometry: {
9567
+ type: 'Feature',
9568
+ properties: {},
9569
+ geometry: {
9570
+ type: 'LineString',
9571
+ coordinates: [[5.723182066074628, 52.021961941904436], [5.821250546216021, 52.0256350284852], [5.860476940657833, 52.02930789018711], [5.936353777736599, 52.013041507826415], [5.9585833728647515, 51.99098354703645], [5.981670640390121, 51.98046570698139], [6.003008228959999, 51.96574744492605]]
9572
+ }
9573
+ }
9574
+ }, {
9575
+ id: 'gem-e64a22d3a9bb57e785a884bd7f7df6ca',
9576
+ name: 'Gemeente Arnhem',
9577
+ source: 'P',
9578
+ lat: 52.00113721,
9579
+ lon: 5.89259249,
9580
+ geometry: {
9581
+ type: 'Feature',
9582
+ geometry: {
9583
+ type: 'Polygon',
9584
+ coordinates: [[[5.89827, 51.93458], [5.90186, 51.93346], [5.91277, 51.94529], [5.91096, 51.94591], [5.91165, 51.94704], [5.91137, 51.94727], [5.91202, 51.94782], [5.91417, 51.94869], [5.91517, 51.94996], [5.9169, 51.95052], [5.92649, 51.95115], [5.92945, 51.95059], [5.92956, 51.95125], [5.93017, 51.95227], [5.93123, 51.95342], [5.93091, 51.95387], [5.93146, 51.95482], [5.93121, 51.95497], [5.93155, 51.95527], [5.93145, 51.95557], [5.93179, 51.95621], [5.93157, 51.95691], [5.93181, 51.9573], [5.93161, 51.9575], [5.93183, 51.95948], [5.93233, 51.95973], [5.93334, 51.95983], [5.9356, 51.96042], [5.93657, 51.95908], [5.93778, 51.95787], [5.94033, 51.95604], [5.94511, 51.95346], [5.95195, 51.95059], [5.95523, 51.94875], [5.95089, 51.95299], [5.94953, 51.95567], [5.94925, 51.95745], [5.94966, 51.96008], [5.95097, 51.96283], [5.95243, 51.96457], [5.95546, 51.96702], [5.95894, 51.9692], [5.96204, 51.97059], [5.96463, 51.97142], [5.96841, 51.97208], [5.97387, 51.97261], [5.98001, 51.97355], [5.98777, 51.97407], [5.99034, 51.97441], [5.9868, 51.9772], [5.98669, 51.97753], [5.98501, 51.9789], [5.98065, 51.98145], [5.9784, 51.98245], [5.97551, 51.98345], [5.97551, 51.98359], [5.97503, 51.98357], [5.97503, 51.98372], [5.97326, 51.9841], [5.97088, 51.98491], [5.9681, 51.98551], [5.96518, 51.98649], [5.96201, 51.98792], [5.9592, 51.98964], [5.9558, 51.99268], [5.95519, 51.99336], [5.9555, 51.99345], [5.95444, 51.99473], [5.95397, 51.99457], [5.95361, 51.995], [5.95193, 51.99846], [5.95093, 52.00146], [5.95031, 52.00232], [5.94983, 52.00409], [5.94877, 52.00537], [5.94813, 52.00659], [5.94331, 52.01013], [5.94603, 52.01041], [5.94607, 52.01061], [5.9424, 52.01083], [5.9414, 52.01149], [5.94019, 52.01871], [5.9391, 52.03142], [5.93807, 52.03857], [5.9371, 52.04853], [5.94091, 52.05795], [5.94283, 52.06116], [5.94329, 52.06246], [5.95593, 52.07334], [5.95191, 52.07532], [5.9461, 52.07789], [5.94607, 52.07773], [5.94506, 52.07783], [5.94219, 52.07659], [5.90974, 52.0621], [5.89812, 52.06336], [5.89845, 52.06182], [5.89803, 52.06145], [5.89807, 52.06101], [5.8994, 52.04996], [5.88206, 52.04941], [5.85967, 52.05202], [5.85005, 52.0516], [5.83792, 52.04663], [5.82659, 52.03694], [5.82615, 52.03673], [5.82103, 52.03208], [5.80834, 52.01876], [5.80723, 52.0117], [5.80296, 52.00405], [5.807, 52.00311], [5.81725, 52.00143], [5.82628, 51.99956], [5.83629, 51.99856], [5.84054, 51.9987], [5.84712, 51.99836], [5.84967, 51.99804], [5.85242, 51.99707], [5.85621, 51.9961], [5.86374, 51.99589], [5.86256, 51.99122], [5.8647, 51.99108], [5.86315, 51.98529], [5.86382, 51.98517], [5.86624, 51.98411], [5.86737, 51.98029], [5.86728, 51.98014], [5.86586, 51.97987], [5.86547, 51.97865], [5.86374, 51.97796], [5.86472, 51.97627], [5.8659, 51.97569], [5.86687, 51.9753], [5.86919, 51.97599], [5.87086, 51.97511], [5.86778, 51.97241], [5.86532, 51.97092], [5.86206, 51.96991], [5.85912, 51.96954], [5.85707, 51.96953], [5.85469, 51.96976], [5.84403, 51.9725], [5.83906, 51.97328], [5.83534, 51.97356], [5.83548, 51.97239], [5.8362, 51.97143], [5.8362, 51.97089], [5.83538, 51.97085], [5.83518, 51.96886], [5.83585, 51.9684], [5.83598, 51.96633], [5.83518, 51.96417], [5.8346, 51.96325], [5.83401, 51.96271], [5.83237, 51.96189], [5.82934, 51.96085], [5.8302, 51.95862], [5.83109, 51.95869], [5.83134, 51.95854], [5.83128, 51.95555], [5.8307, 51.95439], [5.83008, 51.95385], [5.82991, 51.95343], [5.83051, 51.95327], [5.82877, 51.95004], [5.82866, 51.94826], [5.82966, 51.94551], [5.82993, 51.94524], [5.8373, 51.94518], [5.83731, 51.94416], [5.83864, 51.94412], [5.8389, 51.94431], [5.84401, 51.94376], [5.84968, 51.94294], [5.85039, 51.94451], [5.86193, 51.9425], [5.86224, 51.94289], [5.8685, 51.94218], [5.87189, 51.94152], [5.87476, 51.94079], [5.87619, 51.9402], [5.8772, 51.93917], [5.87786, 51.93883], [5.87949, 51.93865], [5.8814, 51.93825], [5.88283, 51.93777], [5.88464, 51.93749], [5.88777, 51.93614], [5.89267, 51.93573], [5.89792, 51.93436], [5.89827, 51.93458]]]
9585
+ },
9586
+ properties: {}
9587
+ }
9588
+ }, {
9589
+ id: 'gem-0b2a8b92856b27f86fbd67ab35808ebf',
9590
+ name: 'Gemeente Amsterdam',
9591
+ source: 'P',
9592
+ lat: 52.36648685,
9593
+ lon: 4.91978668,
9594
+ geometry: {
9595
+ type: 'Feature',
9596
+ geometry: {
9597
+ type: 'MultiPolygon',
9598
+ coordinates: [[[[5.07349, 52.27806], [5.07708, 52.27798], [5.0846, 52.2794], [5.0877, 52.28168], [5.10207, 52.27989], [5.10218, 52.28123], [5.10201, 52.28165], [5.10278, 52.28209], [5.10282, 52.28238], [5.10428, 52.28321], [5.10426, 52.28381], [5.10481, 52.28432], [5.1047, 52.28556], [5.10205, 52.28766], [5.09968, 52.29001], [5.09884, 52.29063], [5.09871, 52.29057], [5.09847, 52.29164], [5.09874, 52.29219], [5.09948, 52.29271], [5.09935, 52.2928], [5.10292, 52.29447], [5.10607, 52.29467], [5.10742, 52.29633], [5.10767, 52.29729], [5.10725, 52.29786], [5.10622, 52.29834], [5.10526, 52.29842], [5.10197, 52.2978], [5.1013, 52.29792], [5.09894, 52.2987], [5.09719, 52.29995], [5.09677, 52.30046], [5.09577, 52.30376], [5.09626, 52.30686], [5.09682, 52.3076], [5.09871, 52.30877], [5.09959, 52.30953], [5.0998, 52.31003], [5.10057, 52.3103], [5.10055, 52.31044], [5.09767, 52.31154], [5.09213, 52.31301], [5.09308, 52.31415], [5.09281, 52.31427], [5.09261, 52.31422], [5.09053, 52.31499], [5.08481, 52.31633], [5.0849, 52.31674], [5.08321, 52.31727], [5.08296, 52.31702], [5.07751, 52.31818], [5.07311, 52.32018], [5.07276, 52.31994], [5.06951, 52.32179], [5.06908, 52.32153], [5.06878, 52.32172], [5.06586, 52.32224], [5.06522, 52.32221], [5.06469, 52.32201], [5.06528, 52.32144], [5.06572, 52.32048], [5.06526, 52.31918], [5.0633, 52.31821], [5.0624, 52.31758], [5.06084, 52.31698], [5.05972, 52.31679], [5.05834, 52.31632], [5.05803, 52.31668], [5.05909, 52.31705], [5.05674, 52.3196], [5.05814, 52.32042], [5.06039, 52.32116], [5.06147, 52.32175], [5.06144, 52.32204], [5.0611, 52.32208], [5.06151, 52.32367], [5.05747, 52.32503], [5.04934, 52.32695], [5.04815, 52.32702], [5.04625, 52.32673], [5.04518, 52.32685], [5.0444, 52.32715], [5.04486, 52.32745], [5.0439, 52.32799], [5.04355, 52.32778], [5.04249, 52.32828], [5.04013, 52.32896], [5.03329, 52.33019], [5.02877, 52.33078], [5.02483, 52.33063], [5.02159, 52.33086], [5.01727, 52.33019], [5.01811, 52.32782], [5.01849, 52.32329], [5.01665, 52.32299], [5.01613, 52.32451], [5.00652, 52.31908], [5.00153, 52.31591], [4.99786, 52.31398], [4.99746, 52.31425], [4.9973, 52.3142], [4.99709, 52.31446], [4.99737, 52.31667], [4.9971, 52.31739], [4.99211, 52.32377], [4.99074, 52.32635], [4.98905, 52.32798], [4.9853, 52.33026], [4.98397, 52.33067], [4.98252, 52.3308], [4.98068, 52.33076], [4.9798, 52.331], [4.97795, 52.33116], [4.97714, 52.33064], [4.97531, 52.33056], [4.97483, 52.3297], [4.97403, 52.32891], [4.97181, 52.32747], [4.9711, 52.32665], [4.97025, 52.32617], [4.96754, 52.32776], [4.95268, 52.32264], [4.94766, 52.32814], [4.94049, 52.32568], [4.93861, 52.32422], [4.93796, 52.32412], [4.93762, 52.3233], [4.93993, 52.32194], [4.94021, 52.32081], [4.94104, 52.31962], [4.93958, 52.31912], [4.94033, 52.3183], [4.93983, 52.31712], [4.93804, 52.31651], [4.93874, 52.31564], [4.93872, 52.31509], [4.93523, 52.31389], [4.93635, 52.31266], [4.93414, 52.3119], [4.93007, 52.30934], [4.9303, 52.30918], [4.92933, 52.30853], [4.92991, 52.3081], [4.92942, 52.30783], [4.92983, 52.30752], [4.92947, 52.30741], [4.93049, 52.30616], [4.93272, 52.30426], [4.93322, 52.30355], [4.93494, 52.30197], [4.94641, 52.28856], [4.95209, 52.28253], [4.95184, 52.28244], [4.95524, 52.2783], [4.95714, 52.27867], [4.95866, 52.27834], [4.95997, 52.27835], [4.96105, 52.27817], [4.96224, 52.28021], [4.96532, 52.28045], [4.96617, 52.28098], [4.96649, 52.2801], [4.96767, 52.27958], [4.96875, 52.28073], [4.96938, 52.28179], [4.96973, 52.28312], [4.97515, 52.28634], [4.98289, 52.28964], [4.98351, 52.29037], [4.99046, 52.2896], [4.99748, 52.28912], [4.99845, 52.28984], [4.99855, 52.29023], [4.99881, 52.29024], [5.00179, 52.29279], [5.00185, 52.29588], [5.00323, 52.29606], [5.00323, 52.29739], [5.00383, 52.29851], [5.00526, 52.29839], [5.00754, 52.30087], [5.00789, 52.30152], [5.00992, 52.30209], [5.01105, 52.30303], [5.01177, 52.30339], [5.01426, 52.30368], [5.01669, 52.30288], [5.01784, 52.30266], [5.02154, 52.30246], [5.02187, 52.28265], [5.02438, 52.28136], [5.03053, 52.28849], [5.03321, 52.28626], [5.03342, 52.28631], [5.03515, 52.28553], [5.03943, 52.28324], [5.04079, 52.28388], [5.04278, 52.28249], [5.04748, 52.28502], [5.0504, 52.28787], [5.05158, 52.28732], [5.05277, 52.28649], [5.05483, 52.28755], [5.05954, 52.28932], [5.06328, 52.28719], [5.06419, 52.28629], [5.06479, 52.28508], [5.06547, 52.2852], [5.06566, 52.28269], [5.06549, 52.28127], [5.06588, 52.28127], [5.0659, 52.28055], [5.06519, 52.28054], [5.06441, 52.28074], [5.06389, 52.27998], [5.06494, 52.27987], [5.06533, 52.27964], [5.06434, 52.27926], [5.06453, 52.27902], [5.06386, 52.27852], [5.06463, 52.27826], [5.07349, 52.27806]]], [[[4.91359, 52.32069], [4.91073, 52.32191], [4.91135, 52.3229], [4.91033, 52.32357], [4.91129, 52.32416], [4.91388, 52.32455], [4.91293, 52.33051], [4.91417, 52.33068], [4.9169, 52.33136], [4.92255, 52.33308], [4.92244, 52.33322], [4.92351, 52.33426], [4.92377, 52.33544], [4.92577, 52.33537], [4.92694, 52.33578], [4.92677, 52.33596], [4.92849, 52.33655], [4.93422, 52.3355], [4.93562, 52.33551], [4.93651, 52.33459], [4.93815, 52.33524], [4.93953, 52.33559], [4.94171, 52.33553], [4.94172, 52.33641], [4.9438, 52.33671], [4.94955, 52.33838], [4.94986, 52.33853], [4.9497, 52.33873], [4.95189, 52.33967], [4.95305, 52.34037], [4.9597, 52.34693], [4.95993, 52.34745], [4.96137, 52.34885], [4.96496, 52.35328], [4.96582, 52.3547], [4.96624, 52.35416], [4.96831, 52.35493], [4.96952, 52.3555], [4.96931, 52.35561], [4.96959, 52.3561], [4.97218, 52.35555], [4.97449, 52.35467], [4.99932, 52.34154], [4.99991, 52.34193], [5.00072, 52.3422], [5.00411, 52.34258], [5.00547, 52.34246], [5.00829, 52.34185], [5.00953, 52.342], [5.01106, 52.3427], [5.012, 52.34336], [5.01238, 52.34431], [5.0159, 52.34832], [5.03906, 52.35458], [5.03768, 52.3754], [5.0671, 52.38467], [5.07916, 52.38865], [5.07426, 52.41384], [5.06827, 52.41656], [5.06541, 52.41724], [5.06368, 52.41643], [5.06256, 52.41617], [5.05776, 52.41654], [5.05093, 52.41528], [5.04918, 52.41513], [5.04259, 52.41698], [5.03939, 52.41738], [5.03687, 52.41809], [5.03547, 52.41827], [5.03505, 52.4182], [5.0344, 52.41781], [5.03406, 52.41717], [5.03347, 52.41669], [5.03249, 52.41628], [5.03004, 52.41564], [5.03005, 52.41683], [5.02973, 52.41771], [5.02898, 52.41886], [5.02836, 52.41942], [5.0265, 52.42006], [5.02429, 52.42012], [5.02356, 52.42027], [5.02161, 52.42122], [5.02115, 52.42107], [5.02031, 52.4199], [5.01821, 52.41906], [5.00016, 52.42544], [4.99137, 52.4254], [4.99045, 52.42552], [4.99041, 52.42452], [4.98918, 52.42337], [4.98883, 52.42325], [4.98777, 52.42327], [4.9871, 52.42284], [4.98264, 52.42676], [4.97332, 52.4228], [4.95595, 52.42195], [4.95588, 52.42244], [4.9536, 52.42221], [4.95261, 52.42326], [4.95249, 52.42349], [4.95277, 52.42368], [4.95133, 52.42323], [4.95163, 52.42265], [4.95148, 52.42193], [4.94971, 52.42193], [4.94853, 52.42142], [4.94779, 52.42156], [4.94497, 52.41532], [4.94407, 52.41434], [4.94257, 52.41384], [4.93514, 52.41204], [4.93072, 52.41161], [4.93038, 52.41208], [4.92044, 52.41661], [4.91569, 52.41856], [4.9147, 52.41868], [4.91465, 52.4185], [4.91405, 52.4185], [4.91359, 52.41865], [4.90868, 52.42072], [4.90796, 52.42087], [4.90808, 52.42112], [4.90189, 52.42362], [4.89841, 52.42458], [4.89246, 52.42545], [4.88948, 52.42564], [4.88298, 52.42551], [4.88246, 52.42589], [4.88181, 52.42602], [4.87952, 52.42569], [4.87767, 52.42588], [4.87597, 52.42655], [4.87411, 52.42796], [4.87334, 52.42949], [4.87274, 52.42954], [4.8721, 52.42992], [4.87096, 52.43019], [4.87074, 52.43039], [4.8697, 52.42975], [4.86874, 52.43032], [4.86669, 52.43067], [4.86501, 52.43055], [4.86268, 52.42994], [4.86281, 52.42962], [4.86245, 52.42878], [4.85795, 52.42472], [4.85791, 52.42373], [4.85972, 52.42128], [4.85986, 52.42047], [4.85949, 52.41979], [4.85608, 52.41666], [4.84529, 52.41847], [4.76754, 52.4285], [4.76718, 52.42747], [4.73921, 52.43106], [4.72876, 52.40071], [4.75605, 52.39719], [4.75602, 52.3971], [4.75745, 52.39689], [4.75782, 52.39666], [4.75801, 52.38955], [4.75894, 52.38442], [4.75912, 52.37933], [4.75726, 52.37798], [4.75643, 52.37776], [4.75805, 52.37507], [4.7586, 52.37222], [4.75798, 52.36924], [4.7549, 52.35838], [4.7551, 52.35683], [4.75611, 52.35583], [4.75733, 52.3552], [4.77174, 52.34956], [4.79054, 52.34184], [4.79178, 52.34103], [4.79777, 52.33528], [4.81544, 52.32789], [4.81713, 52.32692], [4.81843, 52.32556], [4.81947, 52.32557], [4.81989, 52.32576], [4.82518, 52.32573], [4.82606, 52.32593], [4.83941, 52.32736], [4.83941, 52.32755], [4.83963, 52.32756], [4.83948, 52.32915], [4.84052, 52.32959], [4.84396, 52.33022], [4.84524, 52.32968], [4.84756, 52.33005], [4.84801, 52.33057], [4.85592, 52.33032], [4.85642, 52.32885], [4.85633, 52.32176], [4.85657, 52.32177], [4.85675, 52.32141], [4.85761, 52.32143], [4.85765, 52.32169], [4.85786, 52.32173], [4.89629, 52.32242], [4.89715, 52.3219], [4.89828, 52.32164], [4.9016, 52.32153], [4.90253, 52.32132], [4.9047, 52.32039], [4.90784, 52.3195], [4.90905, 52.31883], [4.90914, 52.31825], [4.91238, 52.31825], [4.91428, 52.32041], [4.91359, 52.32069]]]]
9599
+ },
9600
+ properties: {}
9601
+ }
9602
+ }, {
9603
+ id: 'weg-ef6c8b8fd8440f4d96d96824fc2a4093',
9604
+ name: 'A12, Arnhem, MultiLineString',
9605
+ source: 'P',
9606
+ lat: 52.01459863,
9607
+ lon: 5.92115805,
9608
+ geometry: {
9609
+ type: 'Feature',
9610
+ geometry: {
9611
+ type: 'MultiLineString',
9612
+ coordinates: [[[5.81367, 52.02431], [5.8408, 52.02822], [5.84814, 52.02867], [5.85594, 52.02852], [5.86208, 52.02794], [5.86851, 52.02687], [5.87294, 52.02583], [5.89013, 52.02112], [5.89487, 52.02018], [5.90455, 52.01868]], [[5.90455, 52.01868], [5.91249, 52.01727], [5.91613, 52.01629], [5.91772, 52.01617], [5.91913, 52.01628]], [[5.91913, 52.01628], [5.92001, 52.01581], [5.92095, 52.01472], [5.92158, 52.01445], [5.92244, 52.01443], [5.92515, 52.01498]], [[5.92515, 52.01498], [5.9255, 52.01504]], [[5.8187, 52.02512], [5.8187, 52.02518]], [[5.8187, 52.02518], [5.81862, 52.02604], [5.81882, 52.02654], [5.81936, 52.02697], [5.82019, 52.02724], [5.82155, 52.02717], [5.82312, 52.02642], [5.824, 52.02623], [5.82783, 52.02653]], [[5.82783, 52.02653], [5.83847, 52.0281], [5.84188, 52.02846], [5.84733, 52.02879], [5.85241, 52.02881], [5.85846, 52.02847], [5.86428, 52.02777], [5.87025, 52.02664], [5.87549, 52.02528]], [[5.87549, 52.02528], [5.87771, 52.0248]], [[5.87771, 52.0248], [5.878, 52.02492]], [[5.878, 52.02492], [5.87838, 52.0249]], [[5.87838, 52.0249], [5.87888, 52.02502], [5.88028, 52.02474]], [[5.88028, 52.02474], [5.88138, 52.02384]], [[5.88138, 52.02384], [5.88331, 52.02309]], [[5.88331, 52.02309], [5.88916, 52.0215], [5.89402, 52.02047], [5.91825, 52.01675]], [[5.91825, 52.01675], [5.92178, 52.01645], [5.92271, 52.01665], [5.92437, 52.01738]], [[5.92437, 52.01738], [5.92525, 52.01743]], [[5.97711, 51.98293], [5.97675, 51.98263]], [[5.97675, 51.98263], [5.98048, 51.98113]], [[5.98048, 51.98113], [5.98036, 51.98104]], [[5.98036, 51.98104], [5.98442, 51.97869], [5.98987, 51.97439]], [[5.97426, 51.97989], [5.97562, 51.98025], [5.97614, 51.98058], [5.97646, 51.98107], [5.97645, 51.98179]], [[5.97645, 51.98179], [5.97722, 51.98099], [5.97842, 51.98063]], [[5.97842, 51.98063], [5.97904, 51.98062]], [[5.97904, 51.98062], [5.98113, 51.98027], [5.98276, 51.97952]], [[5.98276, 51.97952], [5.98553, 51.97769], [5.98974, 51.9743]], [[5.98077, 51.98145], [5.98048, 51.98113]], [[5.98048, 51.98113], [5.98289, 51.97985], [5.98509, 51.97841]], [[5.98509, 51.97841], [5.99016, 51.97437]], [[5.98201, 51.98075], [5.98509, 51.97841]], [[5.97842, 51.98063], [5.9767, 51.98035]], [[5.9767, 51.98035], [5.97981, 51.98046], [5.98109, 51.9802], [5.98276, 51.97952]], [[5.97678, 51.98313], [5.96979, 51.98471]], [[5.96979, 51.98471], [5.97675, 51.98263]], [[5.97675, 51.98263], [5.97668, 51.98253]], [[5.97668, 51.98253], [5.98036, 51.98104]], [[5.98036, 51.98104], [5.97904, 51.98062]], [[5.90455, 52.01868], [5.91637, 52.01693]], [[5.91637, 52.01693], [5.91913, 52.01628]], [[5.91913, 52.01628], [5.91978, 52.01641]], [[5.91978, 52.01641], [5.91637, 52.01693]], [[5.91825, 52.01675], [5.93018, 52.01491], [5.93301, 52.01427], [5.93609, 52.01337]], [[5.93609, 52.01337], [5.93938, 52.01198], [5.94245, 52.01033], [5.94487, 52.00861], [5.94703, 52.0066], [5.94931, 52.00346], [5.95348, 51.99491], [5.95508, 51.99278], [5.95704, 51.99088], [5.95967, 51.98895], [5.9627, 51.98727], [5.96604, 51.98588], [5.96979, 51.98471]], [[5.96837, 51.98496], [5.97561, 51.98257], [5.97611, 51.98228], [5.97645, 51.98179]], [[5.97645, 51.98179], [5.97668, 51.98253]], [[5.97668, 51.98253], [5.96837, 51.98496]], [[5.96837, 51.98496], [5.96467, 51.98624], [5.96181, 51.98753], [5.95923, 51.98903], [5.95683, 51.99083], [5.9549, 51.99271], [5.95341, 51.99464], [5.94897, 52.00364], [5.94779, 52.00541], [5.94639, 52.00699], [5.94399, 52.00908], [5.94116, 52.01091], [5.93784, 52.01252], [5.93433, 52.01377]], [[5.93433, 52.01377], [5.92963, 52.01488], [5.91978, 52.01641]], [[5.91978, 52.01641], [5.91988, 52.01644]], [[5.97433, 51.97978], [5.9767, 51.98035]], [[5.92396, 52.02223], [5.92376, 52.0196], [5.92437, 52.01738]], [[5.92437, 52.01738], [5.92505, 52.01641], [5.92611, 52.01579], [5.93142, 52.01479]], [[5.93142, 52.01479], [5.93369, 52.01423], [5.93609, 52.01337]], [[5.92555, 52.01744], [5.92668, 52.0173], [5.92761, 52.01619], [5.9285, 52.01558], [5.93142, 52.01479]], [[5.92571, 52.01505], [5.93004, 52.01465], [5.93433, 52.01377]], [[5.92515, 52.01498], [5.92551, 52.01491]], [[5.81343, 52.02408], [5.81561, 52.02377], [5.81731, 52.02286], [5.81811, 52.02155], [5.81791, 52.01992]], [[5.81381, 52.02447], [5.8187, 52.02518]], [[5.8187, 52.02518], [5.82783, 52.02653]], [[5.87838, 52.0249], [5.87911, 52.02472], [5.87931, 52.02441]], [[5.87931, 52.02441], [5.88066, 52.02414], [5.88138, 52.02384]], [[5.878, 52.02492], [5.87835, 52.02513], [5.87892, 52.02519], [5.88028, 52.02474]], [[5.87771, 52.0248], [5.87931, 52.02441]], [[5.87549, 52.02528], [5.88331, 52.02309]]]
9613
+ },
9614
+ properties: {}
9615
+ }
9616
+ }, {
9617
+ id: '658225',
9618
+ name: 'Helsinki, Uusimaa, Finland',
9619
+ source: 'G',
9620
+ lat: 60.16952,
9621
+ lon: 24.93545,
9622
+ bbox: [24.782805558281286, 59.92249323820872, 25.254496669447338, 60.29783941145479]
9623
+ }];
9624
+ var locationApiEndpoints = [http.get(/^.*locations(.*)$/, function (_ref) {
9625
+ var request = _ref.request;
9626
+ var url = new URL(request.url);
9627
+ var search = url.searchParams.get('search');
9628
+ return HttpResponse.json(search ? fakeLocationList : []);
9629
+ }), http.get(/^.*locationdetail(.*)$/, function (_ref2) {
9630
+ var request = _ref2.request;
9631
+ var url = new URL(request.url);
9632
+ var id = url.searchParams.get('id');
9633
+ var result = fakeLocationDetailList.find(function (item) {
9634
+ return item.id === id;
9635
+ });
9636
+ return HttpResponse.json(result);
9637
+ }), http.get(/^(?!.*(location)).*$/, function () {
9638
+ return passthrough();
9639
+ })];
9640
+
9427
9641
  var initialBbox = {
9428
9642
  srs: 'EPSG:3857',
9429
9643
  bbox: {
@@ -9549,4 +9763,4 @@ var storyUtils = /*#__PURE__*/Object.freeze({
9549
9763
  useDefaultMapSettings: useDefaultMapSettings
9550
9764
  });
9551
9765
 
9552
- export { CORE_NAMESPACE, ConfigurableMapConnect, CoreI18nProvider, CoreStoreProvider, CoreThemeProvider, CoreThemeStoreProvider, DemoWrapper, DemoWrapperConnect, HarmonieTempAndPrecipPreset, LanguageSelect, LayerInfoButtonConnect, LayerInfoDialogConnect, LayerManager, BaseLayerRow as LayerManagerBaseLayerRow, LayerManagerConnect, DescriptionRow as LayerManagerDescriptionRow, HeaderOptions as LayerManagerHeaderOptions, LayerContainerRow as LayerManagerLayerContainerRow, LayerManagerMapButtonConnect, LegendConnect, LegendMapButtonConnect, LocationSearch, LocationSearchConnect, MultiDimensionSelectMapButtonsConnect, MultiMapMultiDimensionSelectConnect as MultiMapDimensionSelectConnect, MultiMapViewConnect, MyMapLocation, OlMapViewConnect, RouterWrapperConnect, SearchControlButtonConnect, SentryRecordButton, SyncGroupViewerConnect, TimeSliderConnect, componentsLookUp, coreTranslations, defaultBbox, defaultConfigurations, filterMapPresets, filterServices, filterTimeSeriesServices, getCenterOfLinkedFeature, getLanguageFromLocalStorage, languageLocalStorageKey, makeLayerInfoPayload, makePrefetchTimeSpan, saveLanguageToLocalStorage, storyUtils, testLayers, useFetchServices, useFitAndHighlightWarningFeature, useGetOpenLayersView, useUpdateTimeSpan, useUpdateTimestep };
9766
+ export { CORE_NAMESPACE, ConfigurableMapConnect, CoreI18nProvider, CoreStoreProvider, CoreThemeProvider, CoreThemeStoreProvider, DemoWrapper, DemoWrapperConnect, HarmonieTempAndPrecipPreset, LanguageSelect, LayerInfoButtonConnect, LayerInfoDialogConnect, LayerManager, BaseLayerRow as LayerManagerBaseLayerRow, LayerManagerConnect, DescriptionRow as LayerManagerDescriptionRow, HeaderOptions as LayerManagerHeaderOptions, LayerContainerRow as LayerManagerLayerContainerRow, LayerManagerMapButtonConnect, LegendConnect, LegendMapButtonConnect, LocationSearch, LocationSearchConnect, types as LocationSearchTypes, MultiDimensionSelectMapButtonsConnect, MultiMapMultiDimensionSelectConnect as MultiMapDimensionSelectConnect, MultiMapViewConnect, MyMapLocation, OlMapViewConnect, RouterWrapperConnect, SearchControlButtonConnect, SentryRecordButton, SyncGroupViewerConnect, TimeSliderConnect, componentsLookUp, coreTranslations, defaultBbox, defaultConfigurations, fakeLocationDetailList, fakeLocationList, filterMapPresets, filterServices, filterTimeSeriesServices, getCenterOfLinkedFeature, getLanguageFromLocalStorage, languageLocalStorageKey, locationApiEndpoints, makeLayerInfoPayload, makePrefetchTimeSpan, saveLanguageToLocalStorage, storyUtils, testLayers, useFetchServices, useFitAndHighlightWarningFeature, useGetOpenLayersView, useLocationDetail, useLocationList, useUpdateTimeSpan, useUpdateTimestep };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@opengeoweb/core",
3
- "version": "12.11.0",
3
+ "version": "12.12.0",
4
4
  "description": "GeoWeb Core library for the opengeoweb project",
5
5
  "license": "Apache-2.0",
6
6
  "repository": {
@@ -8,22 +8,22 @@
8
8
  "url": "git@gitlab.com:opengeoweb/opengeoweb.git"
9
9
  },
10
10
  "dependencies": {
11
- "@opengeoweb/shared": "12.11.0",
11
+ "@opengeoweb/shared": "12.12.0",
12
12
  "react-redux": "^9.2.0",
13
- "@opengeoweb/store": "12.11.0",
14
- "@opengeoweb/timeslider": "12.11.0",
13
+ "@opengeoweb/store": "12.12.0",
14
+ "@opengeoweb/timeslider": "12.12.0",
15
15
  "@reduxjs/toolkit": "^2.6.1",
16
- "@opengeoweb/webmap-react": "12.11.0",
17
- "@opengeoweb/webmap": "12.11.0",
18
- "@opengeoweb/theme": "12.11.0",
16
+ "@opengeoweb/webmap-react": "12.12.0",
17
+ "@opengeoweb/webmap": "12.12.0",
18
+ "@opengeoweb/theme": "12.12.0",
19
19
  "axios": "^1.7.7",
20
- "@opengeoweb/layer-select": "12.11.0",
20
+ "@opengeoweb/layer-select": "12.12.0",
21
21
  "lodash": "^4.17.21",
22
22
  "ol": "^10.4.0",
23
23
  "react-sortablejs": "^6.1.4",
24
24
  "sortablejs": "^1.15.1",
25
25
  "@mui/system": "^7.0.1",
26
- "@opengeoweb/snackbar": "12.11.0",
26
+ "@opengeoweb/snackbar": "12.12.0",
27
27
  "react-router-dom": "^6.21.0",
28
28
  "react-draggable": "^4.4.6",
29
29
  "i18next": "^25.0.1",
@@ -32,7 +32,7 @@
32
32
  "@mui/material": "^7.0.1",
33
33
  "@sentry/react": "^8.34.0",
34
34
  "@tanstack/react-query": "^5.69.2",
35
- "@opengeoweb/api": "12.11.0",
35
+ "@opengeoweb/api": "12.12.0",
36
36
  "@types/geojson": "^7946.0.14"
37
37
  },
38
38
  "peerDependencies": {
@@ -20,6 +20,7 @@ export interface InitialMapProps {
20
20
  mapControls?: React.ReactNode;
21
21
  shouldDisplayDrawControls?: boolean;
22
22
  displaySearchButtonInMap?: boolean;
23
+ displayDataExplorerButtonOnMap?: boolean;
23
24
  }
24
25
  export interface InitialTimeSeriesProps {
25
26
  plotPreset: PlotPreset;
@@ -40,6 +40,7 @@ export interface ConfigurableMapConnectProps {
40
40
  displayGetFeatureInfoButtonInMap?: boolean;
41
41
  shouldDisplayDrawControls?: boolean;
42
42
  displaySearchButtonInMap?: boolean;
43
+ displayDataExplorerButtonOnMap?: boolean;
43
44
  children?: React.ReactNode;
44
45
  mapControls?: React.ReactNode;
45
46
  shouldDisablePrefetching?: boolean;
@@ -1,6 +1,15 @@
1
+ export interface OverLayer {
2
+ id: string;
3
+ name: string;
4
+ }
1
5
  interface OverlayersSelectProps {
2
- selectedOverlayer: string;
3
- onChangeOverlayer: (overlayer: string) => void;
6
+ mapId: string;
7
+ selectedOverlayer: OverLayer;
8
+ onChangeOverlayer: (mapId: string, selectedOverlayer: OverLayer) => void;
9
+ availableOverlayers?: {
10
+ id: string;
11
+ name: string;
12
+ }[];
4
13
  }
5
14
  declare const OverlayersSelect: React.FC<OverlayersSelectProps>;
6
15
  export default OverlayersSelect;
@@ -1,3 +1,6 @@
1
1
  import React from 'react';
2
- declare const OverlayersSelectConnect: React.FC;
2
+ interface OverlayersSelectConnectProps {
3
+ mapId?: string;
4
+ }
5
+ declare const OverlayersSelectConnect: React.FC<OverlayersSelectConnectProps>;
3
6
  export default OverlayersSelectConnect;
@@ -2,3 +2,4 @@ export { SearchControlButtonConnect } from './SearchControlButtonConnect';
2
2
  export { LocationSearchConnect } from './LocationSearchConnect';
3
3
  export { LocationSearch } from './LocationSearch';
4
4
  export { MyMapLocation } from './MyMapLocation';
5
+ export * as LocationSearchTypes from './types';
@@ -5,6 +5,7 @@ export interface LocationDetail {
5
5
  lat: number;
6
6
  lon: number;
7
7
  geometry?: GeoJSON.Feature;
8
+ bbox?: GeoJSON.BBox;
8
9
  }
9
10
  export interface LocationListResult {
10
11
  id: string;
@@ -9,6 +9,7 @@ export interface MapControlsProps {
9
9
  multiLegend?: boolean;
10
10
  dimensionSelect?: boolean;
11
11
  getFeatureInfo?: boolean;
12
+ dataExplorerButton?: boolean;
12
13
  additionalMapControls?: React.ReactNode;
13
14
  }
14
15
  export interface OlMapViewConnectProps {
@@ -19,4 +19,6 @@ export * from './components/TimeSliderConnect';
19
19
  export * from './components/LayerInfoConnect';
20
20
  export * from './components/SentryRecordButton';
21
21
  export * from './components/LanguageSelect';
22
+ export { useLocationDetail, useLocationList } from './utils/location-api/hooks';
23
+ export { fakeLocationDetailList, fakeLocationList, locationApiEndpoints, } from './utils/location-api/fakeApi';
22
24
  export * as storyUtils from './utils/storyUtils';
@@ -10,6 +10,7 @@ export declare const fakeLocationDetailList: ({
10
10
  lon: number;
11
11
  lat: number;
12
12
  geometry?: undefined;
13
+ bbox?: undefined;
13
14
  } | {
14
15
  lat: number;
15
16
  lon: number;
@@ -24,6 +25,7 @@ export declare const fakeLocationDetailList: ({
24
25
  };
25
26
  properties?: undefined;
26
27
  };
28
+ bbox?: undefined;
27
29
  } | {
28
30
  id: string;
29
31
  name: string;
@@ -38,6 +40,7 @@ export declare const fakeLocationDetailList: ({
38
40
  coordinates: number[][];
39
41
  };
40
42
  };
43
+ bbox?: undefined;
41
44
  } | {
42
45
  id: string;
43
46
  name: string;
@@ -52,6 +55,7 @@ export declare const fakeLocationDetailList: ({
52
55
  };
53
56
  properties: {};
54
57
  };
58
+ bbox?: undefined;
55
59
  } | {
56
60
  id: string;
57
61
  name: string;
@@ -66,5 +70,14 @@ export declare const fakeLocationDetailList: ({
66
70
  };
67
71
  properties: {};
68
72
  };
73
+ bbox?: undefined;
74
+ } | {
75
+ id: string;
76
+ name: string;
77
+ source: string;
78
+ lat: number;
79
+ lon: number;
80
+ bbox: number[];
81
+ geometry?: undefined;
69
82
  })[];
70
83
  export declare const locationApiEndpoints: import("msw").HttpHandler[];