派生自 wuyushui/SewerAndRainNetwork

YANGDL
2021-03-03 41af42c7d30e9604f78c2973c39d0ff5e9e46ed1
src/components/helpers/ServiceLayerHelper.js
@@ -17,6 +17,7 @@
    this.geojsonArray = {} // 初始的geojson集
    this.layerConfig = {}
    this.regex = /\{(.+?)\}/g // 匹配{}
    this.popupComp = null
  }
  getTileLayer (code) {
@@ -26,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)
  }
  /**
@@ -40,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)
      }
    }
  }
@@ -69,41 +70,46 @@
    }
  }
  loadGeojsonLayer (url, layer) {
  /**
   * 请求wfs数据
   * @param url
   * @param item
   */
  loadGeojsonLayer (url, item) {
    var matches = this.regex.exec(url)
    var matchValue = layer[matches[1]]
    var code = layer.code
    var matchValue = item[matches[1]]
    var code = item.code
    var newUrl = url.replace(this.regex, matchValue)
    var that = this
    if (!that.geojsonArray[code]) {
      AjaxUtils.GetDataAsynByUrl(newUrl, {}, function (res) {
        store.commit('setSewersDatas', res)
        var layer = that.loadGeojson(res)
        var layer = that.loadGeojson(res, item)
        that.geojsonArray[code] = layer
      })
    }
  }
  /**
     * 加载点数据
     * @param res
     */
  loadGeojson (res) {
   * 加载gis server返回的geoson数据到地图中展示
   * @param res
   */
  loadGeojson (res, opt) {
    var that = this
    const featureGroup = that.L.featureGroup([], {
      attribution: { id: '123' }
    }).addTo(that.map)
    that.L.geoJSON(res.features, {
    var icon = opt.icon
    const featureGroup = that.L.featureGroup().addTo(that.map)
    const geojson = that.L.geoJSON(res.features, {
      style: function (feature) {
        return {
          fill: true,
          weight: 2,
          fillColor: '#06cccc',
          color: '#06cccc',
          weight: 3,
          fillColor: '#73b2ff',
          color: '#73b2ff',
          fillOpacity: 0.2,
          opacity: 0.8,
          dashArray: '10,4',
          dashSpeed: -10
          opacity: 1
          // ,
          // dashArray: '10,4',
          // dashSpeed: -10
        }
      },
      pointToLayer: function (geoJsonPoint, latlng) {
@@ -111,15 +117,27 @@
          {
            radius: 20,
            img: {
              url: 'assets/images/map/marker-icon.png',
              // url: 'assets/images/map/marker-icon.png',
              url: '/assets/images/map/' + icon,
              size: [20, 20]
            }
          })
      }
    }).bindPopup(function (layer) {
      // return layer.feature.properties.linenumber
      that.popupComp.setDatas(layer)
      that.popupComp.setShow()
      return that.popupComp.$el
    }, {
      className: 's-map-popup',
      minWidth: 300,
      closeButton: false,
      autoClose: false
    }).addTo(featureGroup)
    featureGroup.bringToBack()
    if (Object.prototype.hasOwnProperty.call(res, 'features') && res.features.length > 0 && (res.features[0].geometry.type === 'LineString' || res.features[0].geometry.type === 'MultiLineString')) {
      geojson.bringToBack()
    } else {
      geojson.bringToFront()
    }
    return featureGroup
  }
@@ -140,11 +158,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)
  }
  /**
@@ -156,10 +176,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)
  }
  /**