@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.
- package/dist/index.esm.js +83 -17
- 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
|
|
8564
|
-
|
|
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$
|
|
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$
|
|
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
|
|
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
|
|
8790
|
+
return fetch(url);
|
|
8734
8791
|
case 2:
|
|
8735
|
-
|
|
8736
|
-
|
|
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 =
|
|
8808
|
+
_context.n = 6;
|
|
8743
8809
|
break;
|
|
8744
|
-
case
|
|
8745
|
-
_context.p =
|
|
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
|
|
8819
|
+
case 6:
|
|
8754
8820
|
return _context.a(2);
|
|
8755
8821
|
}
|
|
8756
|
-
}, _callee, null, [[1,
|
|
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
|
+
"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",
|