From 8ee4edce98711de3917d9da85e928ad7285bf914 Mon Sep 17 00:00:00 2001
From: 徐旺旺 <11530253@qq.com>
Date: 星期三, 12 五月 2021 15:11:47 +0800
Subject: [PATCH] 图层控制修改
---
src/components/LayerController/service/WmsLayerService.js | 76 +++++++++++++++++++------------------
1 files changed, 39 insertions(+), 37 deletions(-)
diff --git a/src/components/LayerController/service/WmsLayerService.js b/src/components/LayerController/service/WmsLayerService.js
index fe4ba3c..999783e 100644
--- a/src/components/LayerController/service/WmsLayerService.js
+++ b/src/components/LayerController/service/WmsLayerService.js
@@ -1,7 +1,7 @@
import AjaxUtils from '../../../utils/AjaxUtils'
import { PIPELINE_WMS } from '../../../conf/Constants'
import Popup from '@views/popup/Popup'
-import List from '../../../utils/List'
+import WmsLayerList from '../dataset/WmsLayerList'
/**
* todo 寰楄�冭檻涓�涓浘灞傞厤缃簡澶氫釜 wmsLayers鐨勬儏鍐�
@@ -28,57 +28,59 @@
// 瀛樻斁getfeatureinfo鐨勫浘灞傜粍
this.featureGroup = this.L.featureGroup({}).addTo(this.map)
- this.layers = new List()
- this.filters = new List()
+ this.wmsLayerList = new WmsLayerList()
for (var i = 0; i < layersConfig.length; i++) {
const config = layersConfig[i]
- const typeName = config.typeName
- if (typeName) {
- this.layers.add(config.index, typeName)
- if (config.filter) {
- this.filters.addEnd(config.filter)
- }
- }
+ this.wmsLayerList.addConfig(config)
}
+ this.load()
}
init () {
- if (this.layers) {
- this.load(this.layers)
- this.clickListener()
- }
+ this.clickListener()
}
add (config) {
- const typeName = config.typeName
- if (typeName) {
- if (!this.layers.contains(typeName)) {
- this.layers.add(config.index, typeName)
- if (config.filter) {
- this.filters.addEnd(config.filter)
- }
- this.wmsLayer.setParams({ cql_filter: this.filters.join(' and ') })
- }
+ this.wmsLayerList.addConfig(config)
+ const layers = this.wmsLayerList.getLayers()
+ const filter = this.wmsLayerList.getFilters()
+ const params = {}
+ if (filter) {
+ params.cql_filter = filter
}
+ if (layers) {
+ params.layers = layers
+ }
+ this.wmsLayer.setParams(params)
}
remove (config) {
console.log(config)
- const typeName = config.typeName
- this.layers.remove(typeName)
- if (config.filter) {
- this.filters.remove(config.filter)
+ this.wmsLayerList.remove(config.typeName, config.filter)
+ const layers = this.wmsLayerList.getLayers()
+ const filter = this.wmsLayerList.getFilters()
+ const params = { layers: layers }
+ if (filter) {
+ params.cql_filter = filter
}
- this.wmsLayer.setParams({ cql_filter: this.filters.join(' and ') })
+ this.wmsLayer.setParams(params)
}
- load (layers) {
- this.wmsLayer = this.L.tileLayer.wms(PIPELINE_WMS, {
+ load () {
+ const layers = this.wmsLayerList.getLayers()
+ const filter = this.wmsLayerList.getFilters()
+ const params = {
format: 'image/png', // 杩斿洖鐨勬暟鎹牸寮�
transparent: true,
- layers: 'sewer:pipesegment', // this.layers.join(','),
- cql_filter: this.filters.join(' and ')
- }).addTo(this.map)
+ BBOX: this.map.getBounds().toBBoxString()
+ }
+ if (layers) {
+ params.layers = layers
+ }
+ if (filter.length > 0) {
+ params.cql_filter = filter
+ }
+ this.wmsLayer = this.L.tileLayer.wms(PIPELINE_WMS, params).addTo(this.map)
}
clickListener () {
@@ -88,11 +90,11 @@
var point = this.map.latLngToContainerPoint(e.latlng, this.map.getZoom())
var size = this.map.getSize()
// const bbox = this.L.latLngBounds(this.L.latLng(e.latlng.lng, e.latlng.lat)).toBBoxString()
-
- if (this.layers.length() > 0) {
+ const layers = this.wmsLayerList.getLayers()
+ if (layers.length > 0) {
const params = Object.assign({
- LAYERS: this.layers.join(','),
- QUERY_LAYERS: this.layers.join(','),
+ LAYERS: layers,
+ QUERY_LAYERS: layers,
WIDTH: size.x,
HEIGHT: size.y,
X: Math.round(point.x),
--
Gitblit v1.8.0