尝试刷新OpenLayers上的TileLayer
我有一个TileLayer,TileWMS源代码如下:尝试刷新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
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()})代码>谢谢!它像一个魅力,现在我的功能是渲染后,我创建他们!