如何从谷歌地图中删除高级标记

问题描述 投票:0回答:1

我有标记对象让标记: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);
    }
    }
}

我最近迁移到高级标记。我需要清除某些操作的标记。

google-maps
1个回答
0
投票

由于 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 );
© www.soinside.com 2019 - 2024. All rights reserved.