【问题标题】:OpenLayers3 no refresh WMS in zoom-inOpenLayers3 在放大时不刷新 WMS
【发布时间】:2017-06-19 23:16:12
【问题描述】:

我有一个使用 OpenLayers3、GeoServer 和 ReactJS 制作的应用程序,显示了一些 WMS。并且由于一个奇怪的原因,只有当屏幕分辨率大于 1314 像素时,我才能在放大时刷新图像。很奇怪,如果分辨率例如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 刷新,但为什么只有 1314 像素以下!

任何帮助,谢谢。

【问题讨论】:

  • 您确定您的 WMS 服务器没有大小限制吗?
  • GeoServer 发送了正确的图像,我可以在 Chrome Dev 的“网络”中看到它们,但只有当屏幕尺寸不超过 1315px 时,应用才会刷新它。但是图像文件生成得很好。另外,geoserver 日志中没有错误消息。

标签: reactjs openlayers-3 geoserver


【解决方案1】:

改用平铺 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);

【讨论】:

猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-06-07
  • 2023-01-19
  • 1970-01-01
  • 2012-05-13
相关资源
最近更新 更多