OpenLayers3在放大时不刷新WMS

时间:2017-06-19 23:16:13

标签: reactjs openlayers-3 geoserver

我有一个使用OpenLayers3,GeoServer和ReactJS制作的应用程序,显示了一些WMS。由于一个奇怪的原因,当我放大时,如果屏幕分辨率比1314px宽,我就无法刷新图像。这很奇怪,如果分辨率是例如1310,我可以正常放大和缩小,并且每次变焦后都会刷新wms,但是,如果分辨率大于1315px,则只能缩小工作,但不能放大。

之前有人曾尝试过这样的事情吗?

这就是我调用wms(ReactJS)的方式:

    var map = this.state.map;
    var wmsLayer = new ol.layer.Image({
        source: new ol.source.ImageWMS({
            url: 'http://spif.XX.XX:8080/geoserver/cite/wms',
            params: {'LAYERS': 'cite:biodent_clientes'},
            serverType: 'geoserver'
        })
    });
    this.state.layersMaServer = wmsLayer;
    map.addLayer(wmsLayer);

GeoServer没有问题,WMS在每次放大或缩小后都能很好地加载,但我不知道为什么在放大时没有在客户端刷新(broser) )。如果我稍微缩小一点,那么用正确的wms刷新图像,但为什么只有1314px以下!

任何帮助,谢谢。

1 个答案:

答案 0 :(得分:1)

改为使用Tiled WMS:

var map = this.state.map;
var wmsLayer = new ol.layer.Tile({
    source: new ol.source.TileWMS({
        url: 'http://spif.XX.XX:8080/geoserver/cite/wms',
        params: {'LAYERS': 'cite:biodent_clientes'},
        serverType: 'geoserver'
    })
});
this.state.layersMaServer = wmsLayer;
map.addLayer(wmsLayer);