收藏
回答

为什么在地图首次加载时bindregionchange事件无法触发

框架类型 问题类型 API/组件名称 终端类型 微信版本 基础库版本
小程序 需求 map 客户端 6.7.3 2.4.1

- 需求的场景描述(希望解决的问题)

描述:

1.在初次进入地图页面时,无论是onload,onshow,onready周期内,若立即改变地图的视野范围设置,此时不能触发regionchange事件,故无法判断何时地图视野改变完成。此时若在视野改变时调用MapContext.getRegion()方法获取视野范围,容易得到负值,或者不正确的范围值。

2.通过mapupdated的回调或增加一定的延迟,可在地图渲染完成后,调用MapContext.getRegion(),得到正确的视野范围。

问题:

  1. 为何首次加载地图,改变视野无法触发regionchange事件,这导致回调无法处理所有的视野改变事件,让代码不统一。

  2. 而mapupdated的监听的地图渲染完成事件过多,很难加以区分。


- 希望提供的能力

  1. 希望只要改变视野范围,就能触发regionchang事件。

  2. 若不能提供上述能力,希望能提供地图初始化完成时的回调方法。

回答关注问题邀请回答
收藏

3 个回答

  • 社区技术运营专员-小柿子
    社区技术运营专员-小柿子
    2018-11-28

    测试了下,是可以的在首次加载的是,有拖动改变视野的时候,有触发事件:

    2018-11-28
    有用
    回复 6
    • 非城
      非城
      2018-11-28

      经真机测试,首次渲染地图,在页面生命周期(onshow,onload,onready)内直接改变视野,非手动操作

      index.js



      index.wxml



      无法正常触发regionchange事件,特别是onload或onshow时,几乎没有触发regionchange事件,添加延迟机制后可触发(应该时地图首次渲染完成后才能触发)。

      2018-11-28
      回复
    • 社区技术运营专员-小柿子
      社区技术运营专员-小柿子
      2018-11-28回复非城

      ,按照你的说法,我这边测试是可以测试是可以的,提供下你的测试代码片段:https://developers.weixin.qq.com/miniprogram/dev/devtools/minicode.html

      2018-11-28
      回复
    • 非城
      非城
      2018-11-28回复社区技术运营专员-小柿子

      代码片段https://developers.weixin.qq.com/s/ln9RygmD7c4Y

      说明:

      1.真机调试,我的测试机型为三星s6 edge,基础版本库2.4.1 [195]

      2.代码内,可分别将onload,onshow,onready,mapupdated阶段时的注解打开,查看是否有触发regionchange事件。



      3.通过先redrictTo pageB,再redirctTo Index页面,更容易发现问题。我这里的情况是,以上所述所有的生命周期和回调都没有触发regionchange。

      2018-11-28
      回复
    • 非城
      非城
      2018-11-28回复社区技术运营专员-小柿子

      通过添加一定的延迟机制(onload中需>1000ms),可顺利触发regionchange。


      然而具体延迟应该也取决于不同的手机性能。

      另外在mapupdated的回调内改变设置region,并不能触发regionchange,所以对于触发regionchange的时机,还请官方能够解释一下。


      2018-11-28
      回复
    • 非城
      非城
      2018-11-29回复社区技术运营专员-小柿子

      帅哥,为什么不了了之了呢?至少能给我一个结论吧  =(

      之前提出的一个关于地图的问题,还能麻烦帮忙跟一下吗?麻烦了。

      2018-11-29
      回复
    查看更多(1)
  • 郭玉峰 15811200580
    郭玉峰 15811200580
    2019-08-15

    不同的手机表现不一样  我现在知道的  华为mate20,三星Glasy S7 edge这两个手机 首次不触发

    苹果 和 很多android手机都会触发

    2019-08-15
    有用
    回复
  • 顾涛
    顾涛
    2019-07-31

    我是在开发工具上首次可以触发,但是在真机上首次无法触发


    2019-07-31
    有用
    回复
登录 后发表内容