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