From 242c445db8f310749a6d540e07c11cd47413034b Mon Sep 17 00:00:00 2001 From: 徐旺旺 <11530253@qq.com> Date: 星期六, 06 三月 2021 20:22:33 +0800 Subject: [PATCH] 修改图层控制 --- src/components/helpers/ServiceLayerHelper.js | 50 +++++++++++++++++++++++++++++++++++++++----------- 1 files changed, 39 insertions(+), 11 deletions(-) diff --git a/src/components/helpers/ServiceLayerHelper.js b/src/components/helpers/ServiceLayerHelper.js index b344031..3e22efe 100644 --- a/src/components/helpers/ServiceLayerHelper.js +++ b/src/components/helpers/ServiceLayerHelper.js @@ -15,8 +15,7 @@ this.tileLayersWMTSArray = [] // 鍒濆鐨刉MTS闆� this.tileLayersTileArray = [] // 鍒濆鐨凾ile闆� this.tileLayersWMSArray = [] // 鍒濆鐨刉MS闆� - this.geojsonArray = {} // 鍒濆鐨刧eojson闆� - this.layerConfig = {} + this.layerArray = {} // key涓洪厤缃殑code锛屽姞杞界殑鍥惧眰瀵硅薄锛� this.regex = /\{(.+?)\}/g // 鍖归厤{} this.popupComp = null } @@ -25,14 +24,44 @@ return this.loadedLayersMap.get(code) } + getByLayerId (layerId) { + + } + + initDisplayZoom (layerConfig) { + var that = this + that.map.on('zoomend ', function (e) { + const zoom = that.map.getZoom() + for (var i = 0, l = layerConfig.length; i < l; i++) { + var config = layerConfig[i] + var layers = config.layers + for (var j = 0; j < layers.length; j++) { + var layer = layers[j] + if (layer.minZoom) { + if (zoom > layer.minZoom) { + var layerObj = that.layerArray[layer.code] + layerObj && layerObj.addTo(that.map) + } else { + that.removeLayer(layer) + } + } + } + } + }) + } + /** * 鏍规嵁閰嶇疆鏂囦欢鍒濆鍖栦笟鍔″簳鍥� */ initServiceLayers (layerConfig, popupComp) { this.layerConfig = layerConfig this.popupComp = popupComp + store.commit('clearSewersDatas') + store.commit('clearSewersLayers') this.loadLayers(layerConfig.mapConfig.Layers.LayerSewersLine) this.loadLayers(layerConfig.mapConfig.Layers.layerSewersPoint) + this.initDisplayZoom(layerConfig.mapConfig.Layers.LayerSewersLine) + this.initDisplayZoom(layerConfig.mapConfig.Layers.layerSewersPoint) } /** @@ -82,12 +111,14 @@ var code = item.code var newUrl = url.replace(this.regex, matchValue) var that = this - if (!that.geojsonArray[code]) { + if (!that.layerArray[code]) { AjaxUtils.GetDataAsynByUrl(newUrl, {}, function (res) { - store.commit('setSewersDatas', res) + store.commit('addSewersDatas', res) var layer = that.loadGeojson(res, item) - that.geojsonArray[code] = layer + that.layerArray[code] = layer }) + } else { + that.layerArray[code].addTo(that.map) } } @@ -175,6 +206,7 @@ }) } }).addTo(featureGroup) + store.commit('addSewersDatas', geojson) if (Object.prototype.hasOwnProperty.call(res, 'features') && res.features.length > 0 && (res.features[0].geometry.type === 'LineString' || res.features[0].geometry.type === 'MultiLineString')) { geojson.bringToBack() } else { @@ -184,12 +216,8 @@ } removeLayer (item) { - var code = item.code - var layer = this.geojsonArray[code] - if (layer) { - this.map.removeLayer(layer) - delete this.geojsonArray[code] - } + var layer = this.layerArray[item.code] + layer && this.map.removeLayer(layer) } /** -- Gitblit v1.8.0