Angular 在更新新数据标记之前删除标记

Angular 在更新新数据标记之前删除标记,angular,leaflet,Angular,Leaflet,我正在检索坐标GPS上json api内容的数据,然后使用到传单地图标记中。当我有来自数据json api的新更新时,我很难清除标记,当我有新的更新时,所有标记都是重复的 代码 datas(){ 间隔(3000)。订阅(()=>{ this.http.get(“xxxxxxxxxxxx”,{},{})。然后((数据)=>{ this.Data=JSON.parse(Data.Data); this.points=Object.keys(this.Data) .map(key=>this.Data

我正在检索坐标GPS上json api内容的数据,然后使用到传单地图标记中。当我有来自数据json api的新更新时,我很难清除标记,当我有新的更新时,所有标记都是重复的

代码

datas(){
间隔(3000)。订阅(()=>{
this.http.get(“xxxxxxxxxxxx”,{},{})。然后((数据)=>{
this.Data=JSON.parse(Data.Data);
this.points=Object.keys(this.Data)
.map(key=>this.Data[key])
.map((位置)=>({
横向:位置[1],
液化天然气:位置[2],
})).filter(position=>position.lat&&position.lng).forEach(i=>{
控制台日志(i.lat,i.lng)
新L.标记([i.lat,i.lng]{
图标:新的L.DivIcon({
html:`
`
})
}).addTo(此.map)
})
this.map.removeLayer()
});
})
}

如何删除标记,然后在更新数据后在地图上添加新标记并避免重复标记

我们使用功能组添加标记:然后调用
.clearLayers()
删除所有标记就很容易了。@AJT82是否应该在
间隔(3000)内使用
.clearLayers()
.subscribe
更新?只需在添加新标记之前执行此操作,间隔内即可:)您也可以使用layergroup而不是featuregroup,它们具有相同的可用功能。你的选择:)这能回答你的问题吗?不,不一样
  datas(){

    interval(3000).subscribe(()=>{

      this.http.get("xxxxxxxxxxxxx",{},{}).then((data) => {

        this.Data = JSON.parse(data.data);

        this.points = Object.keys(this.Data)

        .map(key => this.Data[key])
        .map((position) => ({
          lat: position[1],
          lng: position[2],
        })).filter(position => position.lat && position.lng ).forEach(i=>{

          console.log(i.lat,i.lng)

          new L.Marker([i.lat,i.lng], {
            icon: new L.DivIcon({
              html: `<div style="width: 65px;";>
              <img src="assets/aeroplane.png"/style="width: 20px;height: 25px;">
              </div>`

            })

        }).addTo(this.map)
      })

      this.map.removeLayer()

      });

    })



  }