Openlayers 3 ol3-刷新各个层?

Openlayers 3 ol3-刷新各个层?,openlayers-3,Openlayers 3,我想为ol3中的各个层实现一个设置的刷新间隔,但我无法找到一个通用的解决方案。我发现调用source.changed()将刷新ol.source.TileWMS源,但它不适用于ol.source.TileArcGISRest源。是否有一个不需要刷新整个地图的通用解决方案?有一个“手动”选项。这将是强制重画 var features = layer.getFeatures(); layer.clear(); layer.addFeatures(features); 如果您从服务器获取数据-这是1

我想为ol3中的各个层实现一个设置的刷新间隔,但我无法找到一个通用的解决方案。我发现调用source.changed()将刷新ol.source.TileWMS源,但它不适用于ol.source.TileArcGISRest源。是否有一个不需要刷新整个地图的通用解决方案?

有一个“手动”选项。这将是强制重画

var features = layer.getFeatures();
layer.clear();
layer.addFeatures(features);
如果您从服务器获取数据-这是1秒后刷新的效果。(投影应更改为您的投影):


但我不知道这是否有助于解决你的问题。只重绘一层的原因是什么?也许更详细的解释会有帮助

考虑到
ol.source.tile.Changed()
仍被标记为“实验性”,目前它可能不适用于
tilearcgiest
。当它在未来变得稳定时,它可能会像你所期望的那样发挥作用。您的解决方案与我所希望的完全不同……跨层类型的共享配置选项可使层刷新。
 var json = new ol.format.GeoJSON();
 window.setTimeout(function() {
  $.ajax(link, function(data) {
    var features = json.readFeatures(data
        {featureProjection:"EPSG:3857"});
    layer.clear();
    layer.addFeatures(features);
  });
}, 1000);