diff options
| author | Yuval Adam <_@yuv.al> | 2017-10-30 13:07:34 +0200 |
|---|---|---|
| committer | Yuval Adam <_@yuv.al> | 2017-10-30 13:07:34 +0200 |
| commit | e88e0cae09110e3d02b9b44aa726b7219ed168a2 (patch) | |
| tree | 21b7aec3f74ed8c58f596f8d1356887ed9928a9e | |
| parent | e05261a020139f44002ca815517d793f42422aa4 (diff) | |
Optimize layer hide/show
| -rw-r--r-- | Geshem.vue | 24 |
1 files changed, 16 insertions, 8 deletions
@@ -95,8 +95,8 @@ var from = zoomIn ? '280' : '140'; var to = zoomIn ? '140' : '280'; if (to != vm.res) { - vm.removeRadarLayer(from, vm.slider); - vm.addRadarLayer(to, vm.slider); + vm.hideRadarLayer(from, vm.slider); + vm.showRadarLayer(to, vm.slider); vm.res = to; } }); @@ -106,13 +106,15 @@ var vm = this; var i = 0; while (i < vm.imgs['140'].length) { - vm.addRadarSource('140', i, vm.imgs['140'][i++]) + vm.addRadarSource('140', i, vm.imgs['140'][i]) + vm.addRadarLayer('140', i++) } var i = 0; while (i < vm.imgs['280'].length) { - vm.addRadarSource('280', i, vm.imgs['280'][i++]) + vm.addRadarSource('280', i, vm.imgs['280'][i]) + vm.addRadarLayer('280', i++) } - vm.addRadarLayer('280', 9) + vm.showRadarLayer('280', 9) }, addRadarSource: function(res, i, url) { this.map.addSource(`radar-${res}-${i}`, { @@ -127,18 +129,24 @@ source: `radar-${res}-${i}`, type: 'raster', paint: { - 'raster-opacity': 0.85 + 'raster-opacity': 0 } }) }, + showRadarLayer: function(res, i) { + this.map.setPaintProperty(`radar-${res}-${i}`, 'raster-opacity', 0.85); + }, + hideRadarLayer: function(res, i) { + this.map.setPaintProperty(`radar-${res}-${i}`, 'raster-opacity', 0); + }, removeRadarLayer: function(res, i) { this.map.removeLayer(`radar-${res}-${i}`) } }, watch: { slider: function (to, from) { - this.removeRadarLayer(this.res, from); - this.addRadarLayer(this.res, to); + this.hideRadarLayer(this.res, from); + this.showRadarLayer(this.res, to); } } } |
