@geogirafe/lib-geoportal
Version:
GeoGirafe is a flexible application to build online geoportals.
79 lines (78 loc) • 3.36 kB
TypeScript
import { Image as ImageLayer } from 'ol/layer.js';
import Feature from 'ol/Feature.js';
import ImageWMS from 'ol/source/ImageWMS.js';
import { Map } from 'ol';
import LayerWms from '../../models/layers/layerwms.js';
import SelectionParam from '../../models/selectionparam.js';
import WfsFilter from '../wfs/wfsfilter.js';
import ServerOgc from '../../models/serverogc.js';
import IGirafeContext from '../context/icontext.js';
export default abstract class WmsClient {
private readonly map;
private readonly ogcServer;
private readonly context;
private readonly resolutionTolerance;
private readonly geoJson;
private readonly wmsGetFeatureInfo;
private capabilityPromise;
private capabilities;
private get state();
private get audienceExcludedPaths();
private layers;
private olayer?;
private independentLayers;
private basemapLayers;
constructor(ogcServer: ServerOgc, map: Map, context: IGirafeContext);
removeAllBasemapLayers(): void;
addLayer(layerWms: LayerWms): void;
private addLayerInternal;
createImageWMSSource(layerList?: LayerWms[]): ImageWMS;
abstract getOpenLayerLayerNames(layerList: LayerWms[]): string[];
addBasemapLayer(layerWms: LayerWms): void;
removeLayer(layerWms: LayerWms): void;
layerExists(layerWms: LayerWms): boolean;
private layerInStandardLayers;
private layerIsIndependentLayer;
private layerIsBasemapLayer;
getOLayer(layerWms: LayerWms): ImageLayer<ImageWMS> | null;
changeOpacity(layerWms: LayerWms): void;
changeFilter(layerWms: LayerWms): void;
changeTimeRestriction(layerWms: LayerWms): void;
prepareSwipe(layerWms: LayerWms): void;
private manageLayerOptions;
private makeLayerIndependent;
private updateLayerFilter;
abstract buildFilterQuery(layerWms: LayerWms): string;
private updateTimeRestriction;
selectFeatures(extent: number[]): void;
/**
* Selects features based on the specified query and prepares selection parameters.
*/
selectFeaturesByQuery(query: WfsFilter): void;
getFeatureInfo(selectionParam: SelectionParam): Promise<Feature<import("ol/geom.js").Geometry, {
[x: string]: any;
}>[]>;
private getFeatureInfoUrl;
private handleGetFeatureInfoResponse;
refreshZIndexes(): void;
getWmsCapabilities(params?: URLSearchParams): Promise<Record<string, unknown>>;
}
export declare class WmsClientQgis extends WmsClient {
/** QGIS-server does not filter on a WMS layer made from multiple underlying WFS queryLayers
* Solution: directly query the queryLayers
*/
getOpenLayerLayerNames(layerList: LayerWms[]): string[];
/** MapServer wants 1 filter per underlying WFS queryLayer, all included in parentheses
* QGIS-server wants 1 filter per underlying WFS queryLayer, each in its own in parentheses
*
* MapServer: (<filter>...</filter><filter>...</filter>)
* QGIS-server: (<filter>...</filter>)(<filter>...</filter>)
*/
buildFilterQuery(layerWms: LayerWms): string;
}
export declare class WmsClientMapServer extends WmsClient {
getOpenLayerLayerNames(layerList: LayerWms[]): string[];
buildFilterQuery(layerWms: LayerWms): string;
}
export declare const WmsClientDefault: typeof WmsClientQgis;
export declare const WmsClientGeoServer: typeof WmsClientMapServer;