From 7f6291e80073c0c29f9d24bfdd3ac2602a059e70 Mon Sep 17 00:00:00 2001 From: chenyabin <Chenab123!> Date: 星期二, 18 五月 2021 10:10:40 +0800 Subject: [PATCH] Merge remote-tracking branch 'origin/develop' into develop --- src/components/LayerController/service/WmsLayerService.js | 157 ++++------------------------------------------------ 1 files changed, 13 insertions(+), 144 deletions(-) diff --git a/src/components/LayerController/service/WmsLayerService.js b/src/components/LayerController/service/WmsLayerService.js index fbc74bd..df7c090 100644 --- a/src/components/LayerController/service/WmsLayerService.js +++ b/src/components/LayerController/service/WmsLayerService.js @@ -1,6 +1,4 @@ -import AjaxUtils from '../../../utils/AjaxUtils' import { WMS_URL } from '../../../conf/Constants' -import Popup from '@views/popup/Popup' import WmsLayerList from '../dataset/WmsLayerList' /** @@ -21,6 +19,7 @@ INFO_FORMAT: 'application/json', TRANSPARENT: true, FEATURE_COUNT: 50, + maxZoom: 21, SRS: 'EPSG:4326', EXCEPTIONS: 'application/vnd.ogc.se_inimage' } @@ -29,40 +28,34 @@ this.featureGroup = this.L.featureGroup({}).addTo(this.map) this.wmsLayerList = new WmsLayerList() - for (var i = 0; i < layersConfig.length; i++) { - const config = layersConfig[i] - this.wmsLayerList.addConfig(config) + if (layersConfig) { + for (var i = 0; i < layersConfig.length; i++) { + const config = layersConfig[i] + this.wmsLayerList.addConfig(config) + } } this.load() } init () { - this.clickListener() } add (config) { this.wmsLayerList.addConfig(config) - const layers = this.wmsLayerList.getLayers() - const filter = this.wmsLayerList.getFilters() + const layers = this.wmsLayerList.getLayers() || '' + const filter = this.wmsLayerList.getFilters() || '' const params = {} - if (filter) { - params.cql_filter = filter - } - if (layers) { - params.layers = layers - } + params.cql_filter = filter + params.layers = layers this.wmsLayer.setParams(params) } remove (config) { - console.log(config) this.wmsLayerList.remove(config.typeName, config.filter) - const layers = this.wmsLayerList.getLayers() - const filter = this.wmsLayerList.getFilters() + const layers = this.wmsLayerList.getLayers() || '' + const filter = this.wmsLayerList.getFilters() || '' const params = { layers: layers } - if (filter) { - params.cql_filter = filter - } + params.cql_filter = filter this.wmsLayer.setParams(params) } @@ -81,130 +74,6 @@ params.cql_filter = filter } this.wmsLayer = this.L.tileLayer.wms(WMS_URL, params).addTo(this.map) - } - - clickListener () { - window.map.on('click', (e) => { - // console.log(e) - window.layerFactory.clearHighlight() - 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() - const layers = this.wmsLayerList.getLayers() - const filter = this.wmsLayerList.getFilters() - if (layers.length > 0) { - const params = 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.params) - if (filter.length > 0) { - params.cql_filter = filter - } - AjaxUtils.get4JsonDataByUrl(WMS_URL, params, (res) => { - const features = res.data.features - /** - * { - * title: 'New Tab', - * name: newTabName, - * content: 'New Tab content' - * } - * @type {*[]} - */ - const popupDatas = [] - if (features) { - for (var i = 0; i < features.length; i++) { - const feature = features[i] - const properties = feature.properties - this.highlight(feature) - // const coordinates = feature.geometry.coordinates - popupDatas.push({ - title: properties.wellname || properties.devicename || properties.name || properties.pipename, - name: feature.id, - content: properties - }) - } - } - if (popupDatas.length > 0) { - var myIcon = this.L.divIcon({ className: 'my-div-icon' }) - this.L.marker(e.latlng, { - icon: myIcon - }).addTo(this.featureGroup)/* - .bindPopup((layer) => { - this.popupComp.setDatas(popupDatas) - this.popupComp.setShow() - return this.popupComp.$el - }, { - className: 's-map-popup', - minWidth: 300, - closeButton: false, - autoClose: false - }) - .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() - } - }) - } - }) - } - - reverseMultiLine (feature) { - const coordinates = feature.geometry.coordinates - var latlng = [] - for (var j = 0; j < coordinates.length; j++) { - const coordinate = coordinates[j] - var xy = [] - for (var k = 0; k < coordinate.length; k++) { - const coor = coordinate[k] - xy.push(coor.reverse()) - } - latlng.push(xy) - } - 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.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