我想根据实时数据库火力移动标记,就像跟踪用户一样。当数据库更新位置时,mapbox 将更新位置标记。我的网站上有一个问题,当javascript从数据库中获取位置时,标记将更新,但标记变为重复并且不会删除以前的数据。因此,请帮助我删除以前的数据并仅显示更新标记。 代码如下 代码的结果
您每次都会创建一个新标记。相反,您可以将每个 TeamLeader 名称和相应的标记存储在 json 对象中,然后更新它们的坐标。 您需要创建一个 JSON 对象(在示例中称为teamLeaderMarkers
(,并存储团队领导名称(示例中称为teamLeaderName
(。
然后在 setInterval 的回调函数中,你会有这样的东西:
if (teamLeaderMarkers.hasOwnProperty(teamLeaderName)){
teamLeaderMarkers[teamLeaderName].setLngLat([long,lat]);
} else{
let marker = new mapboxgl.Marker(el);
marker.setLngLat([long,lat])
marker.addTo(map);
teamLeaderMarkers[teamLeaderName] = marker;
}