sic-mapping-toolkit
Version:
SICMapping Toolkit es una biblioteca para Angular que permite la creación de aplicaciones de Web Mapping por medio de OpenLayers
83 lines • 10.6 kB
JavaScript
import TileLayer from 'ol/layer/Tile';
import TileWMS from 'ol/source/TileWMS';
import TileArcGISRest from 'ol/source/TileArcGISRest';
import ImageLayer from 'ol/layer/Image';
import ImageWMS from 'ol/source/ImageWMS';
import VectorLayer from 'ol/layer/Vector';
import VectorSource from 'ol/source/Vector';
import { SICVectorLayer } from '../models/vector-layer';
import { SICWmsLayer } from '../models/wms-layer';
import { SICArcgisLayer } from '../models/arcgis-layer';
export var LayerType;
(function (LayerType) {
LayerType[LayerType["WMS_LAYER"] = 0] = "WMS_LAYER";
LayerType[LayerType["VECTOR_LAYER"] = 1] = "VECTOR_LAYER";
LayerType[LayerType["ARGIS_REST_LAYER"] = 2] = "ARGIS_REST_LAYER";
})(LayerType || (LayerType = {}));
export var WmsType;
(function (WmsType) {
WmsType[WmsType["IMAGE"] = 0] = "IMAGE";
WmsType[WmsType["TILE"] = 1] = "TILE";
})(WmsType || (WmsType = {}));
export class LayerFactory {
static createLayer(type, title, options) {
if (type === LayerType.VECTOR_LAYER) {
return LayerFactory.createVectorLayer(title);
}
else if (type === LayerType.WMS_LAYER) {
return LayerFactory.createWmsLayer(title, options.wmsType, options.serverType, options.serverUrl, options.serviceName, options.legend);
}
else if (type === LayerType.ARGIS_REST_LAYER) {
return LayerFactory.createArgisLayer(title, options.serverUrl, options.legend, options.attribution);
}
else {
throw new Error('LayerType no soportado');
}
}
static createVectorLayer(title) {
const source = new VectorSource({ wrapX: true });
const layer = new VectorLayer({
source
});
return new SICVectorLayer(title, layer);
}
static createWmsLayer(title, wmsType, serverType, serverUrl, serviceName, legend, attribution) {
let SourceFunction;
let LayerFunction;
if (wmsType === WmsType.IMAGE) {
SourceFunction = ImageWMS;
LayerFunction = ImageLayer;
}
else if (wmsType === WmsType.TILE) {
SourceFunction = TileWMS;
LayerFunction = TileLayer;
}
else {
throw new Error('WmsType no soportado');
}
const source = new SourceFunction({
url: serverUrl,
serverType: serverType,
attributions: attribution,
params: {
'LAYERS': serviceName,
'tiled': serverType === 'geoserver' && wmsType === WmsType.TILE
}
});
const layer = new LayerFunction({
source: source
});
return new SICWmsLayer(title, layer, legend);
}
static createArgisLayer(title, serverUrl, legend, attribution) {
const source = new TileArcGISRest({
url: serverUrl,
attributions: attribution
});
const layer = new TileLayer({
source: source
});
return new SICArcgisLayer(title, layer, legend);
}
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGF5ZXItZmFjdG9yeS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3NpYy1tYXBwaW5nLXRvb2xraXQvc3JjL2xpYi9mYWN0b3JpZXMvbGF5ZXItZmFjdG9yeS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLFNBQVMsTUFBTSxlQUFlLENBQUM7QUFDdEMsT0FBTyxPQUFPLE1BQU0sbUJBQW1CLENBQUM7QUFDeEMsT0FBTyxjQUFjLE1BQU0sMEJBQTBCLENBQUM7QUFFdEQsT0FBTyxVQUFVLE1BQU0sZ0JBQWdCLENBQUM7QUFDeEMsT0FBTyxRQUFRLE1BQU0sb0JBQW9CLENBQUM7QUFFMUMsT0FBTyxXQUFXLE1BQU0saUJBQWlCLENBQUM7QUFDMUMsT0FBTyxZQUFZLE1BQU0sa0JBQWtCLENBQUM7QUFFNUMsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3hELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUNsRCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFFeEQsTUFBTSxDQUFOLElBQVksU0FJWDtBQUpELFdBQVksU0FBUztJQUNuQixtREFBUyxDQUFBO0lBQ1QseURBQVksQ0FBQTtJQUNaLGlFQUFnQixDQUFBO0FBQ2xCLENBQUMsRUFKVyxTQUFTLEtBQVQsU0FBUyxRQUlwQjtBQUVELE1BQU0sQ0FBTixJQUFZLE9BR1g7QUFIRCxXQUFZLE9BQU87SUFDakIsdUNBQUssQ0FBQTtJQUNMLHFDQUFJLENBQUE7QUFDTixDQUFDLEVBSFcsT0FBTyxLQUFQLE9BQU8sUUFHbEI7QUFhRCxNQUFNLE9BQU8sWUFBWTtJQUNoQixNQUFNLENBQUMsV0FBVyxDQUFDLElBQWUsRUFBRSxLQUFhLEVBQUUsT0FBb0I7UUFDNUUsSUFBSSxJQUFJLEtBQUssU0FBUyxDQUFDLFlBQVksRUFBRTtZQUNuQyxPQUFPLFlBQVksQ0FBQyxpQkFBaUIsQ0FBQyxLQUFLLENBQUMsQ0FBQztTQUM5QzthQUFNLElBQUksSUFBSSxLQUFLLFNBQVMsQ0FBQyxTQUFTLEVBQUU7WUFDdkMsT0FBTyxZQUFZLENBQUMsY0FBYyxDQUFDLEtBQUssRUFBRSxPQUFPLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxVQUFVLEVBQUUsT0FBTyxDQUFDLFNBQVMsRUFBRSxPQUFPLENBQUMsV0FBVyxFQUFFLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQztTQUN4STthQUFNLElBQUksSUFBSSxLQUFLLFNBQVMsQ0FBQyxnQkFBZ0IsRUFBRTtZQUM5QyxPQUFPLFlBQVksQ0FBQyxnQkFBZ0IsQ0FBQyxLQUFLLEVBQUUsT0FBTyxDQUFDLFNBQVMsRUFBRSxPQUFPLENBQUMsTUFBTSxFQUFFLE9BQU8sQ0FBQyxXQUFXLENBQUMsQ0FBQztTQUNyRzthQUFNO1lBQ0wsTUFBTSxJQUFJLEtBQUssQ0FBQyx3QkFBd0IsQ0FBQyxDQUFBO1NBQzFDO0lBQ0gsQ0FBQztJQUVNLE1BQU0sQ0FBQyxpQkFBaUIsQ0FBQyxLQUFhO1FBQzNDLE1BQU0sTUFBTSxHQUFHLElBQUksWUFBWSxDQUFDLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7UUFDakQsTUFBTSxLQUFLLEdBQUcsSUFBSSxXQUFXLENBQUM7WUFDNUIsTUFBTTtTQUNQLENBQUMsQ0FBQztRQUNILE9BQU8sSUFBSSxjQUFjLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFBO0lBQ3pDLENBQUM7SUFFTSxNQUFNLENBQUMsY0FBYyxDQUFDLEtBQWEsRUFBRSxPQUFnQixFQUFFLFVBQXlCLEVBQUUsU0FBaUIsRUFBRSxXQUFtQixFQUFFLE1BQWUsRUFBRSxXQUFvQjtRQUNwSyxJQUFJLGNBQWMsQ0FBQztRQUNuQixJQUFJLGFBQWEsQ0FBQztRQUVsQixJQUFJLE9BQU8sS0FBSyxPQUFPLENBQUMsS0FBSyxFQUFFO1lBQzdCLGNBQWMsR0FBRyxRQUFRLENBQUM7WUFDMUIsYUFBYSxHQUFHLFVBQVUsQ0FBQztTQUM1QjthQUFNLElBQUksT0FBTyxLQUFLLE9BQU8sQ0FBQyxJQUFJLEVBQUU7WUFDbkMsY0FBYyxHQUFHLE9BQU8sQ0FBQztZQUN6QixhQUFhLEdBQUcsU0FBUyxDQUFDO1NBQzNCO2FBQU07WUFDTCxNQUFNLElBQUksS0FBSyxDQUFDLHNCQUFzQixDQUFDLENBQUM7U0FDekM7UUFFRCxNQUFNLE1BQU0sR0FBRyxJQUFJLGNBQWMsQ0FBQztZQUNoQyxHQUFHLEVBQUUsU0FBUztZQUNkLFVBQVUsRUFBRSxVQUFVO1lBQ3RCLFlBQVksRUFBRSxXQUFXO1lBQ3pCLE1BQU0sRUFBRTtnQkFDTixRQUFRLEVBQUUsV0FBVztnQkFDckIsT0FBTyxFQUFFLFVBQVUsS0FBSyxXQUFXLElBQUksT0FBTyxLQUFLLE9BQU8sQ0FBQyxJQUFJO2FBQ2hFO1NBQ0YsQ0FBQyxDQUFDO1FBQ0gsTUFBTSxLQUFLLEdBQUcsSUFBSSxhQUFhLENBQUM7WUFDOUIsTUFBTSxFQUFFLE1BQU07U0FDZixDQUFDLENBQUM7UUFDSCxPQUFPLElBQUksV0FBVyxDQUFDLEtBQUssRUFBRSxLQUFLLEVBQUUsTUFBTSxDQUFDLENBQUM7SUFDL0MsQ0FBQztJQUVNLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQyxLQUFhLEVBQUUsU0FBaUIsRUFBRSxNQUFlLEVBQUUsV0FBb0I7UUFDcEcsTUFBTSxNQUFNLEdBQUcsSUFBSSxjQUFjLENBQUM7WUFDaEMsR0FBRyxFQUFFLFNBQVM7WUFDZCxZQUFZLEVBQUUsV0FBVztTQUMxQixDQUFDLENBQUM7UUFDSCxNQUFNLEtBQUssR0FBRyxJQUFJLFNBQVMsQ0FBQztZQUMxQixNQUFNLEVBQUUsTUFBTTtTQUNmLENBQUMsQ0FBQztRQUNILE9BQU8sSUFBSSxjQUFjLENBQUMsS0FBSyxFQUFFLEtBQUssRUFBRSxNQUFNLENBQUMsQ0FBQztJQUNsRCxDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgVGlsZUxheWVyIGZyb20gJ29sL2xheWVyL1RpbGUnO1xuaW1wb3J0IFRpbGVXTVMgZnJvbSAnb2wvc291cmNlL1RpbGVXTVMnO1xuaW1wb3J0IFRpbGVBcmNHSVNSZXN0IGZyb20gJ29sL3NvdXJjZS9UaWxlQXJjR0lTUmVzdCc7XG5cbmltcG9ydCBJbWFnZUxheWVyIGZyb20gJ29sL2xheWVyL0ltYWdlJztcbmltcG9ydCBJbWFnZVdNUyBmcm9tICdvbC9zb3VyY2UvSW1hZ2VXTVMnO1xuXG5pbXBvcnQgVmVjdG9yTGF5ZXIgZnJvbSAnb2wvbGF5ZXIvVmVjdG9yJztcbmltcG9ydCBWZWN0b3JTb3VyY2UgZnJvbSAnb2wvc291cmNlL1ZlY3Rvcic7XG5cbmltcG9ydCB7IFNJQ1ZlY3RvckxheWVyIH0gZnJvbSAnLi4vbW9kZWxzL3ZlY3Rvci1sYXllcic7XG5pbXBvcnQgeyBTSUNXbXNMYXllciB9IGZyb20gJy4uL21vZGVscy93bXMtbGF5ZXInO1xuaW1wb3J0IHsgU0lDQXJjZ2lzTGF5ZXIgfSBmcm9tICcuLi9tb2RlbHMvYXJjZ2lzLWxheWVyJztcblxuZXhwb3J0IGVudW0gTGF5ZXJUeXBlIHtcbiAgV01TX0xBWUVSLFxuICBWRUNUT1JfTEFZRVIsXG4gIEFSR0lTX1JFU1RfTEFZRVJcbn1cblxuZXhwb3J0IGVudW0gV21zVHlwZSB7XG4gIElNQUdFLFxuICBUSUxFXG59XG5cbmV4cG9ydCB0eXBlIFdtc1NlcnZlclR5cGUgPSAnbWFwc2VydmVyJyB8ICdnZW9zZXJ2ZXInIHwgJ3FnaXMnO1xuXG5leHBvcnQgaW50ZXJmYWNlIFdNU09wdGlvbnMge1xuICB3bXNUeXBlPzogV21zVHlwZTtcbiAgc2VydmVyVHlwZT86IFdtc1NlcnZlclR5cGU7XG4gIHNlcnZlclVybD86IHN0cmluZztcbiAgc2VydmljZU5hbWU/OiBzdHJpbmc7XG4gIGxlZ2VuZD86IHN0cmluZztcbiAgYXR0cmlidXRpb24/OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBjbGFzcyBMYXllckZhY3Rvcnkge1xuICBwdWJsaWMgc3RhdGljIGNyZWF0ZUxheWVyKHR5cGU6IExheWVyVHlwZSwgdGl0bGU6IHN0cmluZywgb3B0aW9ucz86IFdNU09wdGlvbnMpIHtcbiAgICBpZiAodHlwZSA9PT0gTGF5ZXJUeXBlLlZFQ1RPUl9MQVlFUikge1xuICAgICAgcmV0dXJuIExheWVyRmFjdG9yeS5jcmVhdGVWZWN0b3JMYXllcih0aXRsZSk7XG4gICAgfSBlbHNlIGlmICh0eXBlID09PSBMYXllclR5cGUuV01TX0xBWUVSKSB7XG4gICAgICByZXR1cm4gTGF5ZXJGYWN0b3J5LmNyZWF0ZVdtc0xheWVyKHRpdGxlLCBvcHRpb25zLndtc1R5cGUsIG9wdGlvbnMuc2VydmVyVHlwZSwgb3B0aW9ucy5zZXJ2ZXJVcmwsIG9wdGlvbnMuc2VydmljZU5hbWUsIG9wdGlvbnMubGVnZW5kKTtcbiAgICB9IGVsc2UgaWYgKHR5cGUgPT09IExheWVyVHlwZS5BUkdJU19SRVNUX0xBWUVSKSB7XG4gICAgICByZXR1cm4gTGF5ZXJGYWN0b3J5LmNyZWF0ZUFyZ2lzTGF5ZXIodGl0bGUsIG9wdGlvbnMuc2VydmVyVXJsLCBvcHRpb25zLmxlZ2VuZCwgb3B0aW9ucy5hdHRyaWJ1dGlvbik7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignTGF5ZXJUeXBlIG5vIHNvcG9ydGFkbycpXG4gICAgfVxuICB9XG5cbiAgcHVibGljIHN0YXRpYyBjcmVhdGVWZWN0b3JMYXllcih0aXRsZTogc3RyaW5nKSB7XG4gICAgY29uc3Qgc291cmNlID0gbmV3IFZlY3RvclNvdXJjZSh7IHdyYXBYOiB0cnVlIH0pO1xuICAgIGNvbnN0IGxheWVyID0gbmV3IFZlY3RvckxheWVyKHtcbiAgICAgIHNvdXJjZVxuICAgIH0pO1xuICAgIHJldHVybiBuZXcgU0lDVmVjdG9yTGF5ZXIodGl0bGUsIGxheWVyKVxuICB9XG5cbiAgcHVibGljIHN0YXRpYyBjcmVhdGVXbXNMYXllcih0aXRsZTogc3RyaW5nLCB3bXNUeXBlOiBXbXNUeXBlLCBzZXJ2ZXJUeXBlOiBXbXNTZXJ2ZXJUeXBlLCBzZXJ2ZXJVcmw6IHN0cmluZywgc2VydmljZU5hbWU6IHN0cmluZywgbGVnZW5kPzogc3RyaW5nLCBhdHRyaWJ1dGlvbj86IHN0cmluZykge1xuICAgIGxldCBTb3VyY2VGdW5jdGlvbjtcbiAgICBsZXQgTGF5ZXJGdW5jdGlvbjtcblxuICAgIGlmICh3bXNUeXBlID09PSBXbXNUeXBlLklNQUdFKSB7XG4gICAgICBTb3VyY2VGdW5jdGlvbiA9IEltYWdlV01TO1xuICAgICAgTGF5ZXJGdW5jdGlvbiA9IEltYWdlTGF5ZXI7XG4gICAgfSBlbHNlIGlmICh3bXNUeXBlID09PSBXbXNUeXBlLlRJTEUpIHtcbiAgICAgIFNvdXJjZUZ1bmN0aW9uID0gVGlsZVdNUztcbiAgICAgIExheWVyRnVuY3Rpb24gPSBUaWxlTGF5ZXI7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignV21zVHlwZSBubyBzb3BvcnRhZG8nKTtcbiAgICB9XG5cbiAgICBjb25zdCBzb3VyY2UgPSBuZXcgU291cmNlRnVuY3Rpb24oe1xuICAgICAgdXJsOiBzZXJ2ZXJVcmwsXG4gICAgICBzZXJ2ZXJUeXBlOiBzZXJ2ZXJUeXBlLFxuICAgICAgYXR0cmlidXRpb25zOiBhdHRyaWJ1dGlvbixcbiAgICAgIHBhcmFtczoge1xuICAgICAgICAnTEFZRVJTJzogc2VydmljZU5hbWUsXG4gICAgICAgICd0aWxlZCc6IHNlcnZlclR5cGUgPT09ICdnZW9zZXJ2ZXInICYmIHdtc1R5cGUgPT09IFdtc1R5cGUuVElMRVxuICAgICAgfVxuICAgIH0pO1xuICAgIGNvbnN0IGxheWVyID0gbmV3IExheWVyRnVuY3Rpb24oe1xuICAgICAgc291cmNlOiBzb3VyY2VcbiAgICB9KTtcbiAgICByZXR1cm4gbmV3IFNJQ1dtc0xheWVyKHRpdGxlLCBsYXllciwgbGVnZW5kKTtcbiAgfVxuXG4gIHB1YmxpYyBzdGF0aWMgY3JlYXRlQXJnaXNMYXllcih0aXRsZTogc3RyaW5nLCBzZXJ2ZXJVcmw6IHN0cmluZywgbGVnZW5kPzogc3RyaW5nLCBhdHRyaWJ1dGlvbj86IHN0cmluZykge1xuICAgIGNvbnN0IHNvdXJjZSA9IG5ldyBUaWxlQXJjR0lTUmVzdCh7XG4gICAgICB1cmw6IHNlcnZlclVybCxcbiAgICAgIGF0dHJpYnV0aW9uczogYXR0cmlidXRpb25cbiAgICB9KTtcbiAgICBjb25zdCBsYXllciA9IG5ldyBUaWxlTGF5ZXIoe1xuICAgICAgc291cmNlOiBzb3VyY2VcbiAgICB9KTtcbiAgICByZXR1cm4gbmV3IFNJQ0FyY2dpc0xheWVyKHRpdGxlLCBsYXllciwgbGVnZW5kKTtcbiAgfVxufVxuIl19