如题
- 发布:2024-01-02 18:58
- 更新:2024-01-03 08:15
- 阅读:795
套马杆的套子 - 没有解决不了的问题,只有解决不完的问题
在 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。
jsajdsad (作者)
用属性里的markers 还能保持点聚合吗
2024-01-03 08:39