From a6d4140fd1dbdbe706d4b95c5edad871272fbc07 Mon Sep 17 00:00:00 2001 From: Glenn Vorhes <gavorhes@wisc.edu> Date: Mon, 25 Sep 2017 16:09:35 -0500 Subject: [PATCH] apply opacity, add some typings --- dist/layers/LayerBase.d.ts | 4 +++- dist/layers/LayerBase.js.map | 2 +- dist/layers/LayerBaseVector.js | 1 + dist/layers/LayerBaseVector.js.map | 2 +- src/layers/LayerBase.ts | 28 ++++++++++++++-------------- src/layers/LayerBaseVector.ts | 1 + 6 files changed, 21 insertions(+), 17 deletions(-) diff --git a/dist/layers/LayerBase.d.ts b/dist/layers/LayerBase.d.ts index 2b2c20c..030c3d5 100644 --- a/dist/layers/LayerBase.d.ts +++ b/dist/layers/LayerBase.d.ts @@ -107,7 +107,9 @@ export declare abstract class LayerBase { * @param {object} newParams - new get params * @protected */ - params: any; + params: { + [s: string]: any; + }; /** * get the minimum resolution * @type {number|*} diff --git a/dist/layers/LayerBase.js.map b/dist/layers/LayerBase.js.map index 6bd8113..f108910 100644 --- a/dist/layers/LayerBase.js.map +++ b/dist/layers/LayerBase.js.map @@ -1 +1 @@ -{"version":3,"file":"LayerBase.js","sourceRoot":"","sources":["../../src/layers/LayerBase.ts"],"names":[],"mappings":"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","sourcesContent":["import * as zoomResolutionConvert from '../olHelpers/zoomResolutionConvert';\r\nimport provide from '../util/provide';\r\nimport ol = require('custom-ol');\r\nimport makeGuid from '../util/makeGuid';\r\nimport $ = require('jquery');\r\n\r\nconst nm = provide('layers');\r\n\r\n\r\nexport interface LayerBaseOptions{\r\n id?: string;\r\n name?: string;\r\n opacity?: number;\r\n visible?: boolean;\r\n minZoom?: number;\r\n maxZoom?: number;\r\n params?: any;\r\n zIndex?: number;\r\n loadCallback?: Function;\r\n legendCollapse?: boolean;\r\n legendCheckbox?: boolean;\r\n legendContent?: string;\r\n}\r\n\r\n\r\n/**\r\n * The base layer class\r\n * @abstract\r\n */\r\nexport abstract class LayerBase {\r\n\r\n protected _legendCheckbox: boolean;\r\n protected _url: string;\r\n protected _opacity: number;\r\n protected _minZoom: number;\r\n protected _maxZoom: number;\r\n protected _visible: boolean;\r\n protected _loaded: boolean;\r\n protected _zIndex: number;\r\n protected _legendContent: string;\r\n protected _params: any;\r\n protected _id: string;\r\n protected _name: string;\r\n protected _source: ol.source.Source;\r\n protected _animate: boolean;\r\n protected _legendCollapse: boolean;\r\n protected _maxResolution: number;\r\n protected _minResolution: number;\r\n protected _$legendDiv: JQuery;\r\n loadCallback: Function;\r\n protected _olLayer: ol.layer.Layer;\r\n protected _applyCollapseCalled: boolean;\r\n\r\n\r\n\r\n /**\r\n * The base layer for all others\r\n * @param {string} url - url for source\r\n * @param {object} options - config\r\n * @param {string} [options.id=makeGuid()] - layer id\r\n * @param {string} [options.name=Unnamed Layer] - layer name\r\n * @param {number} [options.opacity=1] - opacity\r\n * @param {boolean} [options.visible=true] - default visible\r\n * @param {number} [options.minZoom=undefined] - min zoom level, 0 - 28\r\n * @param {number} [options.maxZoom=undefined] - max zoom level, 0 - 28\r\n * @param {object} [options.params={}] - the get parameters to include to retrieve the layer\r\n * @param {number} [options.zIndex=0] - the z index for the layer\r\n * @param {function} [options.loadCallback] - function to call on load, context this is the layer object\r\n * @param {boolean} [options.legendCollapse=false] - if the legend item should be initially collapsed\r\n * @param {boolean} [options.legendCheckbox=true] - if the legend item should have a checkbox for visibility\r\n * @param {boolean} [options.legendContent=undefined] - additional content to add to the legend\r\n */\r\n constructor(url: string, options: LayerBaseOptions = {}) {\r\n options = options || {} as LayerBaseOptions;\r\n\r\n if (typeof url !== 'string') {\r\n throw 'Invalid URL';\r\n }\r\n this._url = url;\r\n\r\n\r\n this._params = typeof options.params == 'object' ? options.params : {};\r\n this._legendCollapse = typeof options.legendCollapse == 'boolean' ? options.legendCollapse : false;\r\n this._legendCheckbox = typeof options.legendCheckbox == 'boolean' ? options.legendCheckbox : true;\r\n\r\n this.id = options.id || makeGuid();\r\n this._name = options.name || 'Unnamed Layer';\r\n this.animate = false;\r\n this._opacity = typeof options.opacity == 'number' ? options.opacity : 1;\r\n\r\n if (this._opacity > 1) {\r\n this._opacity = 1;\r\n } else if (this._opacity < 0) {\r\n this._opacity = 0;\r\n }\r\n\r\n this._visible = typeof options.visible === 'boolean' ? options.visible : true;\r\n\r\n this._source = undefined;\r\n\r\n /**\r\n *\r\n * @protected\r\n */\r\n this._olLayer = undefined;\r\n this._loaded = false;\r\n\r\n this._maxResolution = zoomResolutionConvert.zoomToResolution(options.minZoom);\r\n if (typeof this._maxResolution !== 'undefined') {\r\n this._maxResolution += 0.00001;\r\n }\r\n this._minResolution = zoomResolutionConvert.zoomToResolution(options.maxZoom);\r\n\r\n this._minZoom = typeof options.minZoom == 'number' ? options.minZoom : undefined;\r\n this._maxZoom = typeof options.maxZoom == 'number' ? options.maxZoom : undefined;\r\n this._zIndex = typeof options.zIndex == 'number' ? options.zIndex : 0;\r\n\r\n this.loadCallback = typeof options.loadCallback == 'function' ? options.loadCallback : function () {\r\n };\r\n\r\n\r\n this._legendContent = '';\r\n\r\n if (this._legendCheckbox) {\r\n this._legendContent += `<input type=\"checkbox\" ${this.visible ? 'checked' : ''} ` +\r\n `class=\"legend-check\" id=\"${this.id}-legend-layer-check\"><span></span>`;\r\n this._legendContent += `<label for=\"${this.id}-legend-layer-check\" class=\"legend-layer-name\">${this.name}</label>`;\r\n } else {\r\n this._legendContent += `<label class=\"legend-layer-name\">${this.name}</label>`;\r\n }\r\n\r\n this._$legendDiv = null;\r\n this._applyCollapseCalled = false;\r\n this._addLegendContent(typeof options.legendContent === 'string' ? options.legendContent : undefined);\r\n }\r\n\r\n /**\r\n * base load function, sets _loaded = true if it is not already\r\n * @protected\r\n * @returns {boolean} if already loaded\r\n */\r\n _load() {\r\n if (this.loaded == true) {\r\n return true;\r\n } else {\r\n this._loaded = true;\r\n\r\n return false;\r\n }\r\n }\r\n\r\n /**\r\n * Get the legend html, be sure to only add to the DOM once\r\n * @returns {string} html for layer wrapped in a div\r\n */\r\n getLegendDiv() {\r\n return `<div class=\"legend-layer-div\" id=\"${this.id}-legend-layer-div\">${this._legendContent}</div>`;\r\n }\r\n\r\n /**\r\n *\r\n * @param additionalContent - additional content to add to legend\r\n * @private\r\n */\r\n _addLegendContent(additionalContent='') {\r\n\r\n let addCollapse = additionalContent.indexOf('<ul>') > -1;\r\n\r\n if (addCollapse) {\r\n additionalContent = '<span class=\"legend-items-expander\" title=\"Expand/Collapse\">▼</span>' + additionalContent;\r\n }\r\n\r\n this._legendContent += additionalContent;\r\n\r\n this._$legendDiv = $(`#${this.id}-legend-layer-div`);\r\n\r\n if (this._$legendDiv.length > 0) {\r\n this._$legendDiv.append(additionalContent);\r\n this.applyCollapse();\r\n }\r\n }\r\n\r\n /**\r\n * add additional content to the legend\r\n * @param {string} [additionalContent=] - additonal content to add\r\n */\r\n addLegendContent(additionalContent: string) {\r\n this._addLegendContent(additionalContent);\r\n }\r\n\r\n applyCollapse(): void {\r\n if (this._applyCollapseCalled) {\r\n console.log('collapse already applied');\r\n\r\n return undefined;\r\n }\r\n\r\n this._$legendDiv = $(`#${this.id}-legend-layer-div`);\r\n\r\n if (this._$legendDiv.length > 0) {\r\n\r\n let $expander = this._$legendDiv.find('.legend-items-expander');\r\n\r\n if ($expander.length > 0) {\r\n this._applyCollapseCalled = true;\r\n\r\n $expander.click(function () {\r\n let $this = $(this);\r\n\r\n $this.siblings('ul').slideToggle();\r\n\r\n if ($this.hasClass('legend-layer-group-collapsed')) {\r\n $this.removeClass('legend-layer-group-collapsed');\r\n $this.html('▼');\r\n } else {\r\n $this.addClass('legend-layer-group-collapsed');\r\n $this.html('▶');\r\n }\r\n });\r\n\r\n if (this._legendCollapse) {\r\n $expander.trigger('click');\r\n }\r\n }\r\n }\r\n }\r\n\r\n /**\r\n * trick to refresh the layer\r\n */\r\n refresh() {\r\n if (this.source) {\r\n this.source.refresh();\r\n }\r\n }\r\n\r\n get id(): string{\r\n return this._id;\r\n }\r\n\r\n set id(newId: string){\r\n this._id = newId;\r\n }\r\n\r\n get animate(): boolean{\r\n return this._animate;\r\n }\r\n\r\n set animate(animate: boolean){\r\n this._animate = animate;\r\n }\r\n\r\n /**\r\n * get the legend content\r\n * @type {string}\r\n */\r\n get legendContent() {\r\n return this._legendContent;\r\n }\r\n\r\n /**\r\n * set the legend content directly\r\n * @param {string} newVal - new content\r\n * @protected\r\n */\r\n set legendContent(newVal) {\r\n this._legendContent = newVal;\r\n }\r\n\r\n /**\r\n * get the map get params\r\n * @type {object}\r\n */\r\n get params() {\r\n return this._params;\r\n }\r\n\r\n /**\r\n * set the map get params\r\n * @param {object} newParams - new get params\r\n * @protected\r\n */\r\n set params(newParams) {\r\n this._params = newParams;\r\n }\r\n\r\n /**\r\n * get the minimum resolution\r\n * @type {number|*}\r\n */\r\n get minResolution() {\r\n return this._minResolution;\r\n }\r\n\r\n /**\r\n * get the maximum resolution\r\n * @type {number|*}\r\n */\r\n get maxResolution() {\r\n return this._maxResolution;\r\n }\r\n\r\n /**\r\n * get min zoom\r\n * @type {number|*}\r\n */\r\n get minZoom() {\r\n return this._minZoom;\r\n }\r\n\r\n /**\r\n * get max zoom\r\n * @type {number|*}\r\n */\r\n get maxZoom() {\r\n return this._maxZoom;\r\n }\r\n\r\n /**\r\n * get the url\r\n * @type {string}\r\n */\r\n get url() {\r\n return this._url;\r\n }\r\n\r\n /**\r\n * Get the layer visibility\r\n * @type {boolean}\r\n */\r\n get visible(): boolean {\r\n return this._visible;\r\n }\r\n\r\n /**\r\n * set the visibility\r\n * @param visibility\r\n */\r\n set visible(visibility: boolean) {\r\n this.setVisible(visibility);\r\n }\r\n\r\n protected setVisible(visibility: boolean) {\r\n this._visible = visibility;\r\n if (this.olLayer) {\r\n this.olLayer.setVisible(this._visible);\r\n if (visibility && !this._loaded) {\r\n this._load();\r\n }\r\n }\r\n }\r\n\r\n\r\n /**\r\n * Get the layer opacity\r\n * @type {number}\r\n */\r\n get opacity() {\r\n return this._opacity;\r\n }\r\n\r\n /**\r\n * Set the layer opacity\r\n * @param {number} opacity - layer opacity\r\n */\r\n set opacity(opacity) {\r\n this._opacity = opacity;\r\n if (this.olLayer) {\r\n this.olLayer.setOpacity(this._opacity);\r\n }\r\n }\r\n\r\n /**\r\n * Get the layer name\r\n * @type {string}\r\n */\r\n get name() {\r\n return this._name;\r\n }\r\n\r\n /**\r\n * set the layer name\r\n * @param {string} newName - the new name\r\n */\r\n set name(newName) {\r\n this._name = newName;\r\n }\r\n\r\n /**\r\n * Check if the layer is loaded\r\n * @type {boolean}\r\n */\r\n get loaded() {\r\n return this._loaded;\r\n }\r\n\r\n /**\r\n * get the layer source\r\n * @type {*}\r\n */\r\n get source(): ol.source.Source {\r\n return this.getSource();\r\n }\r\n\r\n\r\n protected getSource(): ol.source.Source{\r\n return this._source;\r\n }\r\n\r\n /**\r\n * get the z index\r\n */\r\n get zIndex(): number {\r\n return this._zIndex;\r\n }\r\n\r\n /**\r\n * set the z index\r\n */\r\n set zIndex(newZ: number) {\r\n this._zIndex = newZ;\r\n }\r\n\r\n protected setZIndex(newZ: number){\r\n\r\n }\r\n\r\n /**\r\n * the the ol layer\r\n */\r\n get olLayer(): ol.layer.Layer {\r\n return this.getOlLayer();\r\n }\r\n\r\n protected getOlLayer(): ol.layer.Layer{\r\n return this._olLayer;\r\n }\r\n}\r\n\r\nnm.LayerBase = LayerBase;\r\nexport default LayerBase;\r\n"]} \ No newline at end of file +{"version":3,"file":"LayerBase.js","sourceRoot":"","sources":["../../src/layers/LayerBase.ts"],"names":[],"mappings":"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","sourcesContent":["import * as zoomResolutionConvert from '../olHelpers/zoomResolutionConvert';\r\nimport provide from '../util/provide';\r\nimport ol = require('custom-ol');\r\nimport makeGuid from '../util/makeGuid';\r\nimport $ = require('jquery');\r\n\r\nconst nm = provide('layers');\r\n\r\n\r\nexport interface LayerBaseOptions{\r\n id?: string;\r\n name?: string;\r\n opacity?: number;\r\n visible?: boolean;\r\n minZoom?: number;\r\n maxZoom?: number;\r\n params?: any;\r\n zIndex?: number;\r\n loadCallback?: Function;\r\n legendCollapse?: boolean;\r\n legendCheckbox?: boolean;\r\n legendContent?: string;\r\n}\r\n\r\n\r\n/**\r\n * The base layer class\r\n * @abstract\r\n */\r\nexport abstract class LayerBase {\r\n\r\n protected _legendCheckbox: boolean;\r\n protected _url: string;\r\n protected _opacity: number;\r\n protected _minZoom: number;\r\n protected _maxZoom: number;\r\n protected _visible: boolean;\r\n protected _loaded: boolean;\r\n protected _zIndex: number;\r\n protected _legendContent: string;\r\n protected _params: any;\r\n protected _id: string;\r\n protected _name: string;\r\n protected _source: ol.source.Source;\r\n protected _animate: boolean;\r\n protected _legendCollapse: boolean;\r\n protected _maxResolution: number;\r\n protected _minResolution: number;\r\n protected _$legendDiv: JQuery;\r\n loadCallback: Function;\r\n protected _olLayer: ol.layer.Layer;\r\n protected _applyCollapseCalled: boolean;\r\n\r\n\r\n\r\n /**\r\n * The base layer for all others\r\n * @param {string} url - url for source\r\n * @param {object} options - config\r\n * @param {string} [options.id=makeGuid()] - layer id\r\n * @param {string} [options.name=Unnamed Layer] - layer name\r\n * @param {number} [options.opacity=1] - opacity\r\n * @param {boolean} [options.visible=true] - default visible\r\n * @param {number} [options.minZoom=undefined] - min zoom level, 0 - 28\r\n * @param {number} [options.maxZoom=undefined] - max zoom level, 0 - 28\r\n * @param {object} [options.params={}] - the get parameters to include to retrieve the layer\r\n * @param {number} [options.zIndex=0] - the z index for the layer\r\n * @param {function} [options.loadCallback] - function to call on load, context this is the layer object\r\n * @param {boolean} [options.legendCollapse=false] - if the legend item should be initially collapsed\r\n * @param {boolean} [options.legendCheckbox=true] - if the legend item should have a checkbox for visibility\r\n * @param {boolean} [options.legendContent=undefined] - additional content to add to the legend\r\n */\r\n constructor(url: string, options: LayerBaseOptions = {}) {\r\n options = options || {} as LayerBaseOptions;\r\n\r\n if (typeof url !== 'string') {\r\n throw 'Invalid URL';\r\n }\r\n this._url = url;\r\n\r\n\r\n this._params = typeof options.params == 'object' ? options.params : {};\r\n this._legendCollapse = typeof options.legendCollapse == 'boolean' ? options.legendCollapse : false;\r\n this._legendCheckbox = typeof options.legendCheckbox == 'boolean' ? options.legendCheckbox : true;\r\n\r\n this.id = options.id || makeGuid();\r\n this._name = options.name || 'Unnamed Layer';\r\n this.animate = false;\r\n this._opacity = typeof options.opacity == 'number' ? options.opacity : 1;\r\n\r\n if (this._opacity > 1) {\r\n this._opacity = 1;\r\n } else if (this._opacity < 0) {\r\n this._opacity = 0;\r\n }\r\n\r\n this._visible = typeof options.visible === 'boolean' ? options.visible : true;\r\n\r\n this._source = undefined;\r\n\r\n /**\r\n *\r\n * @protected\r\n */\r\n this._olLayer = undefined;\r\n this._loaded = false;\r\n\r\n this._maxResolution = zoomResolutionConvert.zoomToResolution(options.minZoom);\r\n if (typeof this._maxResolution !== 'undefined') {\r\n this._maxResolution += 0.00001;\r\n }\r\n this._minResolution = zoomResolutionConvert.zoomToResolution(options.maxZoom);\r\n\r\n this._minZoom = typeof options.minZoom == 'number' ? options.minZoom : undefined;\r\n this._maxZoom = typeof options.maxZoom == 'number' ? options.maxZoom : undefined;\r\n this._zIndex = typeof options.zIndex == 'number' ? options.zIndex : 0;\r\n\r\n this.loadCallback = typeof options.loadCallback == 'function' ? options.loadCallback : function () {\r\n };\r\n\r\n\r\n this._legendContent = '';\r\n\r\n if (this._legendCheckbox) {\r\n this._legendContent += `<input type=\"checkbox\" ${this.visible ? 'checked' : ''} ` +\r\n `class=\"legend-check\" id=\"${this.id}-legend-layer-check\"><span></span>`;\r\n this._legendContent += `<label for=\"${this.id}-legend-layer-check\" class=\"legend-layer-name\">${this.name}</label>`;\r\n } else {\r\n this._legendContent += `<label class=\"legend-layer-name\">${this.name}</label>`;\r\n }\r\n\r\n this._$legendDiv = null;\r\n this._applyCollapseCalled = false;\r\n this._addLegendContent(typeof options.legendContent === 'string' ? options.legendContent : undefined);\r\n }\r\n\r\n /**\r\n * base load function, sets _loaded = true if it is not already\r\n * @protected\r\n * @returns {boolean} if already loaded\r\n */\r\n _load() {\r\n if (this.loaded == true) {\r\n return true;\r\n } else {\r\n this._loaded = true;\r\n\r\n return false;\r\n }\r\n }\r\n\r\n /**\r\n * Get the legend html, be sure to only add to the DOM once\r\n * @returns {string} html for layer wrapped in a div\r\n */\r\n getLegendDiv() {\r\n return `<div class=\"legend-layer-div\" id=\"${this.id}-legend-layer-div\">${this._legendContent}</div>`;\r\n }\r\n\r\n /**\r\n *\r\n * @param additionalContent - additional content to add to legend\r\n * @private\r\n */\r\n _addLegendContent(additionalContent='') {\r\n\r\n let addCollapse = additionalContent.indexOf('<ul>') > -1;\r\n\r\n if (addCollapse) {\r\n additionalContent = '<span class=\"legend-items-expander\" title=\"Expand/Collapse\">▼</span>' + additionalContent;\r\n }\r\n\r\n this._legendContent += additionalContent;\r\n\r\n this._$legendDiv = $(`#${this.id}-legend-layer-div`);\r\n\r\n if (this._$legendDiv.length > 0) {\r\n this._$legendDiv.append(additionalContent);\r\n this.applyCollapse();\r\n }\r\n }\r\n\r\n /**\r\n * add additional content to the legend\r\n * @param {string} [additionalContent=] - additonal content to add\r\n */\r\n addLegendContent(additionalContent: string) {\r\n this._addLegendContent(additionalContent);\r\n }\r\n\r\n applyCollapse(): void {\r\n if (this._applyCollapseCalled) {\r\n console.log('collapse already applied');\r\n\r\n return undefined;\r\n }\r\n\r\n this._$legendDiv = $(`#${this.id}-legend-layer-div`);\r\n\r\n if (this._$legendDiv.length > 0) {\r\n\r\n let $expander = this._$legendDiv.find('.legend-items-expander');\r\n\r\n if ($expander.length > 0) {\r\n this._applyCollapseCalled = true;\r\n\r\n $expander.click(function () {\r\n let $this = $(this);\r\n\r\n $this.siblings('ul').slideToggle();\r\n\r\n if ($this.hasClass('legend-layer-group-collapsed')) {\r\n $this.removeClass('legend-layer-group-collapsed');\r\n $this.html('▼');\r\n } else {\r\n $this.addClass('legend-layer-group-collapsed');\r\n $this.html('▶');\r\n }\r\n });\r\n\r\n if (this._legendCollapse) {\r\n $expander.trigger('click');\r\n }\r\n }\r\n }\r\n }\r\n\r\n /**\r\n * trick to refresh the layer\r\n */\r\n refresh() {\r\n if (this.source) {\r\n this.source.refresh();\r\n }\r\n }\r\n\r\n get id(): string{\r\n return this._id;\r\n }\r\n\r\n set id(newId: string){\r\n this._id = newId;\r\n }\r\n\r\n get animate(): boolean{\r\n return this._animate;\r\n }\r\n\r\n set animate(animate: boolean){\r\n this._animate = animate;\r\n }\r\n\r\n /**\r\n * get the legend content\r\n * @type {string}\r\n */\r\n get legendContent(): string {\r\n return this._legendContent;\r\n }\r\n\r\n /**\r\n * set the legend content directly\r\n * @param {string} newVal - new content\r\n * @protected\r\n */\r\n set legendContent(newVal: string) {\r\n this._legendContent = newVal;\r\n }\r\n\r\n /**\r\n * get the map get params\r\n * @type {object}\r\n */\r\n get params(): {[s: string]: any} {\r\n return this._params;\r\n }\r\n\r\n /**\r\n * set the map get params\r\n * @param {object} newParams - new get params\r\n * @protected\r\n */\r\n set params(newParams: {[s: string]: any}) {\r\n this._params = newParams;\r\n }\r\n\r\n /**\r\n * get the minimum resolution\r\n * @type {number|*}\r\n */\r\n get minResolution(): number {\r\n return this._minResolution;\r\n }\r\n\r\n /**\r\n * get the maximum resolution\r\n * @type {number|*}\r\n */\r\n get maxResolution(): number {\r\n return this._maxResolution;\r\n }\r\n\r\n /**\r\n * get min zoom\r\n * @type {number|*}\r\n */\r\n get minZoom(): number {\r\n return this._minZoom;\r\n }\r\n\r\n /**\r\n * get max zoom\r\n * @type {number|*}\r\n */\r\n get maxZoom(): number {\r\n return this._maxZoom;\r\n }\r\n\r\n /**\r\n * get the url\r\n * @type {string}\r\n */\r\n get url(): string {\r\n return this._url;\r\n }\r\n\r\n /**\r\n * Get the layer visibility\r\n * @type {boolean}\r\n */\r\n get visible(): boolean {\r\n return this._visible;\r\n }\r\n\r\n /**\r\n * set the visibility\r\n * @param visibility\r\n */\r\n set visible(visibility: boolean) {\r\n this.setVisible(visibility);\r\n }\r\n\r\n protected setVisible(visibility: boolean) {\r\n this._visible = visibility;\r\n if (this.olLayer) {\r\n this.olLayer.setVisible(this._visible);\r\n if (visibility && !this._loaded) {\r\n this._load();\r\n }\r\n }\r\n }\r\n\r\n\r\n /**\r\n * Get the layer opacity\r\n * @type {number}\r\n */\r\n get opacity(): number {\r\n return this._opacity;\r\n }\r\n\r\n /**\r\n * Set the layer opacity\r\n * @param {number} opacity - layer opacity\r\n */\r\n set opacity(opacity: number) {\r\n this._opacity = opacity;\r\n if (this.olLayer) {\r\n this.olLayer.setOpacity(this._opacity);\r\n }\r\n }\r\n\r\n /**\r\n * Get the layer name\r\n * @type {string}\r\n */\r\n get name(): string {\r\n return this._name;\r\n }\r\n\r\n /**\r\n * set the layer name\r\n * @param {string} newName - the new name\r\n */\r\n set name(newName: string) {\r\n this._name = newName;\r\n }\r\n\r\n /**\r\n * Check if the layer is loaded\r\n * @type {boolean}\r\n */\r\n get loaded():boolean {\r\n return this._loaded;\r\n }\r\n\r\n /**\r\n * get the layer source\r\n * @type {*}\r\n */\r\n get source(): ol.source.Source {\r\n return this.getSource();\r\n }\r\n\r\n\r\n protected getSource(): ol.source.Source{\r\n return this._source;\r\n }\r\n\r\n /**\r\n * get the z index\r\n */\r\n get zIndex(): number {\r\n return this._zIndex;\r\n }\r\n\r\n /**\r\n * set the z index\r\n */\r\n set zIndex(newZ: number) {\r\n this._zIndex = newZ;\r\n }\r\n\r\n protected setZIndex(newZ: number){\r\n\r\n }\r\n\r\n /**\r\n * the the ol layer\r\n */\r\n get olLayer(): ol.layer.Layer {\r\n return this.getOlLayer();\r\n }\r\n\r\n protected getOlLayer(): ol.layer.Layer{\r\n return this._olLayer;\r\n }\r\n}\r\n\r\nnm.LayerBase = LayerBase;\r\nexport default LayerBase;\r\n"]} \ No newline at end of file diff --git a/dist/layers/LayerBaseVector.js b/dist/layers/LayerBaseVector.js index a56748e..da3128e 100644 --- a/dist/layers/LayerBaseVector.js +++ b/dist/layers/LayerBaseVector.js @@ -91,6 +91,7 @@ var LayerBaseVector = (function (_super) { _this.olLayer.setZIndex(_this._zIndex); _this._projectionMap = null; _this._projection4326 = new ol.proj.Projection({ code: "EPSG:4326" }); + _this._olLayer.setOpacity(_this.opacity); return _this; } /** diff --git a/dist/layers/LayerBaseVector.js.map b/dist/layers/LayerBaseVector.js.map index 482cee9..beedd99 100644 --- a/dist/layers/LayerBaseVector.js.map +++ b/dist/layers/LayerBaseVector.js.map @@ -1 +1 @@ -{"version":3,"file":"LayerBaseVector.js","sourceRoot":"","sources":["../../src/layers/LayerBaseVector.ts"],"names":[],"mappings":"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","sourcesContent":["import {LayerBase, LayerBaseOptions} from './LayerBase';\r\nimport mapMove from '../olHelpers/mapMove';\r\nimport MapMoveCls from '../olHelpers/mapMoveCls'\r\nimport provide from '../util/provide';\r\nimport ol = require('custom-ol');\r\nimport $ = require('jquery');\r\n\r\nconst nm = provide('layers');\r\n\r\nexport interface makeMapMoveParams {\r\n /**\r\n *\r\n * @param lyr\r\n * @param extent\r\n * @param zoomLevel\r\n */\r\n (lyr: LayerBaseVector, extent: {minX: number, minY: number, maxX: number, maxY: number}, zoomLevel?: number): any\r\n}\r\n\r\n\r\n\r\n\r\nexport interface LayerBaseVectorOptions extends LayerBaseOptions{\r\n autoLoad?: boolean;\r\n style?: ol.style.Style|Array<ol.style.Style>|ol.StyleFunction;\r\n onDemand?: boolean;\r\n onDemandDelay?: number;\r\n mapMoveMakeGetParams?: makeMapMoveParams;\r\n mapMoveObj?: MapMoveCls;\r\n renderOrder?: (a: ol.Feature, b: ol.Feature) => number;\r\n\r\n}\r\n\r\n\r\n\r\n/**\r\n * The Vector layer base\r\n * @augments LayerBase\r\n * @abstract\r\n */\r\nexport class LayerBaseVector extends LayerBase {\r\n _olLayer: ol.layer.Vector;\r\n _source: ol.source.Vector;\r\n _style: ol.style.Style|Array<ol.style.Style>|ol.StyleFunction;\r\n _autoLoad: boolean;\r\n _onDemand: boolean;\r\n _onDemandDelay: number;\r\n _mapMoveMakeGetParams: makeMapMoveParams;\r\n _mapMoveParams: any;\r\n _mapMove: MapMoveCls;\r\n _projectionMap: ol.proj.Projection;\r\n _projection4326: ol.proj.Projection;\r\n\r\n\r\n\r\n /**\r\n * The base vector layer\r\n * @param {string} url - pass an empty string to prevent default load and add from a json source\r\n * @param {object} options - config\r\n * @param {string} [options.id] - layer id\r\n * @param {string} [options.name=Unnamed Layer] - layer name\r\n * @param {number} [options.opacity=1] - opacity\r\n * @param {boolean} [options.visible=true] - default visible\r\n * @param {number} [options.minZoom=undefined] - min zoom level, 0 - 28\r\n * @param {number} [options.maxZoom=undefined] - max zoom level, 0 - 28\r\n * @param {object} [options.params={}] the get parameters to include to retrieve the layer\r\n * @param {number} [options.zIndex=0] the z index for the layer\r\n * @param {function} [options.loadCallback] function to call on load, context this is the layer object\r\n * @param {boolean} [options.legendCollapse=false] if the legend item should be initially collapsed\r\n * @param {boolean} [options.legendCheckbox=true] if the legend item should have a checkbox for visibility\r\n * @param {boolean} [options.legendContent] additional content to add to the legend\r\n *\r\n * @param {boolean} [options.autoLoad=false] if the layer should auto load if not visible\r\n * @param {object} [options.style=undefined] the layer style, use openlayers default style if not defined\r\n * @param {boolean} [options.onDemand=false] if the layer should be loaded by extent on map move\r\n * @param {number} [options.onDemandDelay=300] delay before the map move callback should be called\r\n * @param {mapMoveMakeGetParams} [options.mapMoveMakeGetParams=function(lyr, extent, zoomLevel){}] function to create additional map move params\r\n * @param {MapMoveCls} [options.mapMoveObj=mapMove] alternate map move object for use with multi map pages\r\n *\r\n */\r\n constructor(url: string, options: LayerBaseVectorOptions = {}) {\r\n super(url, options);\r\n\r\n options = options as LayerBaseVectorOptions;\r\n\r\n //prevent regular load if no url has been provided\r\n if (this.url.trim() == '') {\r\n this._loaded = true;\r\n }\r\n\r\n this._style = typeof options.style == 'undefined' ? undefined : options.style;\r\n\r\n if (this.visible) {\r\n this._autoLoad = true;\r\n } else {\r\n this._autoLoad = (typeof options['autoLoad'] == 'boolean' ? options['autoLoad'] : false);\r\n }\r\n\r\n this._onDemand = typeof options.onDemand == 'boolean' ? options.onDemand : false;\r\n this._onDemandDelay = typeof options.onDemandDelay == 'number' ? options.onDemandDelay : 300;\r\n\r\n if (options.mapMoveObj) {\r\n this._mapMove = options.mapMoveObj;\r\n } else {\r\n this._mapMove = this._onDemand ? mapMove : undefined;\r\n }\r\n\r\n\r\n this._mapMoveMakeGetParams = typeof options.mapMoveMakeGetParams == 'function' ? options.mapMoveMakeGetParams :\r\n function () {return {};};\r\n\r\n if (this._onDemand) {\r\n this._loaded = true;\r\n this._mapMoveParams = {};\r\n this._mapMove.checkInit();\r\n this._mapMove.addVectorLayer(this);\r\n }\r\n\r\n this._source = new ol.source.Vector();\r\n\r\n\r\n this._olLayer = new ol.layer.Vector(\r\n {\r\n source: this._source,\r\n visible: this.visible,\r\n style: this.style,\r\n minResolution: this._minResolution,\r\n maxResolution: this._maxResolution,\r\n renderOrder: options.renderOrder\r\n }\r\n );\r\n\r\n this.olLayer.setZIndex(this._zIndex);\r\n\r\n this._projectionMap = null;\r\n this._projection4326 = new ol.proj.Projection({code: \"EPSG:4326\"});\r\n }\r\n\r\n /**\r\n * dummy to be overridden\r\n * @param {object} featureCollection - geojson or esrijson object\r\n */\r\n addFeatures(featureCollection: Object) {\r\n console.log('Layer vector base addFeatures is a placeholder and does nothing');\r\n }\r\n\r\n /**\r\n * Before call to map move callback, can prevent call by returning false\r\n * @param {number} zoom - zoom level\r\n * @param {string} [evtType=undefined] undefined for initial load, otherwise one of 'change:center', 'change:resolution'\r\n * @returns {boolean} if the call should proceed\r\n */\r\n mapMoveBefore(zoom: number, evtType: string) {\r\n if (this.minZoom !== undefined) {\r\n if (zoom < this.minZoom) {\r\n return false;\r\n }\r\n }\r\n\r\n if (this.maxZoom !== undefined) {\r\n if (zoom > this.maxZoom) {\r\n return false;\r\n }\r\n }\r\n\r\n return this.visible;\r\n }\r\n\r\n /**\r\n * callback to generate the parameters passed in the get request\r\n * @param {object} extent - extent object\r\n * @param {number} extent.minX - minX\r\n * @param {number} extent.minY - minY\r\n * @param {number} extent.maxX - maxX\r\n * @param {number} extent.maxY - maxY\r\n * @param {number} zoomLevel - zoom level\r\n */\r\n mapMoveMakeGetParams(extent: {minX: number, minY: number, maxX: number, maxY: number}, zoomLevel: number) {\r\n this._mapMoveParams = {};\r\n $.extend(this._mapMoveParams, this.params);\r\n $.extend(this._mapMoveParams, this._mapMoveMakeGetParams(this, extent, zoomLevel));\r\n }\r\n\r\n /**\r\n * callback function on map move\r\n * @param {object} d - the json response\r\n */\r\n mapMoveCallback(d: Object) {\r\n if (this.source) {\r\n this._source.clear();\r\n }\r\n }\r\n\r\n /**\r\n * clear features in the layer\r\n */\r\n clear() {\r\n if (this._source) {\r\n this._source.clear();\r\n }\r\n }\r\n\r\n /**\r\n * get on demand delay in miliseconds\r\n */\r\n get onDemandDelay(): number {\r\n return this._onDemandDelay;\r\n }\r\n\r\n /**\r\n * get if the layer is autoloaded\r\n */\r\n get autoLoad(): boolean {\r\n return this._autoLoad;\r\n }\r\n\r\n /**\r\n * get the style definition\r\n */\r\n get style(): ol.StyleFunction|Array<ol.style.Style>|ol.style.Style {\r\n return this._style;\r\n }\r\n\r\n /**\r\n * set the style\r\n * @param style - the style or function\r\n */\r\n set style(style: ol.StyleFunction|Array<ol.style.Style>|ol.style.Style) {\r\n this._style = style;\r\n this.olLayer.setStyle(this._style as ol.style.Style);\r\n }\r\n\r\n /**\r\n * get the map CRS if it is defined by the map move object\r\n */\r\n get mapCrs(): string {\r\n return this.mapProj == null ? null : this.mapProj.getCode();\r\n }\r\n\r\n get mapProj(): ol.proj.Projection{\r\n if (this._projectionMap != null){\r\n return this._projectionMap;\r\n }\r\n\r\n if (this._mapMove) {\r\n this._projectionMap = this._mapMove.map.getView().getProjection();\r\n return this._projectionMap;\r\n } else {\r\n return null;\r\n }\r\n\r\n }\r\n\r\n /**\r\n * get the map move object\r\n * @type {MapMoveCls|*}\r\n */\r\n get mapMove(): MapMoveCls {\r\n return this._mapMove;\r\n }\r\n\r\n /**\r\n * map move params\r\n * @type {object}\r\n */\r\n get mapMoveParams() {\r\n return this._mapMoveParams;\r\n }\r\n\r\n get visible(): boolean{\r\n return this._visible;\r\n }\r\n\r\n /**\r\n * Set the layer visibility\r\n * @type {boolean}\r\n * @override\r\n */\r\n set visible(visibility) {\r\n super.setVisible(visibility);\r\n\r\n if (this._onDemand) {\r\n this.mapMove.triggerLyrLoad(this);\r\n }\r\n }\r\n\r\n /**\r\n * get the layer vector source\r\n * @override\r\n */\r\n get source(): ol.source.Vector {\r\n return this.getSource() as ol.source.Vector;\r\n }\r\n\r\n /**\r\n * array of ol features\r\n */\r\n get features(): Array<ol.Feature> {\r\n return this.source.getFeatures();\r\n }\r\n\r\n /**\r\n *\r\n */\r\n get olLayer(): ol.layer.Vector {\r\n return super.getOlLayer() as ol.layer.Vector;\r\n }\r\n\r\n protected setZIndex(newZ: number) {\r\n this.olLayer.setZIndex(newZ);\r\n }\r\n}\r\n\r\nnm.LayerBaseVector = LayerBaseVector;\r\nexport default LayerBaseVector;\r\n\r\n\r\n\r\n\r\n\r\n\r\n"]} \ No newline at end of file +{"version":3,"file":"LayerBaseVector.js","sourceRoot":"","sources":["../../src/layers/LayerBaseVector.ts"],"names":[],"mappings":"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","sourcesContent":["import {LayerBase, LayerBaseOptions} from './LayerBase';\r\nimport mapMove from '../olHelpers/mapMove';\r\nimport MapMoveCls from '../olHelpers/mapMoveCls'\r\nimport provide from '../util/provide';\r\nimport ol = require('custom-ol');\r\nimport $ = require('jquery');\r\n\r\nconst nm = provide('layers');\r\n\r\nexport interface makeMapMoveParams {\r\n /**\r\n *\r\n * @param lyr\r\n * @param extent\r\n * @param zoomLevel\r\n */\r\n (lyr: LayerBaseVector, extent: {minX: number, minY: number, maxX: number, maxY: number}, zoomLevel?: number): any\r\n}\r\n\r\n\r\n\r\n\r\nexport interface LayerBaseVectorOptions extends LayerBaseOptions{\r\n autoLoad?: boolean;\r\n style?: ol.style.Style|Array<ol.style.Style>|ol.StyleFunction;\r\n onDemand?: boolean;\r\n onDemandDelay?: number;\r\n mapMoveMakeGetParams?: makeMapMoveParams;\r\n mapMoveObj?: MapMoveCls;\r\n renderOrder?: (a: ol.Feature, b: ol.Feature) => number;\r\n\r\n}\r\n\r\n\r\n\r\n/**\r\n * The Vector layer base\r\n * @augments LayerBase\r\n * @abstract\r\n */\r\nexport class LayerBaseVector extends LayerBase {\r\n _olLayer: ol.layer.Vector;\r\n _source: ol.source.Vector;\r\n _style: ol.style.Style|Array<ol.style.Style>|ol.StyleFunction;\r\n _autoLoad: boolean;\r\n _onDemand: boolean;\r\n _onDemandDelay: number;\r\n _mapMoveMakeGetParams: makeMapMoveParams;\r\n _mapMoveParams: any;\r\n _mapMove: MapMoveCls;\r\n _projectionMap: ol.proj.Projection;\r\n _projection4326: ol.proj.Projection;\r\n\r\n\r\n\r\n /**\r\n * The base vector layer\r\n * @param {string} url - pass an empty string to prevent default load and add from a json source\r\n * @param {object} options - config\r\n * @param {string} [options.id] - layer id\r\n * @param {string} [options.name=Unnamed Layer] - layer name\r\n * @param {number} [options.opacity=1] - opacity\r\n * @param {boolean} [options.visible=true] - default visible\r\n * @param {number} [options.minZoom=undefined] - min zoom level, 0 - 28\r\n * @param {number} [options.maxZoom=undefined] - max zoom level, 0 - 28\r\n * @param {object} [options.params={}] the get parameters to include to retrieve the layer\r\n * @param {number} [options.zIndex=0] the z index for the layer\r\n * @param {function} [options.loadCallback] function to call on load, context this is the layer object\r\n * @param {boolean} [options.legendCollapse=false] if the legend item should be initially collapsed\r\n * @param {boolean} [options.legendCheckbox=true] if the legend item should have a checkbox for visibility\r\n * @param {boolean} [options.legendContent] additional content to add to the legend\r\n *\r\n * @param {boolean} [options.autoLoad=false] if the layer should auto load if not visible\r\n * @param {object} [options.style=undefined] the layer style, use openlayers default style if not defined\r\n * @param {boolean} [options.onDemand=false] if the layer should be loaded by extent on map move\r\n * @param {number} [options.onDemandDelay=300] delay before the map move callback should be called\r\n * @param {mapMoveMakeGetParams} [options.mapMoveMakeGetParams=function(lyr, extent, zoomLevel){}] function to create additional map move params\r\n * @param {MapMoveCls} [options.mapMoveObj=mapMove] alternate map move object for use with multi map pages\r\n *\r\n */\r\n constructor(url: string, options: LayerBaseVectorOptions = {}) {\r\n super(url, options);\r\n\r\n options = options as LayerBaseVectorOptions;\r\n\r\n //prevent regular load if no url has been provided\r\n if (this.url.trim() == '') {\r\n this._loaded = true;\r\n }\r\n\r\n this._style = typeof options.style == 'undefined' ? undefined : options.style;\r\n\r\n if (this.visible) {\r\n this._autoLoad = true;\r\n } else {\r\n this._autoLoad = (typeof options['autoLoad'] == 'boolean' ? options['autoLoad'] : false);\r\n }\r\n\r\n this._onDemand = typeof options.onDemand == 'boolean' ? options.onDemand : false;\r\n this._onDemandDelay = typeof options.onDemandDelay == 'number' ? options.onDemandDelay : 300;\r\n\r\n if (options.mapMoveObj) {\r\n this._mapMove = options.mapMoveObj;\r\n } else {\r\n this._mapMove = this._onDemand ? mapMove : undefined;\r\n }\r\n\r\n\r\n this._mapMoveMakeGetParams = typeof options.mapMoveMakeGetParams == 'function' ? options.mapMoveMakeGetParams :\r\n function () {return {};};\r\n\r\n if (this._onDemand) {\r\n this._loaded = true;\r\n this._mapMoveParams = {};\r\n this._mapMove.checkInit();\r\n this._mapMove.addVectorLayer(this);\r\n }\r\n\r\n this._source = new ol.source.Vector();\r\n\r\n\r\n this._olLayer = new ol.layer.Vector(\r\n {\r\n source: this._source,\r\n visible: this.visible,\r\n style: this.style,\r\n minResolution: this._minResolution,\r\n maxResolution: this._maxResolution,\r\n renderOrder: options.renderOrder\r\n }\r\n );\r\n\r\n this.olLayer.setZIndex(this._zIndex);\r\n\r\n this._projectionMap = null;\r\n this._projection4326 = new ol.proj.Projection({code: \"EPSG:4326\"});\r\n this._olLayer.setOpacity(this.opacity)\r\n }\r\n\r\n /**\r\n * dummy to be overridden\r\n * @param {object} featureCollection - geojson or esrijson object\r\n */\r\n addFeatures(featureCollection: Object) {\r\n console.log('Layer vector base addFeatures is a placeholder and does nothing');\r\n }\r\n\r\n /**\r\n * Before call to map move callback, can prevent call by returning false\r\n * @param {number} zoom - zoom level\r\n * @param {string} [evtType=undefined] undefined for initial load, otherwise one of 'change:center', 'change:resolution'\r\n * @returns {boolean} if the call should proceed\r\n */\r\n mapMoveBefore(zoom: number, evtType: string) {\r\n if (this.minZoom !== undefined) {\r\n if (zoom < this.minZoom) {\r\n return false;\r\n }\r\n }\r\n\r\n if (this.maxZoom !== undefined) {\r\n if (zoom > this.maxZoom) {\r\n return false;\r\n }\r\n }\r\n\r\n return this.visible;\r\n }\r\n\r\n /**\r\n * callback to generate the parameters passed in the get request\r\n * @param {object} extent - extent object\r\n * @param {number} extent.minX - minX\r\n * @param {number} extent.minY - minY\r\n * @param {number} extent.maxX - maxX\r\n * @param {number} extent.maxY - maxY\r\n * @param {number} zoomLevel - zoom level\r\n */\r\n mapMoveMakeGetParams(extent: {minX: number, minY: number, maxX: number, maxY: number}, zoomLevel: number) {\r\n this._mapMoveParams = {};\r\n $.extend(this._mapMoveParams, this.params);\r\n $.extend(this._mapMoveParams, this._mapMoveMakeGetParams(this, extent, zoomLevel));\r\n }\r\n\r\n /**\r\n * callback function on map move\r\n * @param {object} d - the json response\r\n */\r\n mapMoveCallback(d: Object) {\r\n if (this.source) {\r\n this._source.clear();\r\n }\r\n }\r\n\r\n /**\r\n * clear features in the layer\r\n */\r\n clear() {\r\n if (this._source) {\r\n this._source.clear();\r\n }\r\n }\r\n\r\n /**\r\n * get on demand delay in miliseconds\r\n */\r\n get onDemandDelay(): number {\r\n return this._onDemandDelay;\r\n }\r\n\r\n /**\r\n * get if the layer is autoloaded\r\n */\r\n get autoLoad(): boolean {\r\n return this._autoLoad;\r\n }\r\n\r\n /**\r\n * get the style definition\r\n */\r\n get style(): ol.StyleFunction|Array<ol.style.Style>|ol.style.Style {\r\n return this._style;\r\n }\r\n\r\n /**\r\n * set the style\r\n * @param style - the style or function\r\n */\r\n set style(style: ol.StyleFunction|Array<ol.style.Style>|ol.style.Style) {\r\n this._style = style;\r\n this.olLayer.setStyle(this._style as ol.style.Style);\r\n }\r\n\r\n /**\r\n * get the map CRS if it is defined by the map move object\r\n */\r\n get mapCrs(): string {\r\n return this.mapProj == null ? null : this.mapProj.getCode();\r\n }\r\n\r\n get mapProj(): ol.proj.Projection{\r\n if (this._projectionMap != null){\r\n return this._projectionMap;\r\n }\r\n\r\n if (this._mapMove) {\r\n this._projectionMap = this._mapMove.map.getView().getProjection();\r\n return this._projectionMap;\r\n } else {\r\n return null;\r\n }\r\n\r\n }\r\n\r\n /**\r\n * get the map move object\r\n * @type {MapMoveCls|*}\r\n */\r\n get mapMove(): MapMoveCls {\r\n return this._mapMove;\r\n }\r\n\r\n /**\r\n * map move params\r\n * @type {object}\r\n */\r\n get mapMoveParams() {\r\n return this._mapMoveParams;\r\n }\r\n\r\n get visible(): boolean{\r\n return this._visible;\r\n }\r\n\r\n /**\r\n * Set the layer visibility\r\n * @type {boolean}\r\n * @override\r\n */\r\n set visible(visibility) {\r\n super.setVisible(visibility);\r\n\r\n if (this._onDemand) {\r\n this.mapMove.triggerLyrLoad(this);\r\n }\r\n }\r\n\r\n /**\r\n * get the layer vector source\r\n * @override\r\n */\r\n get source(): ol.source.Vector {\r\n return this.getSource() as ol.source.Vector;\r\n }\r\n\r\n /**\r\n * array of ol features\r\n */\r\n get features(): Array<ol.Feature> {\r\n return this.source.getFeatures();\r\n }\r\n\r\n /**\r\n *\r\n */\r\n get olLayer(): ol.layer.Vector {\r\n return super.getOlLayer() as ol.layer.Vector;\r\n }\r\n\r\n protected setZIndex(newZ: number) {\r\n this.olLayer.setZIndex(newZ);\r\n }\r\n}\r\n\r\nnm.LayerBaseVector = LayerBaseVector;\r\nexport default LayerBaseVector;\r\n\r\n\r\n\r\n\r\n\r\n\r\n"]} \ No newline at end of file diff --git a/src/layers/LayerBase.ts b/src/layers/LayerBase.ts index 118867c..56d1bcc 100644 --- a/src/layers/LayerBase.ts +++ b/src/layers/LayerBase.ts @@ -254,7 +254,7 @@ export abstract class LayerBase { * get the legend content * @type {string} */ - get legendContent() { + get legendContent(): string { return this._legendContent; } @@ -263,7 +263,7 @@ export abstract class LayerBase { * @param {string} newVal - new content * @protected */ - set legendContent(newVal) { + set legendContent(newVal: string) { this._legendContent = newVal; } @@ -271,7 +271,7 @@ export abstract class LayerBase { * get the map get params * @type {object} */ - get params() { + get params(): {[s: string]: any} { return this._params; } @@ -280,7 +280,7 @@ export abstract class LayerBase { * @param {object} newParams - new get params * @protected */ - set params(newParams) { + set params(newParams: {[s: string]: any}) { this._params = newParams; } @@ -288,7 +288,7 @@ export abstract class LayerBase { * get the minimum resolution * @type {number|*} */ - get minResolution() { + get minResolution(): number { return this._minResolution; } @@ -296,7 +296,7 @@ export abstract class LayerBase { * get the maximum resolution * @type {number|*} */ - get maxResolution() { + get maxResolution(): number { return this._maxResolution; } @@ -304,7 +304,7 @@ export abstract class LayerBase { * get min zoom * @type {number|*} */ - get minZoom() { + get minZoom(): number { return this._minZoom; } @@ -312,7 +312,7 @@ export abstract class LayerBase { * get max zoom * @type {number|*} */ - get maxZoom() { + get maxZoom(): number { return this._maxZoom; } @@ -320,7 +320,7 @@ export abstract class LayerBase { * get the url * @type {string} */ - get url() { + get url(): string { return this._url; } @@ -355,7 +355,7 @@ export abstract class LayerBase { * Get the layer opacity * @type {number} */ - get opacity() { + get opacity(): number { return this._opacity; } @@ -363,7 +363,7 @@ export abstract class LayerBase { * Set the layer opacity * @param {number} opacity - layer opacity */ - set opacity(opacity) { + set opacity(opacity: number) { this._opacity = opacity; if (this.olLayer) { this.olLayer.setOpacity(this._opacity); @@ -374,7 +374,7 @@ export abstract class LayerBase { * Get the layer name * @type {string} */ - get name() { + get name(): string { return this._name; } @@ -382,7 +382,7 @@ export abstract class LayerBase { * set the layer name * @param {string} newName - the new name */ - set name(newName) { + set name(newName: string) { this._name = newName; } @@ -390,7 +390,7 @@ export abstract class LayerBase { * Check if the layer is loaded * @type {boolean} */ - get loaded() { + get loaded():boolean { return this._loaded; } diff --git a/src/layers/LayerBaseVector.ts b/src/layers/LayerBaseVector.ts index ca0b152..c899668 100644 --- a/src/layers/LayerBaseVector.ts +++ b/src/layers/LayerBaseVector.ts @@ -134,6 +134,7 @@ export class LayerBaseVector extends LayerBase { this._projectionMap = null; this._projection4326 = new ol.proj.Projection({code: "EPSG:4326"}); + this._olLayer.setOpacity(this.opacity) } /** -- GitLab