From ea446a1a9cdaf333a062ea471a3bde02b6eda655 Mon Sep 17 00:00:00 2001 From: 徐旺旺 <11530253@qq.com> Date: 星期二, 13 四月 2021 14:08:39 +0800 Subject: [PATCH] 根据不同级别显示隐藏图层 --- src/conf/layers/LayerPipeLines.js | 2 src/conf/layers/LayerFsss.js | 14 +++++- src/conf/layers/LayerHbss.js | 2 src/conf/layers/LayerArea.js | 9 +--- src/views/MapTemplate.vue | 2 src/components/LayerController/service/LayerFactory.js | 34 ++++++++++++++++- src/conf/layers/LayerBasin.js | 12 ++---- src/conf/layers/LayerSewers.js | 5 ++ 8 files changed, 58 insertions(+), 22 deletions(-) diff --git a/src/components/LayerController/service/LayerFactory.js b/src/components/LayerController/service/LayerFactory.js index b617ae5..65f89e6 100644 --- a/src/components/LayerController/service/LayerFactory.js +++ b/src/components/LayerController/service/LayerFactory.js @@ -25,6 +25,36 @@ } } + /** + * 鎺у埗鏄剧ず鐨勭骇鍒� + * @param layerConfig + */ + initEvent (layerConfig) { + this.map.on('zoomend ', (e) => this.toggleByZoom(layerConfig)) + } + + toggleByZoom (layerConfig) { + const zoom = this.map.getZoom() + if (layerConfig) { + for (var i = 0, l = layerConfig.length; i < l; i++) { + var config = layerConfig[i] + var layers = config.layers + var checked = config.checked + var childLayer = config.childLayer + layers && this.toggleByZoom(layers) + childLayer && this.toggleByZoom(childLayer) + if (checked && config.minZoom) { + if (zoom > config.minZoom) { + this.show(config) + } else { + console.log(config.name) + this.hide(config) + } + } + } + } + } + load (config) { var code = config.code var wfs = config.wfs @@ -91,9 +121,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() } } } diff --git a/src/conf/layers/LayerArea.js b/src/conf/layers/LayerArea.js index c57b612..6ba6c53 100644 --- a/src/conf/layers/LayerArea.js +++ b/src/conf/layers/LayerArea.js @@ -13,24 +13,21 @@ name: '鍏徃', sname: '鍏徃', // 琛ㄥ悕 checked: true, // 榛樿閫変腑鐘舵�� - url: WFS_URL + '?TYPENAME=鍏徃', - minZoom: 10 + url: WFS_URL + '?TYPENAME=鍏徃' }, { code: 'sewersAreaMt', name: '鐮佸ご', sname: '鐮佸ご', checked: true, // 榛樿閫変腑鐘舵�� - wfs: WFS_URL + '?TYPENAME=鐮佸ご', - minZoom: 10 + wfs: WFS_URL + '?TYPENAME=鐮佸ご' }, { code: 'sewersAreaZz', name: '瑁呯疆鍖�', sname: '瑁呯疆鍖�', checked: true, // 榛樿閫変腑鐘舵�� - wfs: WFS_URL + '?TYPENAME=瑁呯疆鍖�', - minZoom: 10 + wfs: WFS_URL + '?TYPENAME=瑁呯疆鍖�' } ] } diff --git a/src/conf/layers/LayerBasin.js b/src/conf/layers/LayerBasin.js index af3dae6..6e8a0cc 100644 --- a/src/conf/layers/LayerBasin.js +++ b/src/conf/layers/LayerBasin.js @@ -14,32 +14,28 @@ name: '闀挎睙娴佸煙', sname: '闀挎睙娴佸煙', // 琛ㄥ悕 checked: true, // 榛樿閫変腑鐘舵�� - url: WFS_URL + '?TYPENAME=鍏徃', - minZoom: 10 + url: WFS_URL + '?TYPENAME=鍏徃' }, { code: 'basinHh', name: '榛勬渤娴佸煙', sname: '榛勬渤娴佸煙', checked: true, // 榛樿閫変腑鐘舵�� - wfs: WFS_URL + '?TYPENAME=鐮佸ご', - minZoom: 10 + wfs: WFS_URL + '?TYPENAME=鐮佸ご' }, { code: 'basinBh', name: '娓ゆ捣娴佸煙', sname: '娓ゆ捣娴佸煙', checked: true, // 榛樿閫変腑鐘舵�� - wfs: WFS_URL + '?TYPENAME=瑁呯疆鍖�', - minZoom: 10 + wfs: WFS_URL + '?TYPENAME=瑁呯疆鍖�' }, { code: 'basinQt', name: '鍏朵粬', sname: '鍏朵粬', checked: true, // 榛樿閫変腑鐘舵�� - wfs: WFS_URL + '?TYPENAME=瑁呯疆鍖�', - minZoom: 10 + wfs: WFS_URL + '?TYPENAME=瑁呯疆鍖�' } ] } diff --git a/src/conf/layers/LayerFsss.js b/src/conf/layers/LayerFsss.js index 3fa1498..03212d8 100644 --- a/src/conf/layers/LayerFsss.js +++ b/src/conf/layers/LayerFsss.js @@ -2,18 +2,26 @@ * 鍖哄煙 */ const APP_GIS_HOST_2 = 'http://xearth.cn:8088' -const WFS_URL = APP_GIS_HOST_2 + '/server/ogcserver/PipeLine/wfs' +const WFS_URL = APP_GIS_HOST_2 + '/server/ogcserver/PipeLine2/wfs' export const LayerFsss = { code: 'sewersFsss', name: '闄勫睘璁炬柦', checked: false, // 榛樿閫変腑鐘舵�� layers: [ { + code: 'pipeSection', + name: '绠℃', + sname: '绠℃', + checked: false, + minZoom: 15, + wfs: WFS_URL + '?TYPENAME=绠℃' + }, + { code: 'fourlink', name: '鍥涢��', sname: '鍥涢��', checked: true, - minZoom: 10, + minZoom: 15, wfs: WFS_URL + '?TYPENAME=鍥涢��', icon: 'sewers/鍥涢��.png' }, @@ -22,7 +30,7 @@ name: '涓夐��', sname: '涓夐��', checked: false, - minZoom: 10, + minZoom: 15, wfs: WFS_URL + '?TYPENAME=涓夐��', icon: 'sewers/涓夐��.png' }, diff --git a/src/conf/layers/LayerHbss.js b/src/conf/layers/LayerHbss.js index bacacc0..769f155 100644 --- a/src/conf/layers/LayerHbss.js +++ b/src/conf/layers/LayerHbss.js @@ -2,7 +2,7 @@ * 鍖哄煙 */ const APP_GIS_HOST_2 = 'http://xearth.cn:8088' -const WFS_URL = APP_GIS_HOST_2 + '/server/ogcserver/PipeLine/wfs' +const WFS_URL = APP_GIS_HOST_2 + '/server/ogcserver/PipeLine2/wfs' export const LayerHbss = { code: 'sewersHbss', name: '鐜繚璁炬柦', diff --git a/src/conf/layers/LayerPipeLines.js b/src/conf/layers/LayerPipeLines.js index 5ea2a19..524a533 100644 --- a/src/conf/layers/LayerPipeLines.js +++ b/src/conf/layers/LayerPipeLines.js @@ -5,7 +5,7 @@ import { LayerFsss } from './LayerFsss' const APP_GIS_HOST_2 = 'http://xearth.cn:8088' -const WFS_URL = APP_GIS_HOST_2 + '/server/ogcserver/PipeLine/wfs' +const WFS_URL = APP_GIS_HOST_2 + '/server/ogcserver/PipeLine2/wfs' export const LayerPipeLines = { code: 'sewersPipeLines', diff --git a/src/conf/layers/LayerSewers.js b/src/conf/layers/LayerSewers.js index 39e71a5..c382c2d 100644 --- a/src/conf/layers/LayerSewers.js +++ b/src/conf/layers/LayerSewers.js @@ -1,3 +1,8 @@ +/** + * todo 鍑嗗鍒犻櫎姝ゆ枃浠讹紒锛侊紒锛� + * @type {string} + */ + const APP_GIS_HOST_2 = 'http://xearth.cn:8088' export const LayerSewersPoint = [ { diff --git a/src/views/MapTemplate.vue b/src/views/MapTemplate.vue index 2c80ca3..1bbf9e8 100644 --- a/src/views/MapTemplate.vue +++ b/src/views/MapTemplate.vue @@ -91,7 +91,7 @@ map: this.map }) layerFactory.init(this.$store.state.map.serviceLayers.LayerSewersLine) - layerFactory.init(this.$store.state.map.serviceLayers.layerSewersPoint) + layerFactory.initEvent(this.$store.state.map.serviceLayers.LayerSewersLine) window.layerFactory = layerFactory this.basemapHelper = Sgis.initBasemapsHelper(this.map) // 鍒濆鍖栧熀纭�搴曞浘鍔╂墜 -- Gitblit v1.8.0