我目前正在将 OpenLayers 客户端版本 2.13.1 升级为新版本的 OpenLayers OL3。我的设置包括作为 WMS 映射服务器的 Mapserver 和前面提到的 OpenLayers 客户端。
在旧系统中,我支持用户交互,如果用户单击地图的某些部分,则会再次生成地图文件,因此我强制重绘图层以使地图的某些部分着色。 OL2版本的代码示例:
$.ajax({
params: ...
success: function (data) {
if (data.success) {
gisLayer.redraw(true);
}
}
});
我想在OL3中获得相同的功能,但没有重绘功能。我发现两个有用的函数,但是为了获得相同的功能还需要做其他事情:
-layer.getSource().updateParams(params);和
- 地图.render();
我还创建了一个更复杂的示例,其中我让代码正常工作,但是获取 WMS 图块的请求包含附加参数作为获取唯一请求的关键。示例代码如上:
var params = layer.getSource().getParams();
params.t = getUniqueParam();
layer.getSource().updateParams(params);
好吧,情况就是这样,我想问的是是否有任何可用的功能,可以强制重绘图层,而不需要在WMS请求中添加额外的参数? AFAIK“问题”是浏览器缓存图像,如果请求相同,即之前,浏览器再次显示旧图像。
谢谢你的帮助。
你能检查一下这是否有效吗?
yourLayerSource.dispatchChangeEvent();
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)