Функция масштабирования для моей карты не остается на уровне 15 при вводе нового местоположения.
У меня есть панель поиска на одной странице, которая затем отображает карту этого местоположения на другой странице. :zoom=15
, кажется, не соблюдается при загрузке страницы. Я могу вручную изменить масштаб моего кода, обновить страницу и увидеть правильный масштаб. Но я бы хотел, чтобы страница загружалась с :zoom=15
.
См. Код ниже:
<template>
<div>
<GmapMap
:center="{lat:10, lng:10}"
:zoom=15
class="my-map"
id="myMap"
ref="myMap"
style="height:500px;width:500px;"
>
<GmapMarker
:key="index"
v-for="(m, index) in locations"
:position="m"
:clickable="true"
:draggable="true"
@click="center=m.position"
/>
</GmapMap>
</div>
</template>
<script>
import { gmapApi } from "vue2-google-maps"
export default {
name: 'FindDefault',
data () {
return {
map: null,
locations: []
}
},
computed: {
google: gmapApi
},
mounted () {
this.$refs.myMap.$mapPromise
.then(map => {
this.map = map
const selection = this.$store.state.geoModule.mapSearchSelection
this.filterCoords(selection)
this.setBounds()
})
.catch(err => {
throw err
})
},
methods: {
filterCoords (selection) {
this.locations.push(selection.geometry.location)
},
setBounds () {
let bounds = new this.google.maps.LatLngBounds()
this.locations.forEach(loc => {
bounds.extend(loc)
})
this.$nextTick().then(() => {
this.$refs.myMap.fitBounds(bounds)
})
this.$refs.myMap.panToBounds(bounds)
}
}
}
</script>