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数组不会立即触发地图重新渲染。

建议采用以下方案:

  1. 强制刷新地图视图
// 更新markers后执行
this.$refs.map.updateMap()
  1. 使用key强制重新渲染
// 给map组件添加key,更新时改变key值
<map ref="map" :key="mapKey"></map>

// 更新markers时
this.mapKey = Date.now()
  1. 临时禁用聚合
// 更新前关闭聚合
this.enableCluster = false
// 更新markers
this.markers = newMarkers
// 短暂延迟后重新开启聚合
setTimeout(() => {
    this.enableCluster = true
}, 50)
回到顶部