收藏
回答

加急!地图安卓进去后忽然来回晃动,晃的眼花后才停止,苹果正常,微信老版也正常

问题模块
API和组件

以前开发的地图,一直都可以正常使用的,但是最近发现,新的版本的微信安卓不能正常工作了,进去后就飞速的晃来晃去,换了几个安卓,从小米到华为,都不行,但是老版的微信(试了个6.5.7正常)是可以的,另外,苹果各个版本都没问题。原来都正常的,是更新什么了吗??都在使用,着急啊。

<map id="myMap" longitude="{{longitude}}" latitude="{{latitude}}" scale="16" markers="{{markers}}"  circles="{{circles}}"  bindmarkertap="markertap" bindregionchange="regionchange" show-location style="width: 100%; height: {{vHeight}}px;"></map>

这个是代码。我发现问题应该是 bindregionchange的问题,就是系统进去就开始促发了这个方法,而且促发多次,而原来是拖动才会执行的呀。苹果都是正常的没问题的呀。是不是这个问题呢

最后一次编辑于  2017-07-21  (未经腾讯允许,不得转载)
邀请回答
复制链接收藏关注问题回答

6 个回答

  • 没人要的肥仔
    没人要的肥仔
    2017-07-21

    你可以在regionchange的方法里加入延时试试?或者说加入一个flag,当地图全部加载完成后修改flag,regionchange方法对这个flag做一个判断,如果flag不是否个具体值就不触发操作。个人愚见

    2017-07-21
    赞同
    回复
  • 小磊
    小磊
    2017-07-21

    这个不知道是不是已经加载完啊。我的功能是拖动地图,当拖动范围大到一定程度(中心经纬度判断)则获取数据,regionchange这个方法就是微信官方说的地图拖动的方法,甚至都有拖动开始和拖动结束的标记,以前都没问题,但是现在是进入地图就会自动促发这个方法,而且促发多次,这个时候地图都加载好了,但是还在变,连中心点的坐标都一直在变,自动的哦,造成我的那个频繁的取数据,地图频繁的晃动

    2017-07-21
    赞同
    回复
  • 🐷
    🐷
    2017-07-21

    建议使用 regionchange方法 方法内不要用

    this.mapCtx.moveToLocation()

    如果这个方法内有使用,就会出现移动位置后,中心点坐标mark胡乱漂移

    2017-07-21
    赞同
    回复
  • 小磊
    小磊
    2017-07-24

    这个我想用拖动方法怎么办呢。我的这个 regionchange方法里面,有个 regionchange有个this.mapCtx.getCenterLocation()主要是用来手动拖动地图后获取中心点的位置,和上个保存的中心点位置比较,若经度差或者纬度差大于某个值的时候,重新获取数据。并没有使用moveToLocation()这个方法。当我点击进入地图后,发现就开始执行 regionchange这个方法。最奇怪的是,以前都是写好正常使用的呀。我现在改了下模拟,代码如下:点击进入地图,执行一次就弹一次框,则弹出十次有。这个怎么回事呢,怎么才能实现拖动的方法呢???

    var that = this;


          this.mapCtx.getCenterLocation({

            success: function(res){

                var last_lon=that.data.last_longitude

                var last_lat = that.data.last_latitude

                var lon=res.longitude;

                var lat=res.latitude;


                var do_lon=last_lon-lon;

                var do_lat=last_lat-lat;


                if(do_lon>0.02||do_lon<-0.02||do_lat>0.02||do_lat<-0.02){

                    that.setData({

                      last_longitude: res.longitude,

                      last_latitude: res.latitude

                    })


                    var user_id=that.data.user_id;

                    var do_code=wx.getStorageSync('doCode'); 

                    var data= {userId:user_id,doCode:do_code,doOp:'nearQd',latitude:lat,longitude:lon,log_flag:0};

                    //app.doRequest('app/map.jsp',data,'获取数据中…',that.doCbGet);

                    var do_i=that.data.do_i+1;

                    that.setData({do_i:do_i});

                    wx.showModal({

                      title: '操作提示',

                      content: 'aa'+do_i,

                      showCancel: false

                    })

                }

            }

          });




    2017-07-24
    赞同
    回复
  • 小磊
    小磊
    2017-07-24

    问题的关键是原来是好的,现在忽然不行了,而且只是安卓不行,肯定有问题的呀,再一个。手动拖动事件肯定不能进入地图没拖动自动执行肯定扯淡啊,因为根本没办法区别哪写是手动的哪写是自动的

    2017-07-24
    赞同
    回复
  • Sam
    Sam
    2018-05-10

    解决了吗


    2018-05-10
    赞同
    回复