李俊贤JunX
李俊贤JunX
  • 发布:2020-11-25 11:54
  • 更新:2021-02-03 17:37
  • 阅读:1062

【报Bug】Map地图组件的3个问题

分类:uni-app

产品分类: uniapp/小程序/微信

PC开发环境操作系统: Windows

PC开发环境操作系统版本号: Win10

HBuilderX类型: 正式

HBuilderX版本号: 2.9.8

第三方开发者工具版本号: 微信开发者工具稳定版1.03.2010240

基础库版本号: 2.13.2

项目创建方式: HBuilderX

操作步骤:

Bug1:如Bug1描述的方式调用则会必现
Bug2:如Bug2描述的方式则会频繁闪退

预期结果:

Bug1:无警告,API调用功能正常
Bug2:APP正常运行,无崩溃闪退现象

实际结果:

Bug1:警告产生,但并无实际影响,API功能正常
Bug2:频繁闪退

bug描述:

1. 调用Map组件的API时调用moveLocation()与translateMarker()时均会报JSON警告 请看附件的图片内容

template代码:

<view class="page-section page-section-gap">  
    <map id="locationMap" :scale="scale" :latitude="24.490898" :longitude="118.137360"  
    style="width: 100%;z-index: 1;" :style="[{height:'calc(100vh - ' + (headerHeight + bottomHeight) + 'px)'}]"  
    :markers="markers" :enable-rotate="true">  
    </map>  
</view>

调用代码:

let mapContext = uni.createMapContext('locationMap', this);  
mapContext.moveToLocation({  
    longitude: marker.longitude,  
    latitude: marker.latitude,  
    success(res) {  
        // console.log(res);  
    },  
    fail(e) {  
        console.log(e);  
    },  
    complete() {  

    }  
})

2. Map组件创建markers时配置callout气泡为BYCLICK点击显示或不配置采用默认显示策略时,在Android平台上会出现闪退,在iOS平台上则正常
若将气泡设置为ALWAYS常显,则在安卓和iOS平台上都不会闪退了

安卓版本:10
安卓机型:华为荣耀V20

iOS版本:13.3.1
iOS机型:iPhone7

template代码:

<view class="page-section page-section-gap">  
    <map id="locationMap" :scale="scale" :latitude="24.490898" :longitude="118.137360"  
    style="width: 100%;z-index: 1;" :style="[{height:'calc(100vh - ' + (headerHeight + bottomHeight) + 'px)'}]"  
    :markers="markers" :enable-rotate="true">  
    </map>  
</view>

创建marker及callout代码:

for (let index = 0; index < res.length; index++) {  
    let treeCar = res[index];  
    let marker = {  
        id: treeCar.vehicleId,  
        latitude: treeCar.latitude,  
        longitude: treeCar.longitude,  
        iconPath: _this.getCarIcon(treeCar.online, treeCar.velocity),  
        width: 28,  
        height: 35,  
        rotate: treeCar.direction,  
        // 点聚合功能是否开启  
        joinCluster: true,  
        callout: {  
            content: _this.getCarCallOutContent(treeCar.plateNo, treeCar.velocity, treeCar.sendTime),  
            padding: 8,  
            textAlign: 'center',  
            color: '#3d3d3d',  
            bgColor: '#ffffff',  
            fontSize: 14,  
            borderWidth: 1,  
            borderColor: '#1976d2',  
            borderRadius: 15,  
            // 点击显示会导致在Android平台上崩溃闪退  
            display: 'BYCLICK'  
        }  
    };  
    _this.markers.push(marker);  
}
2020-11-25 11:54 负责人:无 分享
已邀请:
DCloud_UNI_LXH

DCloud_UNI_LXH

  1. 关于toJSON报错,这个是微信开发者工具的bug
    新版的微信开发工具存在 Bug 使用 uni.createXxxContext 接口报错,可以先下载回旧版 1.03.2006090
  2. 关于闪退问题

    使用了安卓的手机测试(uni-app编译微信小程序、小程序原生)暂无问题,您可以去微信社区反馈

感谢您的反馈

  • 李俊贤JunX (作者)

    你好,请问是使用map组件的callout气泡 设置显示方式为:默认或点击显示

    之后在地图上点击marker使气泡显示 闪退没有复现吗?

    2020-11-25 15:44

  • DCloud_UNI_LXH

    回复 李俊贤JunX: 是的,配置为display: 'BYCLICK' ,并不会闪退

    2020-11-25 19:00

唬唬唬

唬唬唬

你好,问一下老哥这个聚合功能怎么实现的?

  • 6***@qq.com

    自带的,joinCluster 属性

    2021-03-19 11:26

该问题目前已经被锁定, 无法添加新回复