如何刷新OpenLayers 3中的WMS图层?

时间:2016-12-09 09:30:43

标签: javascript openlayers-3

我有一个wms图层,就像这样创建:

layer = new ol.layer.Tile({
  visible: true,
  source: new ol.source.TileWMS({
      url: 'http://localhost:8085/geoserver/accent/wms',
      params: {
          'FORMAT': 'image/png', 
          'VERSION': '1.1.1',
           tiled: true,
           STYLES: '',
           LAYERS: 'accent:layer_' + layer_id + '_',
           tilesOrigin: 0 + "," + 0.0000000000014415
      }
   })
});

我的应用程序中有一些按钮,可以更改图层存储(进行移位,增加图块的级别数等)。因此,为了使这些变化可见,我需要一种方法来刷新"该层,以便它可以生成服务器请求并重绘自己。看起来像旧的OL2一样有一个很好的方法:

myWMSLayer.redraw(true);

但我不知道如何在OL3中实现相同的效果。谢谢!

2 个答案:

答案 0 :(得分:2)

要实现这一目标,您可以使用图层来源上的updateParams

pluginRepositories

答案 1 :(得分:0)

因为 WMS 图层会在您放大/缩小时刷新,所以我设法通过在需要更新时稍微缩放地图来使其刷新。

var current_zoom = map.getView().getZoom();
map.getView().setZoom(current_zoom - 0.001);
相关问题