在开发中遇到这么个问题:前端通过配置选项生成geoserver的xml样式文件修改图层的样式,在预览时功能一切正常,但是地图由于浏览器和ol的缓存机制问题,有部分的瓦片层会拿不到最新的瓦片部分。在地图上显示异常。
解决方案:在给地图添加图层时向获取的瓦片数据文件添加一个时间戳或者随机数来控制瓦片的名称,以此来防止浏览器的缓存机制。
const tiled = new ol.layer.Tile({
visible: visible,
title: name,
opacity: opacity,
zIndex: zIndex,
source: new ol.source.TileWMS({
url: url,
params: params,
tileLoadFunction: function (imageTile, src) {
//加入随机数,防止图片缓存
imageTile.getImage().src = src + "&t=" + Math.random();
},
}),
});