删除对象数组中的谷歌地图标记

时间:2015-11-25 14:40:40

标签: javascript google-maps google-maps-api-3

我有一些存储在对象数组中的标记,我无法弄清楚如何删除它们。

// Initialize Object Array
var Calls = [{
  lat: 42,
  lng: -72
}, {
  lat: 40.7127837,
  lng: -74.0059413
}, {
  lat: 40.735657,
  lng: -74.1723667
}];

// Initialize Map
function initMap()
{
    map = new google.maps.Map(document.getElementById('map'),
    {
        center: Calls[0],
        zoom: 14,
        scaleControl: true
    })
}

// Add Markers
function initMarkers()
{
    for (var i = 0; i < Calls.length; i++)
    {
        var marker = new google.maps.Marker({
            position: Calls[i],
            map: map
        });
    }
}

// Start on Load
window.onload = function()
{
    initMap();
    initMarkers();
}

//Clear Markers
function clearOverlays()
{
    initMarkers(null);
}

// Run Clear Markers Function every 3 seconds
setInterval(function()
{
    clearOverlays();
    Calls = [];
}, 3000)

1 个答案:

答案 0 :(得分:1)

<强> Working fiddle

您必须将标记存储在其他数组中,如:

var markers = [];

for (var i = 0; i < Calls.length; i++)
{
    var marker = new google.maps.Marker({
        position: Calls[i],
        map: map
    });
    markers.push(marker);
}    

之后添加清除所有标记的地图的功能:

function clearMap() {
    for (var i = 0; i < markers.length; i++) {
          markers[i].setMap(null);
    }
}

希望这有帮助。