vue-amap根据地图上的标记自适应调整缩放比例

最近因为项目需要地图显示功能,我在vue项目中使用到了vue-amap插件。因为需要在地图上动态显示marker,但有时候地图初始化缩放比例无法满足同时看到所有marker,就想找找有没有什么方式可以根据所有marker位置自适应调整地图缩放比例。发现官方手册以及网上资源都没有可以完美解决该问题的办法,我一顿瞎操作,结果实现了这个功能。所以在这里记录一下,希望可以帮到有相关需要的友友。

<el-amap 
    :zoom="zoom" 
    :center="center"
    :events="events"
    view-mode="3D"
    map-style="amap://styles/fresh"
    ref="map">
</el-amap>

在地图的初始化设置中,定义:events="events":ref="map"。events负责响应自适应调整缩放比例这一事件,ref可以方便后期实例化地图进行相关操作。

data() {
    return {
      zoom:13,
      center: [117.178838, 39.108142],
      events:{
        complete:()=>{
          let overlaysList = this.$refs.map.$$getInstance().getAllOverlays('marker')
          this.$refs.map.$$getInstance().setFitView(overlaysList)
        },
      }
    };
},

this.$refs.map.$$getInstance()是实例化地图,使其可以调用getAllOverlays()setFitView()这两个函数。getAllOverllays()是为了获取到所写参数的所有信息,本文是为了根据marker调整缩放比例,大家可以根据需求改变为其它参数。setFitView()就是根据输入的参数自适应调整缩放比例。值得强调的是,这些都是在complete事件,即地图及其所有组件加载完成后才会完成以上操作。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值