简述:我希望能够通过定时器刷新图层,以便绘制新的kml数据(类似于更新链接/网络链接)。
到目前为止,我尝试了以下操作函数:
function RefreshKMLData(layer) {
layer.loaded = false;
layer.setVisibility(true);
layer.redraw({ force: true });
}
设置函数的时间间隔:
window.setInterval(RefreshKMLData, 5000, KMLLAYER);
图层本身:
var KMLLAYER = new OpenLayers.Layer.Vector("MYKMLLAYER", {
projection: new OpenLayers.Projection("EPSG:4326"),
strategies: [new OpenLayers.Strategy.Fixed()],
protocol: new OpenLayers.Protocol.HTTP({
url: MYKMLURL,
format: new OpenLayers.Format.KML({
extractStyles: true,
extractAttributes: true
})
})
});
带有Math随机数的KMLLAYER URL,以避免缓存:
var MYKMLURL = var currentanchorpositionurl = 'http://' + host + '/data?_salt=' + Math.random();
我本以为这会刷新图层。因为将其加载设置为false会卸载它。将可见性设置为true会重新加载它,并且使用Math.random应该不允许缓存。那么有人之前做过这个吗,或者知道我如何使其工作吗?