From 38fea8139670d34cedea336fbd1ba34fc92bcf02 Mon Sep 17 00:00:00 2001 From: chenzeping <ChenZeping02609@163.com> Date: 星期四, 22 四月 2021 21:34:59 +0800 Subject: [PATCH] Merge branch 'develop' of http://xearth.cn:6600/r/wuyushui/SewerAndRainNetwork into develop --- src/components/LayerController/service/LayerFactory.js | 57 +++++++++++++++++++++++++++++++-------------------------- 1 files changed, 31 insertions(+), 26 deletions(-) diff --git a/src/components/LayerController/service/LayerFactory.js b/src/components/LayerController/service/LayerFactory.js index adb3d9f..909038e 100644 --- a/src/components/LayerController/service/LayerFactory.js +++ b/src/components/LayerController/service/LayerFactory.js @@ -8,6 +8,7 @@ this.map = window.map this.layers = {} this.layersLogic = {} + this.minZoomLayers = {} } init (layerConfig) { @@ -21,10 +22,23 @@ layers && this.init(config.layers) childLayer && this.init(config.childLayer) + this.initMinZoom(config) this.loadLogic(config) - this.toggleZoomByConfig(config) checked && this.show(config) } + } + } + + initMinZoom (config) { + const minZoom = parseInt(config.minZoom) + if (minZoom) { + var configs = this.minZoomLayers[minZoom] + if (configs) { + configs[configs.length] = config + } else { + configs = [config] + } + this.minZoomLayers[minZoom] = configs } } @@ -55,7 +69,8 @@ var layer = (logic && logic.initLayer && logic.initLayer((this.L))) || this.L.featureGroup({}) if (logic.bindTooltip) { - layer.bindTooltip(logic.bindTooltip) + // 鍏ㄥ眬tips浣嶇疆 + layer.bindTooltip(logic.bindTooltip, { direction: 'top', offset: [0, -15], sticky: false }) } // 璋冪敤click浜嬩欢 if (logic.clickListener) { @@ -92,33 +107,23 @@ * @param layerConfig */ initEvent (layerConfig) { - this.map.on('zoomend ', (e) => this.toggleZoomByLayer(layerConfig)) + this.map.on('zoomend ', () => this.toggleByZoom()) } - toggleZoomByLayer (layerConfig) { - var config = layerConfig - if (Array.isArray(layerConfig)) { - for (var i = 0, l = layerConfig.length; i < l; i++) { - config = layerConfig[i] - var layers = config.layers - var childLayer = config.childLayer - layers && this.toggleZoomByLayer(layers) - childLayer && this.toggleZoomByLayer(childLayer) - this.toggleZoomByConfig(config) - } - } else { - this.toggleZoomByConfig(layerConfig) - } - } - - toggleZoomByConfig (config) { + toggleByZoom () { const zoom = this.map.getZoom() - var checked = config.checked - if (checked && config.minZoom) { - if (zoom > config.minZoom) { - this.show(config) - } else { - this.hide(config) + for (var k in this.minZoomLayers) { + const configs = this.minZoomLayers[k] + for (var j in configs) { + const config = configs[j] + const checked = config.checked + console.log(zoom) + console.log(k) + if (checked && zoom > k) { + this.show(config) + } else if (checked && zoom < k) { + this.hide(config) + } } } } -- Gitblit v1.8.0