From 3ec2e48009c84474ead34a82713ccc8c46f05d26 Mon Sep 17 00:00:00 2001
From: ChenZeping <chenzeping>
Date: 星期六, 08 五月 2021 11:23:35 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/develop' into develop

---
 src/components/LayerController/service/WmsLayerService.js |  144 ++++++++++++++++++++++++++++-------------------
 1 files changed, 86 insertions(+), 58 deletions(-)

diff --git a/src/components/LayerController/service/WmsLayerService.js b/src/components/LayerController/service/WmsLayerService.js
index b286194..8c0d5dc 100644
--- a/src/components/LayerController/service/WmsLayerService.js
+++ b/src/components/LayerController/service/WmsLayerService.js
@@ -1,5 +1,6 @@
 import AjaxUtils from '../../../utils/AjaxUtils'
 import { PIPELINE_WMS } from '../../../conf/Constants'
+import Popup from '@views/popup/Popup'
 
 /**
  * todo 寰楄�冭檻涓�涓浘灞傞厤缃簡澶氫釜 wmsLayers鐨勬儏鍐�
@@ -45,14 +46,13 @@
   }
 
   add (config) {
-    const code = config.code
-    for (var k in this.layersConfig) {
-      if (code === k) {
-        return false
+    const wmsLayers = config.wmsLayers
+    if (wmsLayers) {
+      if (this.layers.indexOf(wmsLayers) < 0) {
+        this.layers.push(config.wmsLayers)
+        this.wmsLayer.setParams({ layers: this.layers.join(',') })
       }
     }
-    this.layers.push(config.wmsLayers)
-    this.wmsLayer.setParams({ layers: this.layers.join(',') })
   }
 
   remove (config) {
@@ -81,61 +81,77 @@
       var size = this.map.getSize()
       // const bbox = this.L.latLngBounds(this.L.latLng(e.latlng.lng, e.latlng.lat)).toBBoxString()
 
-      const params = Object.assign({
-        LAYERS: this.layers.join(','),
-        QUERY_LAYERS: this.layers.join(','),
-        WIDTH: size.x,
-        HEIGHT: size.y,
-        X: Math.round(point.x),
-        Y: Math.round(point.y),
-        BBOX: this.map.getBounds().toBBoxString()
-      }, this.params)
-      AjaxUtils.get4JsonDataByUrl(PIPELINE_WMS, 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
-            this.highlight(feature)
-            // const coordinates = feature.geometry.coordinates
-            popupDatas.push({
-              title: properties.wellname || properties.devicename || properties.name,
-              name: feature.id,
-              content: properties
-            })
+      if (this.layers && this.layers.length > 0) {
+        const params = Object.assign({
+          LAYERS: this.layers.join(','),
+          QUERY_LAYERS: this.layers.join(','),
+          WIDTH: size.x,
+          HEIGHT: size.y,
+          X: Math.round(point.x),
+          Y: Math.round(point.y),
+          BBOX: this.map.getBounds().toBBoxString()
+        }, this.params)
+        AjaxUtils.get4JsonDataByUrl(PIPELINE_WMS, 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
+              this.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 (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: '' // 鏍囬
+              })
+            }
+            // this.popupComp.setDatas(popupDatas)
+            // this.popupComp.setShow()
+          }
+        })
+      }
     })
   }
 
-  reverse (feature) {
+  reverseMultiLine (feature) {
     const coordinates = feature.geometry.coordinates
     var latlng = []
     for (var j = 0; j < coordinates.length; j++) {
@@ -150,15 +166,27 @@
     return latlng
   }
 
+  reversePolyLine (feature) {
+    const coordinates = feature.geometry.coordinates
+    var latlng = []
+    for (var j = 0; j < coordinates.length; j++) {
+      const coordinate = coordinates[j]
+      latlng.push(coordinate.reverse())
+    }
+    return latlng
+  }
+
   highlight (feature) {
     const type = feature.geometry.type
     if (type === 'MultiLineString') {
-      this.L.polyline(this.reverse(feature)).addTo(this.featureGroup)
+      this.L.polyline(this.reverseMultiLine(feature), { color: 'red' }).addTo(this.featureGroup)
     } else if (type === 'Point') {
       var myIcon = this.L.divIcon({ className: 'my-div-icon' })
       this.L.marker(feature.geometry.coordinates.reverse(), {
         icon: myIcon
       }).addTo(this.featureGroup)
+    } else if (type === 'LineString') {
+      this.L.polyline(this.reversePolyLine(feature), { color: 'red' }).addTo(this.featureGroup)
     }
   }
 }

--
Gitblit v1.8.0