@geogirafe/lib-geoportal 1.2.0-dev.2714239322 → 1.2.0-dev.2729313771
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.
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import type { BaseCustomizer, MFPLayer, MFPMap, MFPWmtsLayer, MFPWmsLayer } from '@geoblocks/mapfishprint';
|
|
2
|
-
import GroupLayer from '../../../models/layers/grouplayer.js';
|
|
3
2
|
import type BaseLayer from '../../../models/layers/baselayer.js';
|
|
3
|
+
import GroupLayer from '../../../models/layers/grouplayer.js';
|
|
4
4
|
import MapManager from '../../../tools/state/mapManager.js';
|
|
5
5
|
import State from '../../../tools/state/state.js';
|
|
6
6
|
import LayerLocalFile from '../../../models/layers/layerlocalfile.js';
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import GroupLayer from '../../../models/layers/grouplayer.js';
|
|
2
1
|
import { getAbsoluteUrl, getWmtsMatrices, getWmtsUrl, MFPVectorEncoder } from '@geoblocks/mapfishprint';
|
|
2
|
+
import GroupLayer from '../../../models/layers/grouplayer.js';
|
|
3
3
|
import { toDegrees } from 'ol/math.js';
|
|
4
4
|
import LayerLocalFile from '../../../models/layers/layerlocalfile.js';
|
|
5
5
|
import LayerWms from '../../../models/layers/layerwms.js';
|
|
@@ -9,6 +9,7 @@ import { isLayerVisible } from './printUtils.js';
|
|
|
9
9
|
import VectorSource from 'ol/source/Vector.js';
|
|
10
10
|
import LayerWmtsExternal from '../../../models/layers/layerwmtsexternal.js';
|
|
11
11
|
import LayerWmsExternal from '../../../models/layers/layerwmsexternal.js';
|
|
12
|
+
import WmsClient from '../../../tools/wms/wmsclient.js';
|
|
12
13
|
/** Supported MapFishPRint servers
|
|
13
14
|
* see https://github.com/mapfish/mapfish-print/blob/master/core/src/main/java/org/mapfish/print/map/image/wms/WmsLayerParam.java#L123
|
|
14
15
|
*/
|
|
@@ -190,6 +191,9 @@ export default class MFPEncoder {
|
|
|
190
191
|
customParams[key] = value;
|
|
191
192
|
});
|
|
192
193
|
}
|
|
194
|
+
if (layerWms.filter) {
|
|
195
|
+
customParams.FILTER = WmsClient.buildFilterQuery(layerWms);
|
|
196
|
+
}
|
|
193
197
|
let serverType = layerWms.ogcServer.type;
|
|
194
198
|
// Remove unsupported serverType (otherwise, you'll get an error from the print server).
|
|
195
199
|
if (!MFPSupportedServerType.has(serverType)) {
|
package/package.json
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":"1.2.0-dev.
|
|
1
|
+
{"version":"1.2.0-dev.2729313771", "build":"2729313771", "date":"04/08/2026"}
|
package/tools/wms/wmsclient.d.ts
CHANGED
|
@@ -42,7 +42,14 @@ export default abstract class WmsClient {
|
|
|
42
42
|
private manageLayerOptions;
|
|
43
43
|
private makeLayerIndependent;
|
|
44
44
|
private updateLayerFilter;
|
|
45
|
-
|
|
45
|
+
/**
|
|
46
|
+
* MapServer wants 1 filter per underlying WFS queryLayer, all included in parentheses
|
|
47
|
+
* QGIS-server wants 1 filter per underlying WFS queryLayer, each in its own in parentheses
|
|
48
|
+
*
|
|
49
|
+
* MapServer: (<filter>...</filter><filter>...</filter>)
|
|
50
|
+
* QGIS-server: (<filter>...</filter>)(<filter>...</filter>)
|
|
51
|
+
*/
|
|
52
|
+
static buildFilterQuery(layerWms: LayerWms): string;
|
|
46
53
|
private updateTimeRestriction;
|
|
47
54
|
selectFeatures(extent: number[]): void;
|
|
48
55
|
/**
|
|
@@ -62,17 +69,11 @@ export declare class WmsClientQgis extends WmsClient {
|
|
|
62
69
|
* Solution: directly query the queryLayers
|
|
63
70
|
*/
|
|
64
71
|
getOpenLayerLayerNames(layerList: LayerWms[]): string[];
|
|
65
|
-
|
|
66
|
-
* QGIS-server wants 1 filter per underlying WFS queryLayer, each in its own in parentheses
|
|
67
|
-
*
|
|
68
|
-
* MapServer: (<filter>...</filter><filter>...</filter>)
|
|
69
|
-
* QGIS-server: (<filter>...</filter>)(<filter>...</filter>)
|
|
70
|
-
*/
|
|
71
|
-
buildFilterQuery(layerWms: LayerWms): string;
|
|
72
|
+
static buildFilterQuery(layerWms: LayerWms): string;
|
|
72
73
|
}
|
|
73
74
|
export declare class WmsClientMapServer extends WmsClient {
|
|
74
75
|
getOpenLayerLayerNames(layerList: LayerWms[]): string[];
|
|
75
|
-
buildFilterQuery(layerWms: LayerWms): string;
|
|
76
|
+
static buildFilterQuery(layerWms: LayerWms): string;
|
|
76
77
|
}
|
|
77
78
|
export declare const WmsClientDefault: typeof WmsClientQgis;
|
|
78
79
|
export declare const WmsClientGeoServer: typeof WmsClientMapServer;
|
package/tools/wms/wmsclient.js
CHANGED
|
@@ -231,7 +231,7 @@ export default class WmsClient {
|
|
|
231
231
|
updateLayerFilter(layerWms, olayer) {
|
|
232
232
|
const source = olayer.getSource();
|
|
233
233
|
if (layerWms.hasFilter) {
|
|
234
|
-
const filterStr =
|
|
234
|
+
const filterStr = WmsClient.buildFilterQuery(layerWms);
|
|
235
235
|
source.updateParams({ FILTER: filterStr });
|
|
236
236
|
}
|
|
237
237
|
else {
|
|
@@ -243,6 +243,19 @@ export default class WmsClient {
|
|
|
243
243
|
}
|
|
244
244
|
}
|
|
245
245
|
}
|
|
246
|
+
/**
|
|
247
|
+
* MapServer wants 1 filter per underlying WFS queryLayer, all included in parentheses
|
|
248
|
+
* QGIS-server wants 1 filter per underlying WFS queryLayer, each in its own in parentheses
|
|
249
|
+
*
|
|
250
|
+
* MapServer: (<filter>...</filter><filter>...</filter>)
|
|
251
|
+
* QGIS-server: (<filter>...</filter>)(<filter>...</filter>)
|
|
252
|
+
*/
|
|
253
|
+
static buildFilterQuery(layerWms) {
|
|
254
|
+
if (layerWms.ogcServer.type === 'qgisserver') {
|
|
255
|
+
return WmsClientQgis.buildFilterQuery(layerWms);
|
|
256
|
+
}
|
|
257
|
+
return WmsClientMapServer.buildFilterQuery(layerWms);
|
|
258
|
+
}
|
|
246
259
|
updateTimeRestriction(layerWms, olayer) {
|
|
247
260
|
const source = olayer.getSource();
|
|
248
261
|
if (layerWms.hasTimeRestriction) {
|
|
@@ -414,34 +427,26 @@ export class WmsClientQgis extends WmsClient {
|
|
|
414
427
|
return layerNames;
|
|
415
428
|
}
|
|
416
429
|
}
|
|
417
|
-
|
|
418
|
-
|
|
419
|
-
|
|
420
|
-
* MapServer: (<filter>...</filter><filter>...</filter>)
|
|
421
|
-
* QGIS-server: (<filter>...</filter>)(<filter>...</filter>)
|
|
422
|
-
*/
|
|
423
|
-
buildFilterQuery(layerWms) {
|
|
424
|
-
let filterStr = '';
|
|
425
|
-
if (layerWms.hasFilter) {
|
|
426
|
-
const filter = layerWms.filter;
|
|
427
|
-
const nbQuerylayers = layerWms.queryLayers.split(',').length;
|
|
428
|
-
filterStr = ('(' + filter.toWmsGetMapFilter() + ')').repeat(nbQuerylayers);
|
|
430
|
+
static buildFilterQuery(layerWms) {
|
|
431
|
+
if (!layerWms.hasFilter) {
|
|
432
|
+
return '';
|
|
429
433
|
}
|
|
430
|
-
|
|
434
|
+
const filter = layerWms.filter;
|
|
435
|
+
const nbQuerylayers = layerWms.queryLayers.split(',').length;
|
|
436
|
+
return ('(' + filter.toWmsGetMapFilter() + ')').repeat(nbQuerylayers);
|
|
431
437
|
}
|
|
432
438
|
}
|
|
433
439
|
export class WmsClientMapServer extends WmsClient {
|
|
434
440
|
getOpenLayerLayerNames(layerList) {
|
|
435
441
|
return layerList.map((l) => l.layers);
|
|
436
442
|
}
|
|
437
|
-
buildFilterQuery(layerWms) {
|
|
438
|
-
|
|
439
|
-
|
|
440
|
-
const filter = layerWms.filter;
|
|
441
|
-
const nbQuerylayers = layerWms.queryLayers.split(',').length;
|
|
442
|
-
filterStr = '(' + filter.toWmsGetMapFilter().repeat(nbQuerylayers) + ')';
|
|
443
|
+
static buildFilterQuery(layerWms) {
|
|
444
|
+
if (!layerWms.hasFilter) {
|
|
445
|
+
return '';
|
|
443
446
|
}
|
|
444
|
-
|
|
447
|
+
const filter = layerWms.filter;
|
|
448
|
+
const nbQuerylayers = layerWms.queryLayers.split(',').length;
|
|
449
|
+
return '(' + filter.toWmsGetMapFilter().repeat(nbQuerylayers) + ')';
|
|
445
450
|
}
|
|
446
451
|
}
|
|
447
452
|
export const WmsClientDefault = WmsClientQgis;
|