我使用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
使解决问题变得困难。
答案 0 :(得分:0)
ol.layer.Heatmap
没有提供"重绘"方法
ol.Map
确实提供了render
方法,您应该使用它。考虑动态数据示例以获得更多洞察力:http://openlayers.org/en/v3.5.0/examples/dynamic-data.html