From 6f256a8be5c330cbf4d852f7dc4a1a6614f0419d Mon Sep 17 00:00:00 2001 From: chenzeping <ChenZeping02609@163.com> Date: 星期三, 14 四月 2021 10:11:44 +0800 Subject: [PATCH] Merge branch 'develop' of http://xearth.cn:6600/r/wuyushui/SewerAndRainNetwork into develop --- src/components/LayerController/service/LayerFactory.js | 62 +++++++++++++++++++++++++++++- 1 files changed, 59 insertions(+), 3 deletions(-) diff --git a/src/components/LayerController/service/LayerFactory.js b/src/components/LayerController/service/LayerFactory.js index b617ae5..593b5fd 100644 --- a/src/components/LayerController/service/LayerFactory.js +++ b/src/components/LayerController/service/LayerFactory.js @@ -12,7 +12,7 @@ init (layerConfig) { // 1. 閬嶅巻layer config if (layerConfig) { - for (var i = 0, l = layerConfig.length; i < l; i++) { + for (var i = 0; i < layerConfig.length; i++) { var config = layerConfig[i] var layers = config.layers var childLayer = config.childLayer @@ -21,6 +21,43 @@ var checked = config.checked checked && this.load(config) + checked && this.toggleZoomByConfnig(config) + } + } + } + + /** + * 鎺у埗鏄剧ず鐨勭骇鍒� + * @param layerConfig + */ + initEvent (layerConfig) { + this.map.on('zoomend ', (e) => this.toggleZoomByLayer(layerConfig)) + } + + 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.toggleZoomByConfnig(config) + } + } else { + this.toggleZoomByConfnig(layerConfig) + } + } + + toggleZoomByConfnig (config) { + const zoom = this.map.getZoom() + var checked = config.checked + if (checked && config.minZoom) { + if (zoom > config.minZoom) { + this.show(config) + } else { + this.hide(config) } } } @@ -75,6 +112,25 @@ } + flyByLayerId (layerId, bound) { + for (var k in this.layers) { + var layerGroup = this.layers[k] + var layers = layerGroup.getLayers() + if (layers) { + for (var m = 0; m < layers.length; m++) { + var layer = layers[m] + console.log(layer.toGeoJSON()) + /* var feature = layer.feature + if (feature.id === layerId) { + this.map.flyToBounds(bound) + return layer + } */ + } + } + } + return null + } + /** * todo 杩欓噷鏃犳晥锛岃矊浼兼槸鍥犱负geojson鍔犺浇鍒板湴鍥句篃鏄釜layergroup * @@ -91,9 +147,9 @@ this.setZIndex(layer.getLayers()) } else { if (layer.feature && (layer.feature.geometry.type === 'LineString' || layer.feature.geometry.type === 'MultiLineString')) { - layer.bringToBack() + layer.bringToBack && layer.bringToBack() } else { - layer.bringToFront() + layer.bringToFront && layer.bringToFront() } } } -- Gitblit v1.8.0