问题在于:
我想从地图中删除所有地图标记,当它们离开视口时。我有代码检查他们的位置,然后在标记上运行setMap(null)。标记消失。然后,根据Google Maps文档,我将标记本身设置为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')不会返回已删除的标记标记