首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Vue2-google- map Api如何将地图重新居中

Vue2-google- map Api如何将地图重新居中
EN

Stack Overflow用户
提问于 2019-07-01 23:53:44
回答 2查看 3.3K关注 0票数 0

我正在使用vue2-google-maps api,我想有一个按钮,可以改变地图的中心位置。我需要包含哪些代码才能使地图重新居中。

我试过不同的功能,如map_center和mapCenter,但我就是找不到合适的,即使在网上搜索了很多次。

代码语言:javascript
复制
<div>
  <button @click="setCenter">Re-center</button>
  <br/>
</div>
<gmap-map
  :center="{ lat: 41.693206, lng: -86.228631 }"
  :zoom="12"
  style="width:100%;  height: 65vh;"
  :options="{
    zoomControl: true,
    mapTypeControl: false,
    scaleControl: false,
    streetViewControl: false,
    rotateControl: false,
    fullscreenControl: false,
    disableDefaultUi: false
  }"
>
</gmap-map>

<script>
export default {
  name: 'Home',
  methods: {
    setCenter () {
      this.map_center = {lat: '41.9028', lng: '12.4964'}
    }
  }
}
</script>

在main.js中:

代码语言:javascript
复制
import * as VueGoogleMaps from 'vue2-google-maps'

Vue.use(VueGoogleMaps, {
  load: {
    key: 'AIzaSyBNGgSXjtrJCMkZaqoxo2KGDe-DdJUVMa0',
    libraries: 'places'
  }
})

我预计当点击按钮时,地图将从IN的南本德移动到意大利的罗马。但是,单击该按钮时不会发生任何反应。

EN

回答 2

Stack Overflow用户

发布于 2019-10-01 10:12:09

您必须创建一个名为map_centerdata变量,以便它是响应式的:

代码语言:javascript
复制
export default {
    name: 'Home',
    data() {
        return {
            map_center: { lat: 41.693206, lng: -86.228631 }, 
        };
     },
     methods: {

然后将<gmap-map>组件的中心设置为使用map_center变量:

代码语言:javascript
复制
<gmap-map
    :center="map_center"
    :zoom="12"

我还没有测试这个解决方案。因此,如果这不起作用,那么与它非常接近的东西将会起作用。

票数 1
EN

Stack Overflow用户

发布于 2019-11-10 02:28:14

latlng值以字符串值的形式提供:

代码语言:javascript
复制
{lat: '41.9028', lng: '12.4964'}
       ^^^^^^^^       ^^^^^^^^   
        expects number

这是不正确的,因为Map组件要求center属性为LatLngLatLngLiteral类型。

以下是一个更新的示例,演示了如何在按钮单击时将地图居中:

代码语言:javascript
复制
<template>
  <div>
    <div>
      <button @click="setCenter">Re-center</button>
      <br />
    </div>
    <GmapMap :center="center" :zoom="zoom" style="width:100%;  height: 65vh;"></GmapMap>
  </div>
</template>
<script>
export default {
  name: "Home",
  data() {
    return {
      zoom: 8,
      center: { lat: 45.518, lng: -122.672 }
    };
  },
  methods: {
    setCenter() {
      this.center = { lat: 41.9028, lng: 12.4964 };
    }
  }
};
</script>
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56838714

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档