- 地图安卓端 includePoints API 的 padding 为啥只能设置一个?
背景:做出行相关的小程序,基本天天跟地图打交道,有一个使用场景就是要让一些点在视野内,且地图上有可以拖动的遮挡,根据这个遮挡(参考滴滴小程序的提单页面),调整includePoints,ios可以通过动态设置下padding的方式实现,但是安卓只能传一个值,无法实现这个需求,只能自己在安卓上进行计算,自己控制中心点和sacle,但是能利用的也只有小程序提供的API,显然效果不太好,也给开发造成了额外的困难。(场景如下图,红框部分可以动态调整,地图显示区域需要进行 includePoints) [图片] 其他一些bug或者特性不支持,一般就想办法绕过了,这个不支持真没法在android上完成一些出行场景的实现,我甚至都动态该地图的大小了,但是效果太差,而且我看腾讯地图 安卓的 SDK 也没说padding 的上下左右必须一样,不知道小程序是出于什么样的考虑,这个不一致给双端造成了很大的不一致,我在安卓端,只能自己想办法通过计算实现一个 includePoints。 希望官方能关注下哈,或者有没有碰到相同问题的大佬,是如何解决的呢
2021-08-27 - 地图组件 bindregionchange 出现了只触发一次, 类型为type=begin 的情况?
请教下大家有没有碰到过安卓真机上地图组件视野改变的监听函数只触发一次 type 为begin 的情况,没有成对出现type 为end 的调用?这让我没法做后续的操作,卡主了。代码如下, 异常情况是日志只打印了一条 onRegionChange res , type 为 begin, casedBy 是 gesture,求助。 onRegionChange(res) { const { type, causedBy } = res; console.log('onRegionChange res', res); const callback = () => { this.setData({ dragStart: false, }); }; if (type === 'end') { this.getCenterLocation().then((data) => { console.log('map location change end', data); this.setData({ dragStart: false, }); // do something }); } else if (type === 'begin') { console.log('map location change begin'); this.setData({ dragStart: true, }); } }, 微信版本号:8.0.6 手机:华为p30
2021-07-01