我正在尝试刷新单个WMS图层源。目标是使用具有不同阈值的参数化SLD。根据这些值绘制不同大小和颜色的点。
var source = new ol.source.TileWMS({
url: 'http://localhost:8080/geoserver/Global/wms',
params: {
LAYERS: 'cities',
VERSION: '1.3.0',
CQL_FILTER: "ISO_A2 IN ('DE', 'FR', 'BE', 'PT', 'CZ', 'NL', 'ES', 'AT', 'CH', 'HU', 'PL', 'SE', 'NO', 'DK', 'IT', 'GB', 'IE')",
STYLES: 'ring_dynamic',
ENV: 'LOW_MAX:' + low_max + ';MED_MAX:' + med_max
}
})
设置low_max和med_max参数后,应重新加载图层以使更改可见。
我已经尝试了以下两个陈述,但没有一个有效。
source.changed();
source.dispatchEvent('change');
使用OpenLayers 3.6和3.6。
€二叔: 我使用jQueryUI-Slider来触发重载:
$(function() {
$( "#slider-range" ).slider({
range: true,
min: 0,
max: 5000000,
values: [ 500000, 2000000 ],
slide: function( event, ui ) {
$( "#grenzen" ).val( ui.values[ 0 ] + " - " + ui.values[ 1 ] );
low_max = ui.values[0];
med_max = ui.values[1];
source.changed();
source.dispatchEvent('change');
}
});
$( "#range_limits" ).val( $( "#slider-range" ).slider( "values", 0 ) +
" - " + $( "#slider-range" ).slider( "values", 1 ) );
});
此代码位于先前显示的代码下方。
答案 0 :(得分:1)
答案 1 :(得分:0)
我使用openlayers v4.6.5,就这样解决了这个问题
layerChanged(layer){
layer.getSource().clear();
layer.getSource().refresh();
}