From e97a404960da3964475aebbef4ff069be2e4ccfc Mon Sep 17 00:00:00 2001
From: ChenZeping02609 <chenzeping02609@163.com>
Date: 星期三, 12 五月 2021 17:54:29 +0800
Subject: [PATCH] 修改问题,污染源

---
 src/components/LayerController/service/WmsLayerService.js |   78 ++++++++++++++++++++-------------------
 1 files changed, 40 insertions(+), 38 deletions(-)

diff --git a/src/components/LayerController/service/WmsLayerService.js b/src/components/LayerController/service/WmsLayerService.js
index fe4ba3c..0094a71 100644
--- a/src/components/LayerController/service/WmsLayerService.js
+++ b/src/components/LayerController/service/WmsLayerService.js
@@ -1,7 +1,7 @@
 import AjaxUtils from '../../../utils/AjaxUtils'
 import { PIPELINE_WMS } from '../../../conf/Constants'
 import Popup from '@views/popup/Popup'
-import List from '../../../utils/List'
+import WmsLayerList from '../dataset/WmsLayerList'
 
 /**
  * todo 寰楄�冭檻涓�涓浘灞傞厤缃簡澶氫釜 wmsLayers鐨勬儏鍐�
@@ -28,71 +28,73 @@
     // 瀛樻斁getfeatureinfo鐨勫浘灞傜粍
     this.featureGroup = this.L.featureGroup({}).addTo(this.map)
 
-    this.layers = new List()
-    this.filters = new List()
+    this.wmsLayerList = new WmsLayerList()
     for (var i = 0; i < layersConfig.length; i++) {
       const config = layersConfig[i]
-      const typeName = config.typeName
-      if (typeName) {
-        this.layers.add(config.index, typeName)
-        if (config.filter) {
-          this.filters.addEnd(config.filter)
-        }
-      }
+      this.wmsLayerList.addConfig(config)
     }
+    this.load()
   }
 
   init () {
-    if (this.layers) {
-      this.load(this.layers)
-      this.clickListener()
-    }
+    this.clickListener()
   }
 
   add (config) {
-    const typeName = config.typeName
-    if (typeName) {
-      if (!this.layers.contains(typeName)) {
-        this.layers.add(config.index, typeName)
-        if (config.filter) {
-          this.filters.addEnd(config.filter)
-        }
-        this.wmsLayer.setParams({ cql_filter: this.filters.join(' and ') })
-      }
+    this.wmsLayerList.addConfig(config)
+    const layers = this.wmsLayerList.getLayers()
+    const filter = this.wmsLayerList.getFilters()
+    const params = {}
+    if (filter) {
+      params.cql_filter = filter
     }
+    if (layers) {
+      params.layers = layers
+    }
+    this.wmsLayer.setParams(params)
   }
 
   remove (config) {
     console.log(config)
-    const typeName = config.typeName
-    this.layers.remove(typeName)
-    if (config.filter) {
-      this.filters.remove(config.filter)
+    this.wmsLayerList.remove(config.typeName, config.filter)
+    const layers = this.wmsLayerList.getLayers()
+    const filter = this.wmsLayerList.getFilters()
+    const params = { layers: layers }
+    if (filter) {
+      params.cql_filter = filter
     }
-    this.wmsLayer.setParams({ cql_filter: this.filters.join(' and ') })
+    this.wmsLayer.setParams(params)
   }
 
-  load (layers) {
-    this.wmsLayer = this.L.tileLayer.wms(PIPELINE_WMS, {
+  load () {
+    const layers = this.wmsLayerList.getLayers()
+    const filter = this.wmsLayerList.getFilters()
+    const params = {
       format: 'image/png', // 杩斿洖鐨勬暟鎹牸寮�
       transparent: true,
-      layers: 'sewer:pipesegment', // this.layers.join(','),
-      cql_filter: this.filters.join(' and ')
-    }).addTo(this.map)
+      BBOX: this.map.getBounds().toBBoxString()
+    }
+    if (layers) {
+      params.layers = layers
+    }
+    if (filter.length > 0) {
+      params.cql_filter = filter
+    }
+    this.wmsLayer = this.L.tileLayer.wms(PIPELINE_WMS, params).addTo(this.map)
   }
 
   clickListener () {
     window.map.on('click', (e) => {
-      console.log(e)
+      // console.log(e)
       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()
-
-      if (this.layers.length() > 0) {
+      const layers = this.wmsLayerList.getLayers()
+      if (layers.length > 0) {
         const params = Object.assign({
-          LAYERS: this.layers.join(','),
-          QUERY_LAYERS: this.layers.join(','),
+          LAYERS: layers,
+          QUERY_LAYERS: layers,
           WIDTH: size.x,
           HEIGHT: size.y,
           X: Math.round(point.x),

--
Gitblit v1.8.0