@opengeoweb/core 19.3.0 → 19.4.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.
Files changed (2) hide show
  1. package/dist/index.esm.js +83 -17
  2. package/package.json +1 -2
package/dist/index.esm.js CHANGED
@@ -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';
@@ -8553,6 +8552,64 @@ var getTitle = function getTitle(layerId) {
8553
8552
  var wmjsLayer = webmapUtils.getWMLayerById(layerId);
8554
8553
  return wmjsLayer ? wmjsLayer.title || wmjsLayer.name : layerId;
8555
8554
  };
8555
+ var getWmtsFeatureInfoUrl = function getWmtsFeatureInfoUrl(wmjsLayer, layer, mapPinLocation) {
8556
+ var _layer$dimensions;
8557
+ (_layer$dimensions = layer.dimensions) == null || _layer$dimensions.forEach(function (dim) {
8558
+ var wmDim = wmjsLayer == null ? void 0 : wmjsLayer.getDimension(dim.name);
8559
+ if (wmDim && wmDim.getValue() !== dim.currentValue) {
8560
+ wmDim.setValue(dim.currentValue);
8561
+ }
8562
+ });
8563
+ var wmtsSource = wmjsLayer == null ? void 0 : wmjsLayer.olSource;
8564
+ if (!wmtsSource || !(wmjsLayer != null && wmjsLayer.getfeatureinfoURL)) {
8565
+ return '';
8566
+ }
8567
+ var tileGrid = wmtsSource.getTileGrid();
8568
+ var tileCoord = tileGrid.getTileCoordForCoordAndResolution([mapPinLocation.projectionX, mapPinLocation.projectionY], mapPinLocation.resolution);
8569
+ if (!tileCoord) {
8570
+ return '';
8571
+ }
8572
+ var z = tileCoord[0],
8573
+ tileCol = tileCoord[1],
8574
+ tileRow = tileCoord[2];
8575
+ var tileExtent = tileGrid.getTileCoordExtent(tileCoord);
8576
+ var tileResolution = tileGrid.getResolution(z);
8577
+ var tileSize = tileGrid.getTileSize(z);
8578
+ var tileWidth = Array.isArray(tileSize) ? tileSize[0] : tileSize;
8579
+ var tileHeight = Array.isArray(tileSize) ? tileSize[1] : tileSize;
8580
+ if (!tileResolution || !tileWidth || !tileHeight) {
8581
+ return '';
8582
+ }
8583
+ var i = Math.min(Math.max(Math.floor((mapPinLocation.projectionX - tileExtent[0]) / tileResolution), 0), tileWidth - 1);
8584
+ var pixelJ = Math.min(Math.max(Math.floor((tileExtent[3] - mapPinLocation.projectionY) / tileResolution), 0), tileHeight - 1);
8585
+ var matrixIds = (tileGrid.getMatrixIds == null ? void 0 : tileGrid.getMatrixIds()) || [];
8586
+ var tileMatrix = matrixIds[z] || "" + z;
8587
+ var params = new URLSearchParams();
8588
+ params.set('SERVICE', 'WMTS');
8589
+ params.set('REQUEST', 'GetFeatureInfo');
8590
+ params.set('VERSION', '1.0.0');
8591
+ params.set('LAYER', wmjsLayer.getLayerName());
8592
+ params.set('STYLE', wmjsLayer.getStyle() || 'default');
8593
+ params.set('TILEMATRIXSET', wmjsLayer.wmtsTileMatrixSet || 'EPSG:3857');
8594
+ params.set('TILEMATRIX', tileMatrix);
8595
+ params.set('TILEROW', "" + tileRow);
8596
+ params.set('TILECOL', "" + tileCol);
8597
+ params.set('I', "" + i);
8598
+ params.set('J', "" + pixelJ);
8599
+ params.set('INFOFORMAT', wmjsLayer.wmtsInfoFormat || 'text/html');
8600
+ var mapDimURL = getMapDimURL(wmjsLayer).toString();
8601
+ if (mapDimURL) {
8602
+ var dimParams = new URLSearchParams(mapDimURL);
8603
+ dimParams.forEach(function (value, key) {
8604
+ params.set(key.toUpperCase(), value);
8605
+ });
8606
+ }
8607
+ var featureInfoUrl = new URL(wmjsLayer.getfeatureinfoURL);
8608
+ params.forEach(function (value, key) {
8609
+ featureInfoUrl.searchParams.set(key, value);
8610
+ });
8611
+ return featureInfoUrl.toString();
8612
+ };
8556
8613
  var getFeatureInfoUrl = function getFeatureInfoUrl(layer, mapPinLocation) {
8557
8614
  /*
8558
8615
  We need a wmjsLayer to build the getfeatureinfo url (getWMSGetFeatureInfoRequestURL function).
@@ -8560,13 +8617,13 @@ var getFeatureInfoUrl = function getFeatureInfoUrl(layer, mapPinLocation) {
8560
8617
  Therefore make a clone of this layer and set its dimensions based on the layer object.
8561
8618
  Otherwise we risk making a getfeatureinfo call with outdated dimension values.
8562
8619
  */
8563
- var wmjsLayer = webmapUtils.getWMLayerById(layer.id).cloneLayer();
8564
- if (wmjsLayer.layerType === LayerType.wmtsMapLayer) {
8565
- // WMTS Layers do not support GetFeatureInfo
8566
- return '';
8567
- }
8620
+ var originalWmjsLayer = webmapUtils.getWMLayerById(layer.id);
8621
+ var wmjsLayer = originalWmjsLayer.cloneLayer();
8568
8622
  if (mapPinLocation) {
8569
- var _layer$dimensions;
8623
+ var _layer$dimensions2;
8624
+ if (wmjsLayer.layerType === LayerType.wmtsMapLayer) {
8625
+ return getWmtsFeatureInfoUrl(wmjsLayer, layer, mapPinLocation);
8626
+ }
8570
8627
  // OpenLayers WMS version
8571
8628
  var source = new ImageWMS({
8572
8629
  url: wmjsLayer.getmapURL,
@@ -8574,7 +8631,7 @@ var getFeatureInfoUrl = function getFeatureInfoUrl(layer, mapPinLocation) {
8574
8631
  LAYERS: wmjsLayer.getLayerName()
8575
8632
  }
8576
8633
  });
8577
- (_layer$dimensions = layer.dimensions) == null || _layer$dimensions.forEach(function (dim) {
8634
+ (_layer$dimensions2 = layer.dimensions) == null || _layer$dimensions2.forEach(function (dim) {
8578
8635
  var wmDim = wmjsLayer.getDimension(dim.name);
8579
8636
  if (wmDim && wmDim.getValue() !== dim.currentValue) {
8580
8637
  wmDim.setValue(dim.currentValue);
@@ -8708,7 +8765,7 @@ var GetFeatureInfoDialog = function GetFeatureInfoDialog(_ref) {
8708
8765
  /* Do a GFI call to the server and use the updateLayerResult to provide the results. */
8709
8766
  var fetchLayerInfo = /*#__PURE__*/function () {
8710
8767
  var _ref3 = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee(url, layerId) {
8711
- var _yield$axios$get, data, errorMessage, _t;
8768
+ var response, data, errorMessage, _t;
8712
8769
  return _regenerator().w(function (_context) {
8713
8770
  while (1) switch (_context.p = _context.n) {
8714
8771
  case 0:
@@ -8730,19 +8787,28 @@ var GetFeatureInfoDialog = function GetFeatureInfoDialog(_ref) {
8730
8787
  isLoading: true
8731
8788
  });
8732
8789
  _context.n = 2;
8733
- return axios.get(url);
8790
+ return fetch(url);
8734
8791
  case 2:
8735
- _yield$axios$get = _context.v;
8736
- data = _yield$axios$get.data;
8792
+ response = _context.v;
8793
+ if (response.ok) {
8794
+ _context.n = 3;
8795
+ break;
8796
+ }
8797
+ throw new Error("GetFeatureInfo request failed (" + response.status + ")");
8798
+ case 3:
8799
+ _context.n = 4;
8800
+ return response.text();
8801
+ case 4:
8802
+ data = _context.v;
8737
8803
  updateLayerResult({
8738
8804
  layerId: layerId,
8739
8805
  data: data,
8740
8806
  isLoading: false
8741
8807
  });
8742
- _context.n = 4;
8808
+ _context.n = 6;
8743
8809
  break;
8744
- case 3:
8745
- _context.p = 3;
8810
+ case 5:
8811
+ _context.p = 5;
8746
8812
  _t = _context.v;
8747
8813
  errorMessage = _t instanceof Error ? _t.message : 'fetchLayerInfo failed';
8748
8814
  updateLayerResult({
@@ -8750,10 +8816,10 @@ var GetFeatureInfoDialog = function GetFeatureInfoDialog(_ref) {
8750
8816
  data: errorMessage,
8751
8817
  isLoading: false
8752
8818
  });
8753
- case 4:
8819
+ case 6:
8754
8820
  return _context.a(2);
8755
8821
  }
8756
- }, _callee, null, [[1, 3]]);
8822
+ }, _callee, null, [[1, 5]]);
8757
8823
  }));
8758
8824
  return function fetchLayerInfo(_x, _x2) {
8759
8825
  return _ref3.apply(this, arguments);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@opengeoweb/core",
3
- "version": "19.3.0",
3
+ "version": "19.4.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",