From 4d265afb3419bd5cedc6f31ab78d570f6917b520 Mon Sep 17 00:00:00 2001
From: seatonwan9 <seatonwan9@163.com>
Date: 星期五, 21 五月 2021 14:30:44 +0800
Subject: [PATCH] Merge branch 'develop' of http://xearth.cn:6600/r/wuyushui/SewerAndRainNetwork into develop

---
 src/components/LayerController/service/WmsLayerService.js |  135 ++++++++++++---------------------------------
 1 files changed, 36 insertions(+), 99 deletions(-)

diff --git a/src/components/LayerController/service/WmsLayerService.js b/src/components/LayerController/service/WmsLayerService.js
index 1434664..20f2af7 100644
--- a/src/components/LayerController/service/WmsLayerService.js
+++ b/src/components/LayerController/service/WmsLayerService.js
@@ -1,8 +1,5 @@
-import AjaxUtils from '../../../utils/AjaxUtils'
 import { WMS_URL } from '../../../conf/Constants'
-import Popup from '@views/popup/Popup'
 import WmsLayerList from '../dataset/WmsLayerList'
-import { highlight } from '../../helpers/LocateHelper'
 
 /**
  * todo 寰楄�冭檻涓�涓浘灞傞厤缃簡澶氫釜 wmsLayers鐨勬儏鍐�
@@ -22,6 +19,7 @@
       INFO_FORMAT: 'application/json',
       TRANSPARENT: true,
       FEATURE_COUNT: 50,
+      maxZoom: 21,
       SRS: 'EPSG:4326',
       EXCEPTIONS: 'application/vnd.ogc.se_inimage'
     }
@@ -40,26 +38,49 @@
   }
 
   init () {
-    this.clickListener()
+  }
+
+  addAll (configs) {
+    for (let i = 0; i < configs.length; i++) {
+      const config = configs[i]
+      const layers = config.layers
+      if (layers) {
+        this.addAll(layers)
+      }
+      this.wmsLayerList.addConfig(config)
+    }
+    this.reload()
   }
 
   add (config) {
     this.wmsLayerList.addConfig(config)
+    this.reload()
+  }
+
+  removeAll (configs) {
+    for (let i = 0; i < configs.length; i++) {
+      const config = configs[i]
+      const layers = config.layers
+      if (layers) {
+        this.removeAll(layers)
+      }
+      this.wmsLayerList.remove(config.typeName, config.filter)
+    }
+    this.reload()
+  }
+
+  remove (config) {
+    this.wmsLayerList.remove(config.typeName, config.filter)
+    this.reload()
+  }
+
+  reload () {
     const layers = this.wmsLayerList.getLayers() || ''
     const filter = this.wmsLayerList.getFilters() || ''
     const params = {}
     params.cql_filter = filter
     params.layers = layers
-    this.wmsLayer.setParams(params)
-  }
-
-  remove (config) {
-    this.wmsLayerList.remove(config.typeName, config.filter)
-    const layers = this.wmsLayerList.getLayers() || ''
-    const filter = this.wmsLayerList.getFilters() || ''
-    const params = { layers: layers }
-    params.cql_filter = filter
-    this.wmsLayer.setParams(params)
+    this.wmsLayer.setParams(params, false)
   }
 
   load () {
@@ -68,6 +89,7 @@
     const params = {
       format: 'image/png', // 杩斿洖鐨勬暟鎹牸寮�
       transparent: true,
+      maxZoom: 21,
       BBOX: this.map.getBounds().toBBoxString()
     }
     if (layers) {
@@ -77,91 +99,6 @@
       params.cql_filter = filter
     }
     this.wmsLayer = this.L.tileLayer.wms(WMS_URL, params).addTo(this.map)
-  }
-
-  clickListener () {
-    window.map.on('click', (e) => {
-      // console.log(e)
-      window.mapManager.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,
-          QUERY_LAYERS: layers,
-          WIDTH: size.x,
-          HEIGHT: size.y,
-          X: Math.round(point.x),
-          Y: Math.round(point.y),
-          BBOX: this.map.getBounds().toBBoxString()
-        }, this.params)
-        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 {*[]}
-           */
-          const popupDatas = []
-          if (features) {
-            for (var i = 0; i < features.length; i++) {
-              const feature = features[i]
-              const properties = feature.properties
-              highlight(feature)
-              // const coordinates = feature.geometry.coordinates
-              popupDatas.push({
-                title: properties.wellname || properties.devicename || properties.name || properties.pipename,
-                name: feature.id,
-                content: properties
-              })
-            }
-          }
-          if (popupDatas.length > 0) {
-            var myIcon = this.L.divIcon({ className: 'my-div-icon' })
-            this.L.marker(e.latlng, {
-              icon: myIcon
-            }).addTo(this.featureGroup)/*
-              .bindPopup((layer) => {
-                this.popupComp.setDatas(popupDatas)
-                this.popupComp.setShow()
-                return this.popupComp.$el
-              }, {
-                className: 's-map-popup',
-                minWidth: 300,
-                closeButton: false,
-                autoClose: false
-              })
-              .openPopup() */
-
-            if (window.layerFactory.clickSwitch) {
-              window.$layer.open({
-                content: {
-                  content: Popup, // 缁勪欢
-                  data: { // 浼犻�掔殑鍙傛暟
-                    datas: popupDatas
-                  }
-                },
-                title: '', // 鏍囬
-                left: e.originalEvent.clientX,
-                top: e.originalEvent.clientY
-              })
-            }
-            // this.popupComp.setDatas(popupDatas)
-            // this.popupComp.setShow()
-          }
-        })
-      }
-    })
   }
 }
 

--
Gitblit v1.8.0