From 4adfa4774e09f3b388335bb8dee5dea518856e5b Mon Sep 17 00:00:00 2001
From: yangdelong <828900aaa>
Date: 星期日, 30 五月 2021 19:23:27 +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