2016-12-09 8 views
0

У меня есть Wms слой, созданный таким образом:Как обновить слой WMS в OpenLayers 3?

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. Благодаря!

+0

Или, вероятно, есть параметр, чтобы отключить кэширование на стороне GeoServer. Теперь плитки кешируются, даже если я добавлю некоторый случайный параметр в блок params – Jacobian

ответ

1

Для достижения этой цели, вы можете использовать updateParams на исходном слое

var params = layer.getSource().getParams(); 
layer.getSource().updateParams(params);