/** * 管线动画控制逻辑 */ const LayerPipeLines = require('../../../conf/layers/LayerPipeLines').LayerPipeLines const STYLES = require('../../../conf/Constants').STYLES module.exports = function () { this.init = () => { } this.start = () => { const layers = LayerPipeLines.layers for (var i = 0; i < layers.length; i++) { const config = layers[i] const code = config.code const styles = config.styles // window.layerFactory.show(config) const layer = window.layerFactory.layers[code] if (layer) { if (layer.eachLayer) { layer.eachLayer(function (layer) { var newStyles = Object.assign(STYLES, styles) layer.setStyle({ fill: newStyles.FILL, weight: newStyles.WEIGHT, fillColor: newStyles.FILL_COLOR, color: newStyles.COLOR, fillOpacity: newStyles.FILL_OPACITY, opacity: newStyles.OPACITY, dashArray: newStyles.DASH_ARRAY, dashSpeed: newStyles.DASH_SPPED }) }) // 重新添加到地图上,动画才有效果 window.map.removeLayer(layer) window.layerFactory.show(config) } } } } this.destory = () => { const layers = LayerPipeLines.layers for (var i = 0; i < layers.length; i++) { const config = layers[i] const code = config.code const styles = config.styles // window.layerFactory.show(config) const layer = window.layerFactory.layers[code] if (layer) { if (layer.eachLayer) { layer.eachLayer(function (layer) { layer.resetStyle() var newStyles = Object.assign(STYLES, styles) layer.setStyle({ fill: newStyles.FILL, weight: newStyles.WEIGHT, fillColor: newStyles.FILL_COLOR, color: newStyles.COLOR, fillOpacity: newStyles.FILL_OPACITY, opacity: newStyles.OPACITY }) }) } } } } }