根据开发文档描述,map 组件是由客户端创建的原生组件,它的层级是高的,也就是说它上面不可以再叠加其它视图,但我在其它小程序上,如通勤助手,摩拜单车上看到了map组件上是可以叠加其它组件的,是否是因为他们是微信合作伙伴而给他们开放了部分隐藏接口,我们要实现类似的功能有什么建议?

网友回复:

Y***:

controls

在地图上显示控件,控件不随着地图移动

controls: [{

     id: 1,      iconPath: '/resources/location.png',      position: {        left: 0,        top: 300 - 50,        width: 50,        height: 50      },      clickable: true    }]

controltap(e) {    

    console.log(e.controlId)

 }

这些是官方文档的例子,用这个就可以实现了吧?楼主再看看,考虑考虑

C***:

1. 可以用cavas在map上层画。

2. 使用map的controls

3. 有的小程序在需要在map上盖东西的时候,把map隐藏掉,放一个假的图片在后边。

马***:

@YJFn 

Map上放controls没问题,但controls目前只能是一个图片,所以想实现复杂一点儿的视图还是很困难的,比如上面放多个响应按钮就没法实现了,但有时候这个视图是需要隐藏的,如果采用动态隐藏且不是叠加在上层,Map动态改变大小会抖动,体验很差。

马***:

@Can

分别说一下你几个建议

1、可以用cavas在map上层画。

    目前canvas与map都是原生的业内好评层,我测试的效果也是不可以叠加的,绘图机制也决定了他们两个如果叠加也很困难。

2. 使用map的controls

    controls这个目前只是放置一个图片而已,很难实现复杂的逻辑,而冬天改变地图大小会导致地图抖动,体验很差。

3、有的小程序在需要在map上盖东西的时候,把map隐藏掉,放一个假的图片在后边。

    放置假图片是会存在时差的,且有时候无法完全对应,这方案瑕疵还比较多。

有一种方案没有试验可能行,利用canvas在后台生成图片,然后利map的controls的动态叠加生成的图片,有一个问题,如果我上面放置多个按钮还是没法解决问题,感觉现在的map组件功能欠缺不少。

Y***:

@马清飞 

嗯,我只是针对摩拜单车上的效果提建议,其他的小程序还没有看,摩拜单车看起来它就是一张图对应一个按钮,这种多个按钮完全可以实现的,像这样Map组件疑问?我放三张图都有对应的点击处理

C***:

Map组件疑问?

诺,canvas方案,没你说的问题

马***:

@Can

感谢!!!

我测试的是将先canvas后map,导致绘图闪烁覆盖,按照你的顺序测试了可以实现!

另:你们有没有计划进一步开放地图能力,比如现在地图marker点击弹出气泡无法定制样式以及响应事件?

马***:

@YJFn

你的在地图上浮动controls是没问题的,但摩拜的红包计时界面过人不是这个可以实现的,应该是上面@Can提到的用canvas自绘来实现,顺序不对了也是个坑,自绘实现起来还是相对会麻烦点的!!!

C***:系统记录

爱盈利(aiyingli.com)移动互联网具影响力的盈利指导网站。定位于服务移动互联网创业者,移动盈利指导。我们的目标是让盈利目标清晰可见!降低门槛,让缺乏经验、资金有限的个人和团队获得经验和机会,提高热情,激发产品。