mpvue开发小程序使用微信map组件爬坑记录

一、需求(外卖选择收货地址)

       使用小程序的picker组件选择省市区,然后根据选择的省市区获的经纬度来设置map的中心点,  类似于滴滴的选择方式。

二、实现

    首先引入map组件

<map
      id="map"
      scale="14"
      :latitude='!init&&latitude'
      :longitude= '!init&&longitude'
      @regionchange="handleRegionChange"
      @end="handleRegionChange"
      show-location
      :style="'width: 100%; height:'+height+'px'"
    >

   坑一、@regionchange不会触发, 只会触发@end  @begin,  后者不需要所以没有监听。

   坑二、不难看出经纬度的设置多了个参数限制。这是为了解决另一个坑,当用户移动地图之后,重新获取地图中心并设置经纬度,会闪、会闪、会闪。。。重要的bug说三遍,有时甚至会回到原处。

   解决方案、首先map不设置lat,lng能解决切换位置闪的问题,但是就不能初始化地图的中心。所以多设置了一个init参数。初始值为false,然后是handleRegionChange的处理代码

 handleRegionChange (e) {
      this.init = true
      if (e.type === 'end') {
        this.setCenter()
      }
    }

用户移动之后init设置为true,地图中心交map组件自己控制。则不会闪。。。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值