Setinterval 每2秒刷新ol.layer.heatmap KML并更新图层

Setinterval 每2秒刷新ol.layer.heatmap KML并更新图层,setinterval,heatmap,openlayers-3,Setinterval,Heatmap,Openlayers 3,我使用OpenLayers热图,我想每2秒刷新一次KML向量。所以我认为可以删除图层,刷新图层,然后在地图中再次添加图层。但到目前为止,一切都不起作用 这是我的剧本: var vector=new ol.layer.Heatmap({ 来源:新ol.source.Vector({ url:'tweets.php', 格式:新建ol.format.KML({ 提取样式:false }) }), 模糊:parseInt(6,10), 半径:parseInt(4,10) }); var raster=

我使用OpenLayers热图,我想每2秒刷新一次KML向量。所以我认为可以删除图层,刷新图层,然后在地图中再次添加图层。但到目前为止,一切都不起作用

这是我的剧本:

var vector=new ol.layer.Heatmap({
来源:新ol.source.Vector({
url:'tweets.php',
格式:新建ol.format.KML({
提取样式:false
})
}),
模糊:parseInt(6,10),
半径:parseInt(4,10)
});
var raster=新建ol.layer.Tile({
来源:新ol.source.雄蕊({
minZoom:3,
最大缩放:8,
图层:“碳粉”
})
});
var koordinate=5.9;
var map=新ol.map({
目标:“地图”,
控件:[],
交互:ol.interaction.defaults({
拖动:false,
德拉潘:错
}),
视图:新ol.view({
中心:ol.proj.transform([10.5,51.0],“EPSG:4326”,“EPSG:3857”),
minZoom:koordinate,
maxZoom:koordinate,
缩放:协调
})
});
添加图层(光栅);
map.addLayer(向量);
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
使问题难以解决。

ol.layer.heatmap
不提供“重画”方法


ol.Map
确实提供了一种
render
方法,您应该使用它。考虑动态数据示例,以获得更多的洞察力:

“但迄今为止没有任何效果”,“这是不正确的或是错误的”——你必须比这更具体。至少你需要包含你所说的代码。好的,我添加了一些代码。也许现在有人可以帮我。我从来没有专门使用过OpenLayers3,但我在
ol.layer.Heatmap
上找不到任何关于
redraw
方法的提及-是否可能是它编造或使用了OL2文档而不是OL3?不管怎样,看起来你的问题已经得到了回答。问地理信息系统特定的问题通常是一个更好的地方。我如何将其用于我的KML?我在那里有一些问题。。。你能帮忙吗?好的,我看了。但我不知道,如何在向量层中使用它。如何刷新地图,使KML中的新点显示在地图上?也许你能多帮我一点忙。:)@mark96请用您对代码所做的最新更改更新上面的代码示例。如果不更好地理解您正在做的事情,没有人可以提供帮助:)例如,我认为没有任何值会受到
vector.loaded
vector.redraw()
的影响(在openlayers-3中)不是真正的方法。