有问题清除谷歌地图图层

时间:2013-11-09 13:42:22

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

我一直在处理this postthis jsfiddle。在我将新数据填入其中之前,我正在尝试清除地图图层,但看起来叠加只是将一个堆叠在一起而不会被清除。

这是我目前存在的代码:

// For the heatmap layer
  var heatmapData = [];
  var heatmap;

  // Instantiate counter
  var files = 0;

  // Looping and loading files with timeout
  (function myLoop (i) {          
    setTimeout(function () {   
      var xhr = new XMLHttpRequest();
      xhr.open('GET', ('js/tweets'+ files + '.json'), true);
      xhr.onload = function() {
        loadTweets(this.responseText);
      };
      xhr.send();

      // Clear out map styles
      heatmap.setMap(null);           
      if (--i) myLoop(i);
      // Stall for 3 seconds
    }, 3000)
  })(100);  

  // Parse out the JSON and create markers
  function loadTweets(results) {

    // Parse out our JSON file
    var tweetStructure = $.parseJSON(results);

    // Go gets it
    for (a in tweetStructure){
      var co_arr = tweetStructure[a];
      for (coords in co_arr.coordinates){
        var d = co_arr.coordinates;

        // Stating our lat/longs 
        var first = d[0];
        var second = d[1];
        var magnitude = d[2];

        // Setting them
        var latLng = new google.maps.LatLng(first, second);

        // Weighted location to express polarity
        var weightedLoc = {
          location: latLng,
          weight: Math.pow(2, magnitude)
        };
        heatmapData.push(weightedLoc);
      }
    }

    // Instantiate heat map
    heatmap = new google.maps.visualization.HeatmapLayer({
      data: heatmapData,
      dissipating: false,
      map: map
    });
  }

我从四个静态JSON文件中获取数据。

1 个答案:

答案 0 :(得分:0)

在声明for in时使用第二个var d =循环,您似乎不会迭代所有[coords]。因此,我猜d[0]将包含来自co_arr.coordinates的所有键值对。这可能是问题的一部分吗?