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