From c4044fb60e53e5c83da4ee645d5160f914e422a3 Mon Sep 17 00:00:00 2001 From: YANGDL <114714267@qq.com> Date: 星期五, 05 三月 2021 16:17:41 +0800 Subject: [PATCH] Merge remote-tracking branch 'origin/master' --- src/components/panel/LegendPanel.vue | 9 +--- src/conf/LayerSewers.js | 47 +++++++++++++++++++++++ src/components/helpers/ServiceLayerHelper.js | 43 ++++++++++++++++----- src/store/modules/map.js | 19 ++++++++- 4 files changed, 98 insertions(+), 20 deletions(-) diff --git a/src/components/helpers/ServiceLayerHelper.js b/src/components/helpers/ServiceLayerHelper.js index b344031..dcde9a6 100644 --- a/src/components/helpers/ServiceLayerHelper.js +++ b/src/components/helpers/ServiceLayerHelper.js @@ -15,7 +15,7 @@ this.tileLayersWMTSArray = [] // 鍒濆鐨刉MTS闆� this.tileLayersTileArray = [] // 鍒濆鐨凾ile闆� this.tileLayersWMSArray = [] // 鍒濆鐨刉MS闆� - this.geojsonArray = {} // 鍒濆鐨刧eojson闆� + this.layerArray = {} // key涓洪厤缃殑code锛屽姞杞界殑鍥惧眰瀵硅薄锛� this.layerConfig = {} this.regex = /\{(.+?)\}/g // 鍖归厤{} this.popupComp = null @@ -25,14 +25,40 @@ return this.loadedLayersMap.get(code) } + 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,11 +108,11 @@ 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 }) } } @@ -175,6 +201,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 +211,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) } /** diff --git a/src/components/panel/LegendPanel.vue b/src/components/panel/LegendPanel.vue index af1ac12..bffdd81 100644 --- a/src/components/panel/LegendPanel.vue +++ b/src/components/panel/LegendPanel.vue @@ -241,12 +241,14 @@ @keyframes bounce-in { 0% { transform: scale(0); + opacity: 0.3; } //50% { // transform: scale(1.1); //} 100% { transform: scale(1); + opacity: 1; } } @@ -262,7 +264,7 @@ .legend-content { position: absolute; - right: 8rem; + right: 1rem; bottom: 3rem; width: 30rem; height: 30rem; @@ -299,7 +301,6 @@ span { font-size: 12px; color: white; - //width: 80%; } } } @@ -311,10 +312,6 @@ margin-block-start: 0.5rem; margin-block-end: 0; } - - //.under-line:last-child { - // display: none; - //} } } </style> diff --git a/src/conf/LayerSewers.js b/src/conf/LayerSewers.js index c0bfc8f..d925383 100644 --- a/src/conf/LayerSewers.js +++ b/src/conf/LayerSewers.js @@ -16,7 +16,7 @@ sname: '绠$綉', // 琛ㄥ悕 checked: true, // 榛樿閫変腑鐘舵�� filter: {}, - zoom: 10, // 鍦ㄦ寚瀹氱骇鍒樉绀� + minZoom: 10, // 鍦ㄦ寚瀹氱骇鍒樉绀� childLayer: 'fsss,hbss' // 鍏宠仈PointLayers }, { @@ -25,6 +25,7 @@ sname: '鍚补姹℃按', checked: true, // 榛樿閫変腑鐘舵�� filter: {}, + minZoom: 10, childLayer: 'fsss,hbss' // 鍏宠仈PointLayers }, { @@ -33,6 +34,7 @@ sname: '鍚洂姹℃按', checked: true, // 榛樿閫変腑鐘舵�� filter: {}, + minZoom: 10, childLayer: 'fsss,hbss' // 鍏宠仈PointLayers }, { @@ -41,6 +43,7 @@ sname: '鍚⒈姹℃按', checked: true, // 榛樿閫変腑鐘舵�� filter: {}, + minZoom: 10, childLayer: 'fsss,hbss' // 鍏宠仈PointLayers }, { @@ -49,6 +52,7 @@ sname: '鎺掑彛', checked: true, // 榛樿閫変腑鐘舵�� filter: {}, + minZoom: 10, childLayer: 'pk' // 鍏宠仈PointLayers }, { @@ -57,6 +61,7 @@ sname: '浜嬫晠姘�', checked: true, // 榛樿閫変腑鐘舵�� filter: {}, + minZoom: 10, childLayer: 'fsss,hbss' // 鍏宠仈PointLayers }, { @@ -65,6 +70,7 @@ sname: '寰幆姘�', checked: true, // 榛樿閫変腑鐘舵�� filter: {}, + minZoom: 10, childLayer: 'fsss,hbss' // 鍏宠仈PointLayers }, { @@ -73,6 +79,7 @@ sname: '鍑�鍖栨按', checked: true, // 榛樿閫変腑鐘舵�� filter: {}, + minZoom: 10, childLayer: 'fsss,hbss' // 鍏宠仈PointLayers }, { @@ -81,6 +88,7 @@ sname: '鐢熸椿姹℃按', checked: true, // 榛樿閫変腑鐘舵�� filter: {}, + minZoom: 10, childLayer: 'fsss,hbss' // 鍏宠仈PointLayers }, { @@ -89,6 +97,7 @@ sname: '鍖哄煙淇℃伅', checked: true, // 榛樿閫変腑鐘舵�� filter: {}, + minZoom: 10, childLayer: 'qyxx' // 鍏宠仈PointLayers } ] @@ -107,6 +116,7 @@ name: '鍥涢��', sname: '鍥涢��', checked: true, + minZoom: 10, icon: 'sewers/鍥涢��.png' }, { @@ -114,18 +124,21 @@ name: '涓夐��', sname: '涓夐��', checked: false, + minZoom: 10, icon: 'sewers/涓夐��.png' }, { code: 'piperack', name: '绠℃灦(澧�)', sname: 'PipeRack', + minZoom: 10, checked: false }, { code: 'pipegallery', name: '绠″粖(甯�)', sname: 'PipeGallery', + minZoom: 10, checked: false }, { @@ -137,12 +150,14 @@ { code: 'pipeline', name: '绠$綉', + minZoom: 10, sname: 'pipeline', checked: false }, { code: 'valve', name: '闃�闂�', + minZoom: 10, sname: 'valve', checked: false, icon: 'sewers/闃�闂�.png' @@ -151,6 +166,7 @@ code: 'elbow', name: '寮ご', sname: 'Elbow', + minZoom: 10, checked: false, icon: 'sewers/寮ご.png' } @@ -166,6 +182,7 @@ { code: 'manhole', name: '绐ㄤ簳', + minZoom: 10, sname: '绐ㄤ簳', checked: false, icon: 'sewers/绐ㄤ簳.png' @@ -174,6 +191,7 @@ code: 'firedike', name: '闃茬伀鍫�', sname: '闃茬伀鍫�', + minZoom: 10, checked: false }, { @@ -181,24 +199,28 @@ name: '闆ㄧ瀛�', sname: '闆ㄧ瀛�', checked: false, + minZoom: 10, icon: 'sewers/闆ㄧ瀛�.png' }, { code: 'overflowweir', name: '婧㈡祦鍫�', sname: '婧㈡祦鍫�', + minZoom: 10, checked: false }, { code: 'chokevalve', name: '鎴祦闂�', sname: '鎴祦闂�', + minZoom: 10, checked: false }, { code: 'collectingbasin', name: '闆嗘按姹�(缃�)', sname: '闆嗘按姹�', + minZoom: 10, checked: false, icon: 'sewers/闆嗘按姹�.png' }, @@ -206,6 +228,7 @@ code: 'oilseparator', name: '闅旀补姹�', sname: '闅旀补姹�', + minZoom: 10, checked: false, icon: 'sewers/闅旀补姹�.png' } @@ -221,6 +244,7 @@ { code: 'dischargeport', name: '鎺掓斁鍙�', + minZoom: 10, sname: '鎺掓斁鍙�', checked: false } @@ -236,6 +260,7 @@ { code: 'thirdpartypipe', name: '绗笁鏂圭閬�', + minZoom: 10, sname: '绗笁鏂圭閬�', checked: false }, @@ -243,6 +268,7 @@ code: 'firefightingunit', name: '娑堥槻鍗曚綅', sname: '娑堥槻鍗曚綅', + minZoom: 10, checked: false, icon: 'sewers/娑堥槻鍗曚綅.png' }, @@ -250,6 +276,7 @@ code: 'emergencyesources', name: '搴旀�ョ墿璧�', sname: '搴旀�ョ墿璧�', + minZoom: 10, checked: false }, { @@ -257,6 +284,7 @@ name: '绀句細涓撲笟搴旀�ユ晳鎻撮槦浼�', sname: '涓撲笟搴旀�ユ晳鎻�', checked: false, + minZoom: 10, icon: 'sewers/绀句細涓撲笟搴旀�ユ晳鎻�.png' }, { @@ -264,6 +292,7 @@ name: '缁存姠淇槦浼�', sname: '缁存姠淇槦浼�', checked: false, + minZoom: 10, icon: 'sewers/绀句細涓撲笟搴旀�ユ晳鎻�.png' }, { @@ -271,6 +300,7 @@ name: '鍖婚櫌', sname: '鍖婚櫌', checked: false, + minZoom: 10, icon: 'sewers/鍖婚櫌.png' }, { @@ -278,6 +308,7 @@ name: '鑷劧淇濇姢鍖�', sname: '鑷劧淇濇姢鍖�', checked: false, + minZoom: 10, icon: 'sewers/鑷劧淇濇姢鍖�.png' }, { @@ -285,6 +316,7 @@ name: '姘翠綋', sname: '姘翠綋', checked: false, + minZoom: 10, icon: 'sewers/姘翠綋.png' }, { @@ -292,6 +324,7 @@ name: '鏁忔劅鐩爣', sname: '鏁忔劅鐩爣', checked: false, + minZoom: 10, icon: 'sewers/鏁忔劅鐩爣.png' }, { @@ -299,18 +332,21 @@ name: '鐜鐩戞祴鍗曚綅', sname: '鐜鐩戞祴鍗曚綅', checked: false, + minZoom: 10, icon: 'sewers/鐜鐩戞祴鍗曚綅.png' }, { code: 'pointcontaminants', name: '鐩戞祴鐐规薄鏌撶墿鎸囨爣淇℃伅', sname: '姹℃煋鐗╂寚鏍�', + minZoom: 10, checked: false }, { code: 'dischargeportaround', name: '鎺掓斁鍙e懆杈圭幆澧冩晱鎰熶俊鎭�', sname: '鎺掓斁鍙e懆杈圭幆澧�', + minZoom: 10, checked: false, iconN: 'sewers/鎺掓斁鍙e懆杈规晱鎰熶俊鎭�.png' }, @@ -318,6 +354,7 @@ code: 'pump', name: '娉�', sname: '娉�', + minZoom: 10, checked: false, icon: 'sewers/娉�.png' }, @@ -326,12 +363,14 @@ name: '娑蹭綅璁�', sname: '娑蹭綅璁�', checked: false, + minZoom: 10, icon: 'sewers/娑蹭綅璁�.png' }, { code: 'flowmeter', name: '娴侀噺璁�', sname: '娴侀噺璁�', + minZoom: 10, checked: false, icon: 'sewers/娴侀噺璁�.png' }, @@ -339,30 +378,35 @@ code: 'video', name: '瑙嗛鐩戞帶閰嶇疆', sname: '瑙嗛鐩戞帶', + minZoom: 10, checked: false }, { code: 'onlinemonitoring', name: '鍦ㄧ嚎鐩戞祴璁惧閰嶇疆', sname: '鍦ㄧ嚎鐩戞祴', + minZoom: 10, checked: false }, { code: 'combustiblegas', name: '鍙噧姘斾綋鎶ヨ璁惧閰嶇疆', sname: '鍙噧姘斾綋鎶ヨ', + minZoom: 10, checked: false }, { code: 'hydrogensulfide', name: 'H2S娴撳害鎶ヨ璁惧閰嶇疆', sname: 'H2S娴撳害鎶ヨ', + minZoom: 10, checked: false }, { code: 'controlpoint', name: '绠$嚎鐐�', sname: '绠$嚎鐐�', + minZoom: 10, checked: false, icon: 'sewers/绠$嚎鐐�.png' }, @@ -370,6 +414,7 @@ code: 'pipesegment', name: '绠℃', sname: '绠℃', + minZoom: 10, checked: false } ] diff --git a/src/store/modules/map.js b/src/store/modules/map.js index 341fb4b..83023b9 100644 --- a/src/store/modules/map.js +++ b/src/store/modules/map.js @@ -14,7 +14,11 @@ selectedServiceLayer: '', // 浣跨敤杩囨护鍣ㄦ椂锛岃鎵撳紑鐨刉MS鏈嶅姟鐨凜ODE serviceLayerFilters: {}, // 鏈嶅姟鍥惧眰鎺у埗杩囨护閰嶇疆 checkedLayers: {}, // 閫変腑鍥惧眰瀵硅薄 - // 鍥惧眰鏁版嵁 + // 鍥惧眰鏁版嵁,鍥惧眰瀵硅薄 + layers: { + sewers: [] + }, + // 鍘熷鍚庡彴JSON鏁版嵁 datas: { sewers: [] }, @@ -30,8 +34,17 @@ state.map = map }, // 璁剧疆姹¢洦姘村浘灞傛暟鎹� - setSewersDatas (state, sewersDatas) { - state.datas.sewers = sewersDatas + addSewersLayers (state, sewersLayers) { + state.layers.sewers.push(sewersLayers) + }, + clearSewersLayers (state, SewersLayers) { + state.layers.sewers = [] + }, + addSewersDatas (state, sewersDatas) { + state.datas.sewers.push(sewersDatas) + }, + clearSewersDatas (state, sewersDatas) { + state.datas.sewers = [] }, setBasemapHelper (state, layerHelper) { state.basemapHelper = layerHelper -- Gitblit v1.8.0