UNPKG

@geogirafe/lib-geoportal

Version:

GeoGirafe is a flexible application to build online geoportals.

71 lines (70 loc) 2.37 kB
class ServerWfs { constructor(name, url) { Object.defineProperty(this, "name", { enumerable: true, configurable: true, writable: true, value: void 0 }); Object.defineProperty(this, "url", { enumerable: true, configurable: true, writable: true, value: void 0 }); Object.defineProperty(this, "layers", { enumerable: true, configurable: true, writable: true, value: {} }); Object.defineProperty(this, "featureTypeToGeometryColumnName", { enumerable: true, configurable: true, writable: true, value: {} }); Object.defineProperty(this, "initialized", { enumerable: true, configurable: true, writable: true, value: void 0 }); this.name = name; this.url = url; this.initialized = false; } addLayerAttribute(layer, name, type) { if (!(layer in this.layers)) { // Layer does not exists yet this.layers[layer] = []; } this.layers[layer].push({ name: name, type: type }); } getGeometryColumnNameToFeatureTypes(featureTypes) { if (!this.initialized) { throw new Error('Initialize WFS server before trying to get geometry column names.'); } const geometryColumnNameToFeatureType = {}; for (const featureType of featureTypes) { if (!(featureType in this.layers)) { console.warn('featureType ' + featureType + ' is unknown to WFS server ' + this.url + '\n- available featureTypes: ' + Object.keys(this.layers).join(', ')); } const geometryColumnName = this.featureTypeToGeometryColumnName[featureType]; if (!(geometryColumnName in geometryColumnNameToFeatureType)) { geometryColumnNameToFeatureType[geometryColumnName] = []; } geometryColumnNameToFeatureType[geometryColumnName].push(featureType); } return geometryColumnNameToFeatureType; } } export default ServerWfs;