uni-app nvue 中ios的 自定义聚合点无效 enableDefaultStyle: false失效

uni-app nvue 中ios的 自定义聚合点无效 enableDefaultStyle: false失效

项目属性 信息
产品分类 uniapp/App
PC开发环境 Windows
PC开发环境版本号 1
HBuilderX类型 正式
HBuilderX版本号 4.76
手机系统 iOS
手机系统版本号 iOS 18
手机厂商 苹果
手机机型 苹果12
页面类型 nvue
vue版本 vue2
打包方式 云端
项目创建方式 HBuilderX

示例代码:

enableDefaultStyle: false,

操作步骤:

enableDefaultStyle: false,

预期结果:

像安卓一样 消失掉 用markerClusterCreate设置自定义样式

实际结果:

聚合点默认样式

bug描述:

this.mapCtx = uni.createMapContext("mymap", this);  

// 仅调用初始化,才会触发 on.("markerClusterCreate", (e) => {})
this.mapCtx.initMarkerCluster({  
    enableDefaultStyle: false,  
    zoomOnClick: true,  
    gridSize: 60,  
    complete(res) {  
        console.log('initMarkerCluster', res)  
    }  
});  

enableDefaultStyle: false,无效 还是使用默认的样式  

this.mapCtx.on('markerClusterCreate', (e) => {  
        console.log('markerClusterCreate', e);  
        const clusters = e.clusters;  
        const markers = clusters.map((cluster) => {  
            const {  
                center,  
                clusterId,  
                markerIds  
            } = cluster;  
            return {  
                ...center,  
                width:1,  
                height:1,  
                clusterId, // 必须  
                // iconPath:'',  
                label: {  
                    content: markerIds.length + '', // 显示聚合的数量  
                    fontSize: 16,  
                    color: '#fff',  
                    width: 50,  
                    height: 50,  
                    bgColor: 'rgb(255, 0, 0)', // 聚合标记的背景颜色  
                    borderRadius: 25,  
                    textAlign: 'center',  
                    anchorX: -25,  
                    anchorY: -50,  
                },  
            };  
        });  

markerClusterCreate 也没有效果


更多关于uni-app nvue 中ios的 自定义聚合点无效 enableDefaultStyle: false失效的实战教程也可以访问 https://www.itying.com/category-93-b0.html

1 回复

更多关于uni-app nvue 中ios的 自定义聚合点无效 enableDefaultStyle: false失效的实战教程也可以访问 https://www.itying.com/category-93-b0.html


在 iOS 平台的 nvue 页面中,enableDefaultStyle: false 确实存在兼容性问题。这个问题是由于 iOS 原生地图组件对聚合点默认样式的处理机制不同导致的。

从你的代码来看,markerClusterCreate 事件没有被触发,这说明聚合点的创建流程在 iOS 上可能没有正常执行。建议检查以下几点:

  1. 确认地图初始化完成:确保在 [@ready](/user/ready) 事件触发后再调用 initMarkerCluster
  2. 尝试设置延迟初始化:iOS 可能需要更长的初始化时间
  3. 检查地图组件属性:确认 map 组件设置了 enable-cluster 为 true

可以尝试以下修改:

// 在地图 [@ready](/user/ready) 事件中
setTimeout(() => {
    this.mapCtx.initMarkerCluster({
        enableDefaultStyle: false,
        zoomOnClick: true,
        gridSize: 60
    });
}, 500);
回到顶部