如何缓存WMS图像层

时间:2019-04-05 07:42:28

标签: openlayers wms openlayers-5

我将具有包含GetMap请求的URL的图像(如下所示)预加载到宽度/高度为0px的IMG标签中,并将显示设置为“无”。 每个图片的网址之间的区别只是“时间”部分(例如'TIME = 2019-04-05T05:40:00.000Z')。在FireFox检查中,我可以看到正在下载的每个图像。

网址示例: https://maps.dwd.de/geoserver/wms?version=1.3.0&request=GetCapabilities&SERVICE=WMS&VERSION=1.3.0&REQUEST=GetMap&FORMAT=image/png; mode = 8bit&TRANSPARENT = true&LAYERS = dwd:RX-Produkt&TIME = 2019-04-05T05:40:00.000Z&CRS = EPSG:3857&STYLES =&WIDTH = 407&HEIGHT = 406&BBOX = 697105.6892639723,6166327.945821739,1692621.5456501078,7159397.8173027495

预加载(如果仅加载一个时间步):

$('<img />')
   .attr('id', 'img1')
     .attr('src', URL)
     .appendTo('div#map-1')
     .css({
         'position': 'relative',
         'display': 'none',
         'height': 0,
         'width': 0
     })
  ;

如果我加载WMS层并现在通过将其悬停在时间线上来更改其源(每个悬停仅更改WMS层的URL的时间部分),则正在下载WMS服务器上的结果png从WMS服务器再次访问(尽管url与预加载时完全相同)。

我的网站的屏幕转储:https://www.kambeel.nl/data/wms.png

每次将鼠标悬停在时间/日期上都会触发此操作(其中TIME是ISO8601时间戳,而LYR是图层的名称):

window['WMS-1'].getSource().updateParams({'LAYERS': LYR, 'TIME': Time});

当查看Firefox进行检查时,我可以看到重新下载了与预加载网址完全相同的png。

如何防止从这些png的重新下载?

0 个答案:

没有答案