2015-11-25 63 views
1

我有存儲在對象數組中的標記,我不知道如何刪除它們。刪除對象數組中的谷歌地圖標記

// 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

[Google Maps API v3:如何刪除所有標記?](http://stackoverflow.com/questions/1544739/google-maps-api-v3-how-to-remove-all-markers) – geocodezip

+0

相關問題:[試圖從地圖刪除標記](http://stackoverflow.com/questions/21656232/trying-to-remove-markers-from-map) – geocodezip

+0

可能重複的[谷歌地圖V3刪除標記更新之前] (http://stackoverflow.com/questions/19861837/google-map-v3-remove-markers-before-updating) – geocodezip

回答

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); 
    } 
} 

希望這有助於。