我使用以下代码在Google地图上添加标记
function addDynamicMarker(location) {
markers.push(new google.maps.Marker({
position: location,
map: map,
draggable: false,
icon: image,
animation: google.maps.Animation.DROP
}));
iterator++;
}
我有来自服务器的恒定数据流,我通过调用
将其添加到Map connection.onmessage = function(e) {
var parse = JSON.parse(e.data);
var coordinates = parse["geo"]["coordinates"];
console.log("coordinates:" + JSON.stringify(coordinates, undefined, 2));
addDynamicMarker(new google.maps.LatLng(coordinates[0], coordinates[1]));
};
问题吗
- 这继续在地图上创建新点,并成为接管所有地方的
- 由于新的google.maps.LatLng
被创建,他们最终会占用大量内存
我需要什么?
推送标记时我需要一种方法,在2 seconds
我怎样才能做到这一点?
答案 0 :(得分:1)
使用setTimeout安排删除标记:
function addDynamicMarker(location) {
var marker = new google.maps.Marker({
position: location,
map: map,
draggable: false,
// icon: image,
animation: google.maps.Animation.DROP
});
setTimeout(function () {
marker.setMap(null);
delete marker;
}, 2000);
return marker;
}