每2秒刷新一次ol.layer.heatmap KML和更新图层

时间:2015-05-29 09:02:01

标签: setinterval heatmap openlayers-3

我使用OpenLayers Heatmap,我想每2秒刷新一次KML Vector。所以我认为可以删除图层,刷新图层然后再次在地图中添加图层。但到目前为止没有任何效果。

这是我的剧本:

var vector = new ol.layer.Heatmap({
  source: new ol.source.Vector({
     url: 'tweets.php',
     format: new ol.format.KML({
         extractStyles: false
      })
  }),
blur: parseInt(6, 10),
radius: parseInt(4, 10)
});

var raster = new ol.layer.Tile({
   source: new ol.source.Stamen({
   minZoom: 3,
   maxZoom: 8,
   layer: 'toner'
   })
 });

 var koordinate = 5.9;

 var map = new ol.Map({
    target: 'map',
    controls: [] ,
    interactions: ol.interaction.defaults({
       dragging: false,
       dragPan: false
    }),
    view: new ol.View({
       center: ol.proj.transform([10.5 , 51.0], 'EPSG:4326', 'EPSG:3857'),
       minZoom: koordinate,
       maxZoom: koordinate,
       zoom: koordinate
    })
 });

 map.addLayer(raster);

 map.addLayer(vector);

 blur.addEventListener('input', function() {
     vector.setBlur(parseInt(blur.value, 10));
 });

 radius.addEventListener('input', function() {
     vector.setRadius(parseInt(radius.value, 10));
 });

编辑:这是我解决问题的最佳解决方案,但我没有工作。

setInterval(function() {
                vector.loaded = false;
                vector.setVisibility(true);
                vector.redraw({ force: true });
            }, 2000);

我还尝试使用SetInterval,但每次都不正确或错误。

我认为ol.layer.heatmap使解决问题变得困难。

1 个答案:

答案 0 :(得分:0)

ol.layer.Heatmap没有提供"重绘"方法

ol.Map确实提供了render方法,您应该使用它。考虑动态数据示例以获得更多洞察力:http://openlayers.org/en/v3.5.0/examples/dynamic-data.html