我有一些存储在对象数组中的标记,我无法弄清楚如何删除它们。
// 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)
答案 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);
}
}
希望这有帮助。