<script>
export default {
data() {
return {
manDotMarkers: [], // 存储人员标记的数组
};
},
methods: {
// 在已有的标记中找到并定位到被点击的人员,而不是每次点击都创建一个新的标记
handlePersonClick(user) {
// 获取人员的位置信息,假设位置信息保存在user的location属性中
const location = user.location;
// 清除其他标记的高亮状态
this.clearMarkerHighlight();
// 在已有的标记中找到并定位到被点击的人员的标记
const clickedMarker = this.manDotMarkers.find((marker) => {
const markerLocation = marker.getLatLng();
return markerLocation.lat === location.lat && markerLocation.lng === location.lng;
});
if (clickedMarker) {
// 高亮被点击的标记
clickedMarker.openPopup();
// 可以进行其他操作,例如将地图视图定位到该标记
this.hcmap.setView(location, zoomLevel);
}
},
clearMarkerHighlight() {
// 清除所有标记的高亮状态
this.manDotMarkers.forEach((marker) => {
marker.closePopup();
});
},
},
};
</script>