谷歌地图:如何在一段时间后删除标记?

时间:2014-07-20 16:37:35

标签: javascript google-maps google-maps-api-3

我使用以下代码在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

之后删除该市场

我怎样才能做到这一点?

1 个答案:

答案 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;
}

working fiddle