我有标记对象让标记:google.maps.Marker[] = [];
const mapMarker = new AdvancedMarkerElement( {
map,
position:myLatlng,
title: letter,
content: faPin.element,
gmpDraggable: true
});
markers.push(mapMarker);
此代码适用于旧标记。
if(markers && markers.length>0){
for (let i = 0; i < markers.length; i++) {
if(markers[i]){
markers[i].setMap(null);
}
}
}
我最近迁移到高级标记。我需要清除某些操作的标记。
由于 AdvancedMarkers 的异步特性,我发现这样做的方法是使用
Promise.all
这样的东西。
const clearmarkers=(arr)=>{
Promise.all(arr)
.then(a=>nullify(a))
.catch(console.warn)
};
const nullify=(a)=>a.forEach(setnull);
const setnull=(n)=>n.setMap(null);
// When you need to clear the markers array / remove each marker
clearmarkers( markers );