Openlayers-3强制执行地图刷新

6 redraw openlayers-3

我有一个自定义样式,在地图上显示/隐藏功能,但在应用它时,它不会激活,直到地图刷新由于功能更新,但我需要它立即触发.

我尝试了map.render和renderSync(),但他们什么也没做.mapResize()似乎也没有做任何事情,但如果我等待更新某个功能或移动地图就可以了.

有任何想法吗?无论功能更新如何,我如何强制按需重绘地图?

Sar*_*tee 7

我相信你需要强制你的图层的源更新,你可以通过调用changed它上面的函数来做到这一点:

yourLayer.getSource().changed();
Run Code Online (Sandbox Code Playgroud)

请参阅:http://openlayers.org/en/v3.6.0/apidoc/ol.source.Source.html


小智 6

我终于找到了一个在openlayers 3上刷新图层的解决方案.

你必须像这样更新图层源的参数:

var source = yourLayer.getSource();
var params = source.getParams();
params.t = new Date().getMilliseconds();
source.updateParams(params);
Run Code Online (Sandbox Code Playgroud)


khe*_*gmi 5

要解决这个问题,只需使用

this.map.updateSize();
Run Code Online (Sandbox Code Playgroud)