派生自 wuyushui/SewerAndRainNetwork

seatonwan9
2021-05-12 3d7c359a73da1e5d796642d35be0e2444d997041
src/components/LayerController/logic/PipeLineAnimal.js
@@ -1,28 +1,69 @@
/**
 *  管线动画控制逻辑
 */
const layerPipeLines = require('../../../conf/layers/LayerPipeLines').LayerPipeLines
const LayerPipeLines = require('../../../conf/layers/LayerPipeLines').LayerPipeLines
const STYLES = require('../../../conf/Constants').STYLES
module.exports = function () {
  this.init = (layer, L) => {
    console.log('sssssss')
    const layers = layerPipeLines.layers
  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]
      layer.setStyle({
        FILL: true,
        WEIGHT: 3,
        FILL_COLOR: '#73b2ff',
        COLOR: '#73b2ff',
        FILL_OPACITY: 0.2,
        OPACITY: 1,
        DASH_ARRAY: '4,4',
        DASH_SPPED: -5,
        ICON_SIZE: [10, 10]
      })
      console.log(layer)
      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
            })
          })
        }
      }
    }
  }
}