Mercurial > gemma
view client/src/components/map/Zoom.vue @ 1279:60e15c2d26a2
licensing info updated
author | Thomas Junk <thomas.junk@intevation.de> |
---|---|
date | Thu, 22 Nov 2018 09:50:13 +0100 |
parents | bc55ffaeb639 |
children | 2738a6ae9ad8 |
line wrap: on
line source
<template> <div class="d-flex buttoncontainer shadow-xs mb-3 position-absolute" :style="showSplitscreen ? 'margin-bottom: 51vh !important' : ''" > <button class="zoomButton border-0 bg-white rounded-left ui-element border-right" @click="zoomIn" > <i class="fa fa-plus"></i> </button> <button class="zoomButton border-0 bg-white rounded-right ui-element" @click="zoomOut"> <i class="fa fa-minus"></i> </button> </div> </template> <style lang="sass" scoped> .buttoncontainer bottom: 0 left: 50% margin-left: -$icon-width .zoomButton min-height: $icon-width min-width: $icon-width z-index: 2 outline: none color: #666 </style> <script> /* This is Free Software under GNU Affero General Public License v >= 3.0 * without warranty, see README.md and license for details. * * SPDX-License-Identifier: AGPL-3.0-or-later * License-Filename: LICENSES/AGPL-3.0.txt * * Copyright (C) 2018 by via donau * – Österreichische Wasserstraßen-Gesellschaft mbH * Software engineering by Intevation GmbH * * Author(s): * Thomas Junk <thomas.junk@intevation.de> */ import { mapState } from "vuex"; export default { name: "zoom", computed: { ...mapState("map", ["openLayersMap"]), ...mapState("application", ["showSplitscreen"]), zoomLevel: { get() { return this.openLayersMap.getView().getZoom(); }, set(value) { this.openLayersMap.getView().animate({ zoom: value, duration: 300 }); } } }, methods: { zoomIn() { this.zoomLevel = this.zoomLevel + 1; }, zoomOut() { this.zoomLevel = this.zoomLevel - 1; } } }; </script>