派生自 wuyushui/SewerAndRainNetwork

徐旺旺
2021-03-02 1bbd2b05db1860bfa44acc57f27db507be974f16
src/components/helpers/ServiceLayerHelper.js
@@ -5,7 +5,6 @@
import AjaxUtils from '@/utils/AjaxUtils'
import store from '@/store'
var myRenderer = window.L.canvas()
class ServiceLayerHelper {
  constructor (options) {
    this.map = options.map
@@ -18,6 +17,7 @@
    this.geojsonArray = {} // 初始的geojson集
    this.layerConfig = {}
    this.regex = /\{(.+?)\}/g // 匹配{}
    this.popupComp = null
  }
  getTileLayer (code) {
@@ -27,9 +27,11 @@
  /**
     * 根据配置文件初始化业务底图
     */
  initServiceLayers (layerConfig) {
  initServiceLayers (layerConfig, popupComp) {
    this.layerConfig = layerConfig
    this.popupComp = popupComp
    this.loadLayers(layerConfig.mapConfig.Layers.LayerSewersLine)
    this.loadLayers(layerConfig.mapConfig.Layers.layerSewersPoint)
  }
  /**
@@ -41,19 +43,17 @@
    console.debug('ServiceLayerHelper加载参数:', layerConfig)
    for (let i = 0, len = layerConfig.length; i < len; ++i) {
      const opt = layerConfig[i]
      if (opt.checked) {
        if (opt.type === 'wmts') {
          this.loadWmtsLayer(opt, isAddToMap)
          this.tileLayersWMTSArray.push(opt)
        } else if (opt.type === 'wms') {
          this.loadWmsLayer(opt, isAddToMap)
          this.tileLayersWMSArray.push(opt)
        } else if (opt.type === 'tile') {
          this.loadTileLayer(opt, isAddToMap)
          this.tileLayersTileArray.push(opt)
        } else if (opt.type === 'geojson') {
          this.loadGeojsonLayers(opt)
        }
      if (opt.type === 'wmts') {
        this.loadWmtsLayer(opt, isAddToMap)
        this.tileLayersWMTSArray.push(opt)
      } else if (opt.type === 'wms') {
        this.loadWmsLayer(opt, isAddToMap)
        this.tileLayersWMSArray.push(opt)
      } else if (opt.type === 'tile') {
        this.loadTileLayer(opt, isAddToMap)
        this.tileLayersTileArray.push(opt)
      } else if (opt.type === 'geojson') {
        this.loadGeojsonLayers(opt)
      }
    }
  }
@@ -92,7 +92,8 @@
  loadGeojson (res, layer) {
    var that = this
    var icon = layer.icon
    return that.L.geoJSON(res.features, {
    const featureGroup = that.L.featureGroup().addTo(that.map)
    that.L.geoJSON(res.features, {
      style: function (feature) {
        return {
          fill: true,
@@ -115,11 +116,18 @@
              size: [20, 20]
            }
          })
      },
      renderer: myRenderer
      }
    }).bindPopup(function (layer) {
      return layer.feature.properties.linenumber
    }).addTo(that.map)
      that.popupComp.setDatas(layer)
      that.popupComp.setShow()
      return that.popupComp.$el
    }, {
      className: 's-map-popup',
      minWidth: 300,
      closeButton: false,
      autoClose: false
    }).addTo(featureGroup).bringToFront()
    return featureGroup
  }
  removeLayer (item) {
@@ -139,11 +147,13 @@
  loadWmtsLayer (options, isAddToMap = true) {
    const layer = this.L.tileLayer(options.url, options.option)
    layer.config = options
    if (isAddToMap) {
      layer.addTo(this.map)
    var checked = options.checked
    if (checked) {
      if (isAddToMap) {
        layer.addTo(this.map)
      }
      this.loadedLayersMap.set(options.code, layer)
    }
    this.loadedLayersMap.set(options.code, layer)
  }
  /**
@@ -155,10 +165,13 @@
    const layer = this.L.tileLayer.wms(options.url, options.option)
    layer.config = options
    if (isAddToMap) {
      layer.addTo(this.tileLayerWmslayerGroup)
    var checked = options.checked
    if (checked) {
      if (isAddToMap) {
        layer.addTo(this.tileLayerWmslayerGroup)
      }
      this.loadedLayersMap.set(options.code, layer)
    }
    this.loadedLayersMap.set(options.code, layer)
  }
  /**