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 上可能没有正常执行。建议检查以下几点:
- 确认地图初始化完成:确保在
[@ready](/user/ready)事件触发后再调用initMarkerCluster - 尝试设置延迟初始化:iOS 可能需要更长的初始化时间
- 检查地图组件属性:确认
map组件设置了enable-cluster为 true
可以尝试以下修改:
// 在地图 [@ready](/user/ready) 事件中
setTimeout(() => {
this.mapCtx.initMarkerCluster({
enableDefaultStyle: false,
zoomOnClick: true,
gridSize: 60
});
}, 500);

