首页 > 解决方案 > 将标记从数据库 firebase 实时移动到 mapbox

问题描述

我想移动基于实时数据库 firebase 的标记,例如跟踪用户。当数据库更新位置时,mapbox 会更新位置标记。我的网站有问题,当 javascript 从数据库中获取位置时,标记会更新,但标记会重复,不会删除以前的数据。所以请帮我删除以前的数据并只显示更新标记。 下面给出 代码 代码的结果

标签: javascriptfirebasefirebase-realtime-databasetrackingmapbox-gl-js

解决方案


您每次都在创建一个新的标记。相反,您可以将每个 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;
}

推荐阅读