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