Openlayers-3 强制刷新地图
Openlayers-3 Force a map refresh
我有一个自定义样式 shows/hides 在地图上具有特色,但应用它时它不会激活,直到地图因功能更新而刷新,但我需要它立即触发。
我尝试了 map.render 和 renderSync() 但它们什么也没做。 mapResize() 似乎也没有做任何事情,但如果我等待功能更新或移动地图,它就会工作。
有什么想法吗?我怎样才能强制地图按需重绘,而不考虑功能更新?
我认为您需要强制更新图层的源代码,您可以通过对其调用 changed
函数来实现:
yourLayer.getSource().changed();
参见:http://openlayers.org/en/v3.6.0/apidoc/ol.source.Source.html
一种方法是根据功能的用途对功能进行分组,并将每个组放在不同的图层上,然后您可以轻松地显示或隐藏具有要隐藏或显示的功能的指定图层。
我终于找到了在 openlayers 3 上刷新图层的解决方案。
您必须像这样更新图层源的参数:
var source = yourLayer.getSource();
var params = source.getParams();
params.t = new Date().getMilliseconds();
source.updateParams(params);
如果 Sarumatee 不适合你,你可以试试这个:
map.render();
我正在使用 ol3。
使用yourlayer.source().updateParams({CQL_FILTER:"1=1"});
一定有用
要解决这个问题,只需使用
this.map.updateSize();
我有一个自定义样式 shows/hides 在地图上具有特色,但应用它时它不会激活,直到地图因功能更新而刷新,但我需要它立即触发。
我尝试了 map.render 和 renderSync() 但它们什么也没做。 mapResize() 似乎也没有做任何事情,但如果我等待功能更新或移动地图,它就会工作。
有什么想法吗?我怎样才能强制地图按需重绘,而不考虑功能更新?
我认为您需要强制更新图层的源代码,您可以通过对其调用 changed
函数来实现:
yourLayer.getSource().changed();
参见:http://openlayers.org/en/v3.6.0/apidoc/ol.source.Source.html
一种方法是根据功能的用途对功能进行分组,并将每个组放在不同的图层上,然后您可以轻松地显示或隐藏具有要隐藏或显示的功能的指定图层。
我终于找到了在 openlayers 3 上刷新图层的解决方案。
您必须像这样更新图层源的参数:
var source = yourLayer.getSource();
var params = source.getParams();
params.t = new Date().getMilliseconds();
source.updateParams(params);
如果 Sarumatee 不适合你,你可以试试这个:
map.render();
我正在使用 ol3。
使用yourlayer.source().updateParams({CQL_FILTER:"1=1"});
一定有用
要解决这个问题,只需使用
this.map.updateSize();