jsajdsad
jsajdsad
  • 发布:2024-01-02 18:58
  • 更新:2024-01-03 08:15
  • 阅读:795

使用uni.createMapContext 创建点聚合地图 使用addMarkers添加marker 怎么动态更新marker

分类:uni-app

如题

2024-01-02 18:58 负责人:无 分享
已邀请:
盖世英雄

盖世英雄

用属性里的marker即可

  • jsajdsad (作者)

    用属性里的markers 还能保持点聚合吗

    2024-01-03 08:39

套马杆的套子

套马杆的套子 - 没有解决不了的问题,只有解决不完的问题

在 Uniapp 中,使用 uni.createMapContext 创建点聚合地图,使用 addMarkers 方法添加 marker,可以通过 updateMarkers 方法动态更新 marker 的位置、图标、标题等属性。

下面是一个示例代码,展示如何动态更新 marker:

<template>  
  <view>  
    <map :id="mapId" @ready="onMapReady"></map>  
  </view>  
</template>  

<script>  
export default {  
  data() {  
    return {  
      mapId: 'myMap',  
      mapContext: null,  
      markers: [  
        { id: '1', latitude: 39.9087, longitude: 116.3975, title: 'Marker 1' },  
        { id: '2', latitude: 39.9036, longitude: 116.4068, title: 'Marker 2' }  
      ]  
    };  
  },  
  methods: {  
    onMapReady() {  
      // 创建地图上下文  
      this.mapContext = uni.createMapContext(this.mapId);  

      // 添加初始的 markers  
      this.addMarkers(this.markers);  

      // 模拟一段时间后更新 marker 的位置  
      setTimeout(() => {  
        this.updateMarkers([  
          { id: '1', latitude: 39.909, longitude: 116.398 },  
          { id: '2', latitude: 39.904, longitude: 116.407 }  
        ]);  
      }, 3000);  
    },  
    addMarkers(markers) {  
      this.mapContext.addMarkers({  
        markers,  
        autoRotate: true,  
        cluster: true,  
        width: 30,  
        height: 30,  
      });  
    },  
    updateMarkers(updatedMarkers) {  
      this.mapContext.updateMarkers({  
        markers: updatedMarkers  
      });  
    }  
  }  
};  
</script>

我们先在 onMapReady 方法中创建了地图上下文,通过 addMarkers 方法向地图添加了两个初始的 marker。

随后,一段时间后,通过 updateMarkers 方法更新了 marker 的位置

更新 markers 时,需要传入一个新的 markers 数组,并使用 updateMarkers 方法传入该数组更新 marker。

要回复问题请先登录注册