派生自 wuyushui/SewerAndRainNetwork

徐旺旺
2021-05-17 cf5ab6da9ff676fab8a10d4299bd5a04a07bf50f
src/components/LayerController/service/WmsLayerService.js
@@ -1,5 +1,5 @@
import AjaxUtils from '../../../utils/AjaxUtils'
import { PIPELINE_WMS } from '../../../conf/Constants'
import { WMS_URL } from '../../../conf/Constants'
import Popup from '@views/popup/Popup'
import WmsLayerList from '../dataset/WmsLayerList'
@@ -29,9 +29,11 @@
    this.featureGroup = this.L.featureGroup({}).addTo(this.map)
    this.wmsLayerList = new WmsLayerList()
    for (var i = 0; i < layersConfig.length; i++) {
      const config = layersConfig[i]
      this.wmsLayerList.addConfig(config)
    if (layersConfig) {
      for (var i = 0; i < layersConfig.length; i++) {
        const config = layersConfig[i]
        this.wmsLayerList.addConfig(config)
      }
    }
    this.load()
  }
@@ -41,28 +43,24 @@
  }
  add (config) {
    console.log(config)
    this.wmsLayerList.addConfig(config)
    const layers = this.wmsLayerList.getLayers()
    const filter = this.wmsLayerList.getFilters()
    const layers = this.wmsLayerList.getLayers() || ''
    const filter = this.wmsLayerList.getFilters() || ''
    const params = {}
    if (filter) {
      params.cql_filter = filter
    }
    if (layers) {
      params.layers = layers
    }
    params.cql_filter = filter
    params.layers = layers
    console.log(this.wmsLayerList)
    this.wmsLayer.setParams(params)
  }
  remove (config) {
    console.log(config)
    this.wmsLayerList.remove(config.typeName, config.filter)
    const layers = this.wmsLayerList.getLayers()
    const filter = this.wmsLayerList.getFilters()
    const layers = this.wmsLayerList.getLayers() || ''
    const filter = this.wmsLayerList.getFilters() || ''
    const params = { layers: layers }
    if (filter) {
      params.cql_filter = filter
    }
    params.cql_filter = filter
    this.wmsLayer.setParams(params)
  }
@@ -80,17 +78,19 @@
    if (filter.length > 0) {
      params.cql_filter = filter
    }
    this.wmsLayer = this.L.tileLayer.wms(PIPELINE_WMS, params).addTo(this.map)
    this.wmsLayer = this.L.tileLayer.wms(WMS_URL, params).addTo(this.map)
  }
  clickListener () {
    window.map.on('click', (e) => {
      console.log(e)
      // console.log(e)
      window.layerFactory.clearHighlight()
      this.featureGroup.clearLayers()
      var point = this.map.latLngToContainerPoint(e.latlng, this.map.getZoom())
      var size = this.map.getSize()
      // const bbox = this.L.latLngBounds(this.L.latLng(e.latlng.lng, e.latlng.lat)).toBBoxString()
      const layers = this.wmsLayerList.getLayers()
      const filter = this.wmsLayerList.getFilters()
      if (layers.length > 0) {
        const params = Object.assign({
          LAYERS: layers,
@@ -101,16 +101,19 @@
          Y: Math.round(point.y),
          BBOX: this.map.getBounds().toBBoxString()
        }, this.params)
        AjaxUtils.get4JsonDataByUrl(PIPELINE_WMS, params, (res) => {
        if (filter.length > 0) {
          params.cql_filter = filter
        }
        AjaxUtils.get4JsonDataByUrl(WMS_URL, params, (res) => {
          const features = res.data.features
          /**
           * {
           *     title: 'New Tab',
           *     name: newTabName,
           *     content: 'New Tab content'
           * }
           * @type {*[]}
           */
                     * {
                     *     title: 'New Tab',
                     *     name: newTabName,
                     *     content: 'New Tab content'
                     * }
                     * @type {*[]}
                     */
          const popupDatas = []
          if (features) {
            for (var i = 0; i < features.length; i++) {