收藏
回答

MapContext.moveToLocation()无法回到定位点,​求大神

框架类型 问题类型 API/组件名称 终端类型 微信版本 基础库版本
小程序 Bug MapContext.moveToLocation() 客户端 6.7.4 2.4.1

将MapContext.moveToLocation()写在 onReady中,页面初始化完成之后,在开发工具中可以移动到当前定位点,在手机上不能移动,代码如下:

<map id='Mymap'

style="width: {{imageWidth}}px;height:{{imageHeight}}px"

markers="{{markers}}"

scale="18"

show-compass="true"

show-location="true"

bindtap='mapTap'></map>


onReady: function () {

this.mapCtx = wx.createMapContext("Mymap");

this.mapCtx.moveToLocation();

},


        如果我写一个按钮返回当前位置,点击之后可以实现,是不是因为在onReady的时候实际上跳过去,但是之后wx又执行了一个什么东西,视野又移动了别的位置,求大神。。。。。。。。。。。。。。。。




最后一次编辑于  2018-11-29
回答关注问题邀请回答
收藏

5 个回答

  • 缪伟光(新塍)
    缪伟光(新塍)
    2020-11-12

    这个问题应该已经解决了,如果初始化的问题,建议用wx.getLocation(Object object),获取经纬度,然后用setdate的方式把wxml里边的经纬度改变。这个时候才算完成初始化。然后在调用moveToLocation,2.8版本以上可以设置经纬度。所以可以初始化的时候给个默认值,如果找不到就去默认值,然后把 我的位置坐标临时记录一下,每次移动就直接把坐标给他省的每次调用后台获取,还浪费时间和效率


    2020-11-12
    有用 1
    回复 3
    • 卡卡
      卡卡
      2021-07-02
      21年了,还是遇到这个bug,在ready里moveToLocation,走success回调,但地图没动,你说的这个初始化问题是什么意思,所以第一次初始化不能用moveToLocation吗,那什么时候能用
      2021-07-02
      回复
    • 缪伟光(新塍)
      缪伟光(新塍)
      2021-07-08回复卡卡
      我是在onload里边初始化的,onready没有测试;没发现这个问题,先用getloaction,第一次如果经纬度定了没必要用movetolocation,自己setdate这个经纬度就行
      2021-07-08
      回复
    • 海角
      海角
      07-19回复卡卡
      H5里面onReady获取不到,uniapp可以获取到,改成点击的时候获取就行了或者是换个声明周期获取
      07-19
      回复
  • 闫灿灿
    闫灿灿
    2023-09-27

    23年下半年打卡该问题

    2023-09-27
    有用
    回复
  • Rainstorm
    Rainstorm
    2020-08-28

    新版本需要对定位功能授权,需要在app.json中添加PermissionObject 结构

    说明小程序获取权限时展示的接口用途(非原创)

    "permission": {
        "scope.userLocation": {
          "desc""你的位置信息将用于小程序位置接口的效果展示"
        }
      }
    
    
    2020-08-28
    有用
    回复 1
    • Rainstorm
      Rainstorm
      2020-08-28
      2020-08-28
      回复
  • 🎈 IF only
    🎈 IF only
    2020-04-01

    我也遇到同样的问题,在onLoad中moveToLocation方法概率性失败,我发现可能是因为在onLoad或onReady时,地图组件并未完成定位到当前位置的操作,所以moveToLocation就会失败,我的解决方法是把moveToLocation放在bindupdated事件中,待地图渲染更新完成之后再进行移动到当前位置的操作

    2020-04-01
    有用
    回复
  • 灵芝
    灵芝
    2018-11-29

    麻烦提供代码片段https://developers.weixin.qq.com/miniprogram/dev/devtools/minicode.html

    2018-11-29
    有用
    回复 10
    • 2018-11-29

      https://developers.weixin.qq.com/s/ubUjchmu7v4A

      在开发工具上运行可以,在手机上运行就不行了,刚才我再手机上运行了一下,第一次可以移动刚到当前位置,后边就不行了,是因为缓存问题还是什么。。。。

      2018-11-29
      回复
    • 灵芝
      灵芝
      2018-11-29回复

      这边测试是正常的哦,出现问题的具体机型是什么?微信版本是6.7.4?

      2018-11-29
      回复
    • 2018-11-30回复灵芝


      这个是版本信息

      2018-11-30
      回复
    • 2018-11-30回复灵芝

      手机是苹果6,我把this.mapCtx.moveToLocation();

      改成了:setTimeout(function(){

                  that.mapCtx.moveToLocation();

                  console.log(that.mapCtx)

                  },1000)

      就可以每次进来之后移动到当前位置了,这个是什么原因。。。。。


      2018-11-30
      2
      回复
    • (*^ワ^*)
      (*^ワ^*)
      2019-08-17回复
      就靠你这个方法成功了。。这个bug官方一直没修
      2019-08-17
      回复
    查看更多(5)
登录 后发表内容