From b4fa7ad9c8e0051e9851c3bfbe398d5ff4cbfafe Mon Sep 17 00:00:00 2001 From: 陈泽平 <chenzeping> Date: 星期三, 19 五月 2021 16:05:39 +0800 Subject: [PATCH] Merge branch 'develop' of http://xearth.cn:6600/r/wuyushui/SewerAndRainNetwork into develop --- src/components/helpers/MapManager.js | 51 +++++++++++++++++++++++++++++++++++++++++++++++---- 1 files changed, 47 insertions(+), 4 deletions(-) diff --git a/src/components/helpers/MapManager.js b/src/components/helpers/MapManager.js index 625a78e..791ebe8 100644 --- a/src/components/helpers/MapManager.js +++ b/src/components/helpers/MapManager.js @@ -1,22 +1,65 @@ +import AjaxUtils from '../../utils/AjaxUtils' +import { WMS_URL } from '../../conf/Constants' +import { highlight, openPropsPopup } from './LocateHelper' + class MapManager { constructor () { this.hightlightLayer = window.L.featureGroup({}).addTo(window.map) this.clickDialogSwitch = true // 鍥惧眰鐐瑰嚮寮圭獥寮�鍏� this.L = window.L this.map = window.map + // wms getfeatureinfo 榛樿鍙傛暟 + this.defaultWmsParams = { + VERSION: '1.1.1', + SERVICE: 'WMS', + REQUEST: 'GetFeatureInfo', + // bbox: bbox, + FORMAT: 'image/png', + INFO_FORMAT: 'application/json', + TRANSPARENT: true, + FEATURE_COUNT: 50, + SRS: 'EPSG:4326', + EXCEPTIONS: 'application/vnd.ogc.se_inimage' + } } mapClickListener () { - window.map.on('click', (e) => { + this.map.on('click', (e) => { + // console.log(e) + this.clearHighlight() + this.loadWfsDatas(e.latlng).then((res) => { + if (res.features.length > 0) { + highlight(res.features[0]) + openPropsPopup(e.latlng, res.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) + AjaxUtils.get4JsonDataByUrl(WMS_URL, wmsParams, (res) => { + resolve(res.data) + }) }) } clearHighlight () { this.hightlightLayer.clearLayers() - } - - iconPoint (latlng) { } } -- Gitblit v1.8.0