From 150a37f948214be4bd183b30f3f2865a6f1c519f Mon Sep 17 00:00:00 2001 From: 徐旺旺 <11530253@qq.com> Date: 星期四, 29 四月 2021 14:16:18 +0800 Subject: [PATCH] 替换wms服务初步 --- src/components/LayerController/service/LayerFactory.js | 52 ++++++++++++++++++++++++++++++++++++++++++++++------ 1 files changed, 46 insertions(+), 6 deletions(-) diff --git a/src/components/LayerController/service/LayerFactory.js b/src/components/LayerController/service/LayerFactory.js index 2ab18e6..57bb1cf 100644 --- a/src/components/LayerController/service/LayerFactory.js +++ b/src/components/LayerController/service/LayerFactory.js @@ -1,7 +1,14 @@ import WfsLayerService from './WfsLayerService' -import WmsLayerService from './WmsLayerService' import { clone } from '../../../utils/utils' import { logicMapper } from '../../../conf/Constants' +import WmsLayerService from './WmsLayerService' + +/** + * init 鍙垵濮嬪寲涓�娆� + * start 姣忔璋冪敤鍥惧眰鏄剧ずshow()鏃讹紝閮戒細璋冪敤 + * destory 姣忔璋冪敤鍥惧眰闅愯棌hide()鏃讹紝閮戒細璋冪敤 + * + */ class LayerFactory { constructor (options) { this.L = options.L @@ -9,9 +16,17 @@ this.layers = {} this.layersLogic = {} this.minZoomLayers = {} + this.wmsLayers = [] } init (layerConfig) { + this.initConfig(layerConfig) + // wms鏈嶅姟鍙渶瑕佸垵濮嬪寲涓�娆� + this.wmsLayerService = new WmsLayerService(this.wmsLayers) + this.wmsLayerService.init() + } + + initConfig (layerConfig) { // 1. 閬嶅巻layer config if (layerConfig) { for (var i = 0; i < layerConfig.length; i++) { @@ -19,6 +34,11 @@ var layers = config.layers var childLayer = config.childLayer var checked = config.checked + /* if (config.groupName) { + const wmsGroupLayerService = new WmsGroupLayerService(config) + wmsGroupLayerService.init() + continue + } */ layers && this.init(config.layers) childLayer && this.init(config.childLayer) @@ -45,7 +65,7 @@ loadLogic (config) { var code = config.code var wfs = config.wfs - var wms = config.wms + var wmsLayers = config.wmsLayers const file = logicMapper[code] var logic = this.layersLogic[code] @@ -55,14 +75,24 @@ logic = new BusiLayer() } else if (wfs) { logic = new WfsLayerService(config) - } else if (wms) { - logic = new WmsLayerService(config) + } else if (wmsLayers) { + var layer = {} + layer[config.code] = config + this.wmsLayers.push(layer) } } this.layersLogic[code] = logic return logic } + /** + * 1. 鍏堣皟鐢ㄥ鐞嗛�昏緫鐨� initLayer 锛屽鏋滄病鏈� 灏卞垱寤轰竴涓� featureGroup + * 2. 濡傛灉瀛樺湪浜嬩欢閫昏緫鐨勮瘽锛岀粦瀹歵ooltip,click浜嬩欢 + * 3. 灏唋ayer娣诲姞鍒癿ap + * 4. 杩斿洖layer + * @param config + * @returns layer + */ addLayer (config) { var code = config.code var logic = this.loadLogic(config) @@ -81,17 +111,26 @@ return layer } + /** + * 濡傛灉 瀛樺湪宸茬粡鍔犺浇浜嗙殑瀵硅薄锛屽氨鐩存帴鍔犲埌map + * 濡傛灉 涓嶅瓨鍦ㄥ垯 璋冪敤 addLayer 鍙� 閫昏緫绫荤殑init 杩涜鍒濆鍖栨搷浣� + * 濡傛灉 瀛樺湪start鍑芥暟锛屽垯璋冪敤 + * @param config + */ show (config) { + var index = config.index var layer = this.layers[config.code] var logic = this.loadLogic(config) if (layer) { if (!this.map.hasLayer(layer)) { + index && layer.setZIndex(index) layer.addTo(this.map) } } else { logic && logic.init(this.addLayer(config), this.L) } - logic && logic.create && logic.create() + logic && logic.start && logic.start() + this.wmsLayerService && this.wmsLayerService.add(config) } hide (config) { @@ -100,6 +139,7 @@ layer && this.map.removeLayer(layer) const logic = this.loadLogic(config) logic && logic.destory && logic.destory() + this.wmsLayerService && this.wmsLayerService.remove(config) } /** @@ -107,7 +147,7 @@ * @param layerConfig */ initEvent (layerConfig) { - this.map.on('zoomend ', () => this.toggleByZoom()) + // this.map.on('zoomend ', () => this.toggleByZoom()) } toggleByZoom () { -- Gitblit v1.8.0