| | |
| | | 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的情况 |
| | |
| | | // 存放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 () { |
| | |
| | | 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), |