尝试刷新OpenLayers上的TileLayer

尝试刷新OpenLayers上的TileLayer,openlayers,Openlayers,我有一个TileLayer,TileWMS源代码如下: this.imageLayer = new TileLayer({ source: new TileWMS({ url: url, crossOrigin: "anonymous", params: params, serverType: 'geoserver', transition: 0, }), }); this.map.addLayer(this.ima

我有一个TileLayer,TileWMS源代码如下:

this.imageLayer = new TileLayer({
  source: new TileWMS({
    url: url,
    crossOrigin: "anonymous",
    params: params,
    serverType: 'geoserver',
    transition: 0,
    
  }),
});

this.map.addLayer(this.imageLayer);
this.imageLayer.getSource().refresh();
所有的图片在地图上都能很好地显示,但在某个时候我会尝试创建功能,将它们保存在我的数据库中,然后刷新我的图层,这样创建的新功能会在创建后立即显示出来

我正在刷新图层,如下所示:

this.imageLayer = new TileLayer({
  source: new TileWMS({
    url: url,
    crossOrigin: "anonymous",
    params: params,
    serverType: 'geoserver',
    transition: 0,
    
  }),
});

this.map.addLayer(this.imageLayer);
this.imageLayer.getSource().refresh();
在网络工具上,我可以看到图像是如何被请求到服务器的,但是没有呈现新功能

为什么这不起作用


我已经做了一些测试,当我创建功能并在F12选项卡打开的情况下调用refresh()方法时,瓷砖被完美地渲染,但在正常情况下,在F12选项卡关闭的情况下,功能不会被渲染。

这可能是浏览器缓存。您的服务器必须设置适当的缓存控制头,或者您可以在WMS参数中添加并更新时间戳以强制刷新,例如
this.imageLayer.getSource().updateParams({'timestamp':Date.now()})谢谢!它像一个魅力,现在我的功能是渲染后,我创建他们!这可能是浏览器缓存。您的服务器必须设置适当的缓存控制头,或者您可以在WMS参数中添加并更新时间戳以强制刷新,例如
this.imageLayer.getSource().updateParams({'timestamp':Date.now()})谢谢!它像一个魅力,现在我的功能是渲染后,我创建他们!