UNPKG

@geogirafe/lib-geoportal

Version:

GeoGirafe is a flexible application to build online geoportals.

46 lines (45 loc) 1.69 kB
import { WmsClientDefault, WmsClientGeoServer, WmsClientMapServer, WmsClientQgis } from './wmsclient.js'; import VendorSpecificOgcServerManager from '../vendorspecificogcservermanager.js'; export default class WmsManager extends VendorSpecificOgcServerManager { map; constructor(context) { super(context); this.map = this.context.mapManager.getMap(); } initializeSingleton() { // Register the default client this.registerClientClass('default', WmsClientDefault); this.registerClientClass('geoserver', WmsClientGeoServer); this.registerClientClass('mapserver', WmsClientMapServer); this.registerClientClass('qgisserver', WmsClientQgis); this.registerClientClass('georama.webgis', WmsClientQgis); } getClientId(ogcServer) { return ogcServer.uniqueWmsQueryId; } createClient(clientClass, ogcServer) { return new clientClass(ogcServer, this.map, this.context); } selectFeatures(extent) { for (const client of this._clients.values()) { client.selectFeatures(extent); } } selectFeaturesByQuery(query, layer) { const client = this.getClient(layer.ogcServer); if (!client) { throw new Error(`Cannot select features by query: no client found for layer ${layer.name}`); } client.selectFeaturesByQuery(query); } refreshZIndexes() { for (const client of this._clients.values()) { client.refreshZIndexes(); } } removeAllBasemapLayers() { for (const client of this._clients.values()) { client.removeAllBasemapLayers(); } } }