MapBox clear all current markers

后端 未结 3 595
忘掉有多难
忘掉有多难 2020-12-18 22:45

I\'ve created a MapBox instance with:

var map = new mapboxgl.Map({
    container : \'map\',
    style : \'mapbox://styles/mapbox/streets-v9\'
});
         


        
3条回答
  •  無奈伤痛
    2020-12-18 23:26

    If you added multiple markers, and you want to clear all them on your map, you have to loop overs all markers, and delete them one by one, you will have something like this :

    if (currentMarkers!==null) {
        for (var i = currentMarkers.length - 1; i >= 0; i--) {
          currentMarkers[i].remove();
        }
    }
    

    Consider thar var currentMarkers contains all markers, you can do this with sometning like :

    oneMarker= new mapboxgl.Marker(currentMarkerDiv)
        .setLngLat(marker.geometry.coordinates)
        .addTo(mapboxMap);
        currentMarkers.push(oneMarker);
    

    Where var currentMarkers is a global variable :

    var currentMarkers=[];
    

    Full example :

    // markers saved here
    var currentMarkers=[];
    
    // tmp marker
    var oneMarker= new mapboxgl.Marker(currentMarkerDiv)
        .setLngLat(marker.geometry.coordinates)
        .addTo(mapboxMap);
    
    // save tmp marker into currentMarkers
    currentMarkers.push(oneMarker);
    
    
    // remove markers 
    if (currentMarkers!==null) {
        for (var i = currentMarkers.length - 1; i >= 0; i--) {
          currentMarkers[i].remove();
        }
    }
    

提交回复
热议问题