Angular 在更新新数据标记之前删除标记
我正在检索坐标GPS上json api内容的数据,然后使用到传单地图标记中。当我有来自数据json api的新更新时,我很难清除标记,当我有新的更新时,所有标记都是重复的 代码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
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()
});
})
}