微信小程序map组件添加controls控件的位置问题?

map组件上面无法添加覆盖物,只能通过添加controls控件的方式来添加,
问题是controls控件的position只能指定下图的位置属性;
left,top都是Number类型,那如何适配屏幕呢?

想通过 wx.getSystemInfo 接口获取屏幕大小信息,再计算出left和top的值,但是发现在通过this.setData更新时,这个控件都消失了,如何解决?

clipboard.png

//摩拜单车是如何实现的?
clipboard.png

阅读 14.9k
4 个回答

计算时候有问题的,wx.getSystemInfo 获取的是屏幕大小(不是实际页面大小),我们需要减掉微信顶部的标题栏和系统的状态栏的尺寸以及其他元素尺寸,如果以为是页面大小,那么实际控件就有可能跑到屏幕外出不可见而已;

本身思路并没有问题!

新手上路,请多包涵

楼主您好,这个问题您解决了吗?我也遇到了同样的问题。可否分享一下

在this.setData里面重新设置一下controls这个属性里面的相关属性

_this.setData({
          
          // 设置控件的高度
          controls: [{
            id: 1,
            iconPath: '/pages/images/map/myLocation.png',
            position: {
              top: res.windowHeight  - 30 - 20,
              width: 30,
              height: 30
            },
            clickable: true
          }],
})

map地图上可以 加cover-view 和cover-image,然后用定位也可以的

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题