From 8d9c17cd5166ad31e3357070e95ee73002f34de5 Mon Sep 17 00:00:00 2001 From: 徐旺旺 <11530253@qq.com> Date: 星期二, 11 五月 2021 10:44:10 +0800 Subject: [PATCH] 查询分页 --- src/components/LayerController/service/WmsLayerService.js | 111 +++++++++++++++++++++++++++++++++++++------------------ 1 files changed, 74 insertions(+), 37 deletions(-) diff --git a/src/components/LayerController/service/WmsLayerService.js b/src/components/LayerController/service/WmsLayerService.js index e102f0c..fe4ba3c 100644 --- a/src/components/LayerController/service/WmsLayerService.js +++ b/src/components/LayerController/service/WmsLayerService.js @@ -1,5 +1,7 @@ import AjaxUtils from '../../../utils/AjaxUtils' import { PIPELINE_WMS } from '../../../conf/Constants' +import Popup from '@views/popup/Popup' +import List from '../../../utils/List' /** * todo 寰楄�冭檻涓�涓浘灞傞厤缃簡澶氫釜 wmsLayers鐨勬儏鍐� @@ -26,12 +28,15 @@ // 瀛樻斁getfeatureinfo鐨勫浘灞傜粍 this.featureGroup = this.L.featureGroup({}).addTo(this.map) - this.layers = [] + this.layers = new List() + this.filters = new List() for (var i = 0; i < layersConfig.length; i++) { const config = layersConfig[i] - for (var k in config) { - if (k === 'wmsLayers') { - this.layers.push(config[k]) + const typeName = config.typeName + if (typeName) { + this.layers.add(config.index, typeName) + if (config.filter) { + this.filters.addEnd(config.filter) } } } @@ -45,42 +50,46 @@ } add (config) { - const wmsLayers = config.wmsLayers - if (wmsLayers) { - if (this.layers.indexOf(wmsLayers) < 0) { - this.layers.push(config.wmsLayers) - this.wmsLayer.setParams({ layers: this.layers.join(',') }) + 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 ') }) } } } remove (config) { - const wmsLayers = config.wmsLayers - for (var i = 0; i < this.layers.length; i++) { - const layerName = this.layers[i] - if (wmsLayers === layerName) { - this.layers.splice(i, 1) - } + console.log(config) + const typeName = config.typeName + this.layers.remove(typeName) + if (config.filter) { + this.filters.remove(config.filter) } - this.wmsLayer.setParams({ layers: this.layers.join(',') }) + this.wmsLayer.setParams({ cql_filter: this.filters.join(' and ') }) } load (layers) { this.wmsLayer = this.L.tileLayer.wms(PIPELINE_WMS, { format: 'image/png', // 杩斿洖鐨勬暟鎹牸寮� transparent: true, - layers: layers.join(',') + layers: 'sewer:pipesegment', // this.layers.join(','), + cql_filter: this.filters.join(' and ') }).addTo(this.map) } clickListener () { - if (this.layers && this.layers.length > 0) { - window.map.on('click', (e) => { - this.featureGroup.clearLayers() - 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() + window.map.on('click', (e) => { + console.log(e) + this.featureGroup.clearLayers() + 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 params = Object.assign({ LAYERS: this.layers.join(','), QUERY_LAYERS: this.layers.join(','), @@ -93,13 +102,13 @@ AjaxUtils.get4JsonDataByUrl(PIPELINE_WMS, params, (res) => { const features = res.data.features /** - * { - * title: 'New Tab', - * name: newTabName, - * content: 'New Tab content' - * } - * @type {*[]} - */ + * { + * title: 'New Tab', + * name: newTabName, + * content: 'New Tab content' + * } + * @type {*[]} + */ const popupDatas = [] if (features) { for (var i = 0; i < features.length; i++) { @@ -108,7 +117,7 @@ this.highlight(feature) // const coordinates = feature.geometry.coordinates popupDatas.push({ - title: properties.wellname || properties.devicename || properties.name, + title: properties.wellname || properties.devicename || properties.name || properties.pipename, name: feature.id, content: properties }) @@ -118,7 +127,7 @@ var myIcon = this.L.divIcon({ className: 'my-div-icon' }) this.L.marker(e.latlng, { icon: myIcon - }).addTo(this.featureGroup) + }).addTo(this.featureGroup)/* .bindPopup((layer) => { this.popupComp.setDatas(popupDatas) this.popupComp.setShow() @@ -129,14 +138,30 @@ closeButton: false, autoClose: false }) - .openPopup() + .openPopup() */ + + if (window.layerFactory.clickSwitch) { + window.$layer.open({ + content: { + content: Popup, // 缁勪欢 + data: { // 浼犻�掔殑鍙傛暟 + datas: popupDatas + } + }, + title: '', // 鏍囬 + left: e.originalEvent.clientX, + top: e.originalEvent.clientY + }) + } + // this.popupComp.setDatas(popupDatas) + // this.popupComp.setShow() } }) - }) - } + } + }) } - reverse (feature) { + reverseMultiLine (feature) { const coordinates = feature.geometry.coordinates var latlng = [] for (var j = 0; j < coordinates.length; j++) { @@ -151,15 +176,27 @@ return latlng } + reversePolyLine (feature) { + const coordinates = feature.geometry.coordinates + var latlng = [] + for (var j = 0; j < coordinates.length; j++) { + const coordinate = coordinates[j] + latlng.push(coordinate.reverse()) + } + return latlng + } + highlight (feature) { const type = feature.geometry.type if (type === 'MultiLineString') { - this.L.polyline(this.reverse(feature)).addTo(this.featureGroup) + this.L.polyline(this.reverseMultiLine(feature), { color: 'red' }).addTo(this.featureGroup) } else if (type === 'Point') { var myIcon = this.L.divIcon({ className: 'my-div-icon' }) this.L.marker(feature.geometry.coordinates.reverse(), { icon: myIcon }).addTo(this.featureGroup) + } else if (type === 'LineString') { + this.L.polyline(this.reversePolyLine(feature), { color: 'red' }).addTo(this.featureGroup) } } } -- Gitblit v1.8.0