@geogirafe/lib-geoportal
Version:
GeoGirafe is a flexible application to build online geoportals.
70 lines (69 loc) • 3.31 kB
TypeScript
import { Feature } from 'ol';
import { Geometry } from 'ol/geom';
import { WriteGetFeatureOptions } from 'ol/format/WFS';
import StateManager from '../state/statemanager';
import SelectionParam from '../../models/selectionparam';
import LayerWms from '../../models/layers/layerwms';
import ServerWfs from '../../models/serverwfs';
import { XmlTypes } from '../../models/xmlTypes';
import ServerOgc from '../../models/serverogc';
export type WfsClientOptions = {
featurePrefix: string;
featureNS: string;
};
export type WfsClientOptionalOptions = {
featurePrefix?: string;
featureNS?: string;
};
export default class WfsClient<WfsXmlTypes = XmlTypes> {
#private;
stateManager: StateManager;
get state(): import("../main").State;
ogcServer: ServerOgc;
maxFeatures: number;
featurePrefix: string;
featureNS: string;
private readonly urlParameters;
serverWfs: Promise<ServerWfs<WfsXmlTypes>> | undefined;
constructor(ogcServer: ServerOgc, options: WfsClientOptions);
get wfsUrl(): string;
configMaxFeatures(): void;
getServerWfs(): Promise<ServerWfs<WfsXmlTypes>>;
describeFeatureType(): Promise<ServerWfs<WfsXmlTypes>>;
private initializeAttribute;
manageLayerAttribute(serverWfs: ServerWfs<WfsXmlTypes>, element: Element, featureType: string): boolean;
validateLayerAttributeType(type: string): boolean;
getElementToTypeName(xml: Document): Record<string, string>;
getDescribeFeatureTypeUrl(): string;
getFeature(selectionParam: SelectionParam): Promise<Feature<Geometry>[]>;
completeGetFeatureOptions(featureTypes: string[], options: GetFeatureOptionalOptions): WriteGetFeatureOptions;
getFeatureRaw(featureTypes: string[], getFeatureOptions: GetFeatureOptionalOptions): Promise<Feature<Geometry>[]>;
/**
* Sets or removes a time restriction on the provided query layer. Depending on the presence of a time attribute,
* either a temporal XML filter is created or a TIME parameter is added to the URL.
*
* @param {QueryableLayerWms} queryLayer - The layer on which the time restriction is to be applied.
* @return {Filter | undefined} Returns a temporal XML filter if a time attribute exists; otherwise, undefined.
*/
private setTimeRestriction;
private getTimeRestrictionFilter;
private addTimeRestrictionAsUrlParameter;
}
export type QueryableLayerWms = Omit<LayerWms, 'queryLayers'> & {
queryLayers: string;
};
export type GetFeatureOptionalOptions = Omit<WriteGetFeatureOptions, 'featureNS' | 'featurePrefix' | 'featureTypes'> & {
featureNS?: string;
featurePrefix?: string;
featureTypes?: string[];
};
export declare class WfsClientMapServer extends WfsClient {
constructor(ogcServer: ServerOgc, options: WfsClientOptionalOptions);
getFeatureRaw(featureTypes: string[], getFeatureOptions: GetFeatureOptionalOptions): Promise<Feature<Geometry>[]>;
}
export declare class WfsClientQgis extends WfsClient {
constructor(ogcServer: ServerOgc, options: WfsClientOptionalOptions);
getFeatureRaw(featureTypes: string[], getFeatureOptions: GetFeatureOptionalOptions): Promise<Feature<Geometry>[]>;
}
export declare const WfsClientDefault: typeof WfsClientQgis;
export declare const WfsClientGeoServer: typeof WfsClientMapServer;