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