From ca2a7113f660f523518c4be431534e7eebaa297e Mon Sep 17 00:00:00 2001
From: XingChuan <m17600301067@163.com>
Date: 星期日, 30 五月 2021 12:37:24 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/develop' into develop

---
 src/components/helpers/MapManager.js |   50 +++++++++++++++++++++++++++++++-------------------
 1 files changed, 31 insertions(+), 19 deletions(-)

diff --git a/src/components/helpers/MapManager.js b/src/components/helpers/MapManager.js
index 9795d33..c3ec889 100644
--- a/src/components/helpers/MapManager.js
+++ b/src/components/helpers/MapManager.js
@@ -1,6 +1,6 @@
 import AjaxUtils from '../../utils/AjaxUtils'
 import { WMS_URL } from '../../conf/Constants'
-import { openPopup } from './LocateHelper'
+import { highlight, openPropsPopup } from './LocateHelper'
 
 class MapManager {
   constructor () {
@@ -27,27 +27,39 @@
     this.map.on('click', (e) => {
       // console.log(e)
       this.clearHighlight()
-      this.loadWfsDatas(e.latlng)
+      this.loadWfsDatas(e.latlng).then((res) => {
+        if (res.features.length > 0) {
+          highlight(res.features[0])
+          if (this.clickDialogSwitch) {
+            openPropsPopup(e.latlng, res.features)
+          }
+        }
+      })
     })
   }
 
-  loadWfsDatas (latlng) {
-    const size = this.map.getSize()
-    var point = this.map.latLngToContainerPoint(latlng, this.map.getZoom())
-    const wmsLayerService = window.layerFactory.wmsLayerService
-    const layers = wmsLayerService.wmsLayerList.getLayers()
-    // const filters = wmsLayerService.wmsLayerList.getFilters()
-    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.defaultWmsParams)
-    AjaxUtils.get4JsonDataByUrl(WMS_URL, params, (res) => {
-      openPopup(latlng, res.data.features)
+  loadWfsDatas (latlng, params) {
+    return new Promise((resolve, reject) => {
+      const size = this.map.getSize()
+      var point = this.map.latLngToContainerPoint(latlng, this.map.getZoom())
+      const wmsLayerService = window.layerFactory.wmsLayerService
+      const layers = wmsLayerService.wmsLayerList.getLayers()
+      const filters = wmsLayerService.wmsLayerList.getFilters()
+      const wmsParams = 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.defaultWmsParams, params)
+      if (filters) {
+        wmsParams.CQL_FILTER = filters
+      }
+      AjaxUtils.get4JsonDataByUrl(WMS_URL, wmsParams, (res) => {
+        resolve(res.data)
+      })
     })
   }
 

--
Gitblit v1.8.0