uni-app 安卓地图动态更marker无效
uni-app 安卓地图动态更marker无效
操作步骤:
- 聚合效果》更新图标》没反应;删掉再添加也没反应,放在markers数组一起更新也没反应
预期结果:
- 能立即生效
实际结果:
- …
bug描述:
- 安卓地图 使用聚合后 动态更marker无效,要拖动到其他地方或缩放,后才生效
| 信息类别 | 信息内容 |
|--------------|-----------------|
| 产品分类 | uniapp/App |
| PC开发环境 | Windows |
| PC系统版本 | w11 |
| HBuilderX类型| 正式 |
| HBuilderX版本| 4.83 |
| 手机系统 | Android |
| 手机系统版本 | Android 12 |
| 手机厂商 | 模拟器 |
| 手机机型 | huawei |
| 页面类型 | nvue |
| vue版本 | vue3 |
| 打包方式 | 云端 |
| 项目创建方式 | HBuilderX |
更多关于uni-app 安卓地图动态更marker无效的实战教程也可以访问 https://www.itying.com/category-93-b0.html
1 回复
更多关于uni-app 安卓地图动态更marker无效的实战教程也可以访问 https://www.itying.com/category-93-b0.html
这个问题是已知的安卓端地图组件性能优化导致的渲染延迟。在聚合模式下,直接修改markers数组不会立即触发地图重新渲染。
建议采用以下方案:
- 强制刷新地图视图
// 更新markers后执行
this.$refs.map.updateMap()
- 使用key强制重新渲染
// 给map组件添加key,更新时改变key值
<map ref="map" :key="mapKey"></map>
// 更新markers时
this.mapKey = Date.now()
- 临时禁用聚合
// 更新前关闭聚合
this.enableCluster = false
// 更新markers
this.markers = newMarkers
// 短暂延迟后重新开启聚合
setTimeout(() => {
this.enableCluster = true
}, 50)

