这是问题所在:
当它们离开视口时,我想从地图中删除所有地图标记。我有检查它们位置的代码,然后在标记上运行 setMap(null)。标记消失。然后,根据 Google 地图文档,我将标记本身设置为 null 以销毁它。
问题是 jquery-maps-ui 的检索地图标记的功能仍然包括已删除的标记!
function cleanUpMarkers(map) {
console.log("$('#map_canvas').gmap('get', 'markers').length = " + $('#map_canvas').gmap('get', 'markers').length);
$.each($('#map_canvas').gmap('get', 'markers'), function (i, marker) {
if (!map.getBounds().contains(marker.getPosition())) {
console.log(marker.internalId);
marker.setMap(null);
marker = null;
delete marker;
//console.log(marker.internalId);
}
});
console.log("$('#map_canvas').gmap('get', 'markers').length = " + $('#map_canvas').gmap('get', 'markers').length);
}
我怎样才能真正删除标记,以便$('#map_canvas').gmap('get', 'markers')不返回已删除的标记?