Mercurial > gemma
changeset 3064:c5d4cf89d323
client: map refresh button: refreshes layers of all maps if there is more than one map
author | Markus Kottlaender <markus@intevation.de> |
---|---|
date | Tue, 16 Apr 2019 13:26:32 +0200 |
parents | 333aff79197d |
children | f6eae0b6c221 |
files | client/src/components/Zoom.vue |
diffstat | 1 files changed, 18 insertions(+), 14 deletions(-) [+] |
line wrap: on
line diff
--- a/client/src/components/Zoom.vue Tue Apr 16 13:18:30 2019 +0200 +++ b/client/src/components/Zoom.vue Tue Apr 16 13:26:32 2019 +0200 @@ -55,20 +55,22 @@ * Markus Kottländer <markus@intevation.de> * Thomas Junk <thomas.junk@intevation.de> */ -import { mapState, mapGetters } from "vuex"; +import { mapState } from "vuex"; import { Vector as VectorLayer } from "ol/layer"; export default { name: "zoom", computed: { - ...mapGetters("map", ["openLayersMap"]), + ...mapState("map", ["openLayersMaps"]), ...mapState("application", ["showSplitscreen"]), zoomLevel: { get() { - return this.openLayersMap.getView().getZoom(); + return this.openLayersMaps[0].getView().getZoom(); }, set(value) { - this.openLayersMap.getView().animate({ zoom: value, duration: 300 }); + this.openLayersMaps[0] + .getView() + .animate({ zoom: value, duration: 300 }); } } }, @@ -80,17 +82,19 @@ this.zoomLevel = this.zoomLevel - 1; }, refreshMap() { - let layers = this.openLayersMap.getLayers().getArray(); - for (let i = 0; i < layers.length; i++) { - let layer = layers[i]; - if ( - layer instanceof VectorLayer && - layer.get("source").loader_.name != "VOID" - ) { - layer.getSource().clear(true); - layer.getSource().refresh({ force: true }); + this.openLayersMaps.forEach(map => { + let layers = map.getLayers().getArray(); + for (let i = 0; i < layers.length; i++) { + let layer = layers[i]; + if ( + layer instanceof VectorLayer && + layer.get("source").loader_.name != "VOID" + ) { + layer.getSource().clear(true); + layer.getSource().refresh({ force: true }); + } } - } + }); } } };