2017-06-19 42 views
0

我有一個應用程序,用OpenLayers3,GeoServer和ReactJS,顯示一些WMS。出於奇怪的原因,如果屏幕分辨率比1314px更寬,我無法在只放大時刷新圖像。很奇怪,如果分辨率是1310,我可以正常放大和縮小,每次變焦後wms都會刷新,但是,如果分辨率大於1315px,只能縮小,但不縮放英寸OpenLayers3不刷新WMS在放大

以前有人試過這樣的東西嗎?

這是我如何調用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)刷新。如果我縮小一點點,那麼圖像刷新正確的WM,但爲什麼只有1314px!

任何幫助,謝謝。

+0

你確定你的WMS服務器有沒有大小限制? – oterral

+0

GeoServer發送正確的圖像,我可以在Chrome Dev的「網絡」中看到它們,但只有當屏幕大小不超過1315px時,纔會刷新它。但圖像文件生成良好。另外,geoserver日誌中沒有錯誤消息。 – pmirnd

回答

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); 
+0

我嘗試了很多次使用瓷磚沒有成功。我也做了這個線程︰https://stackoverflow.com/questions/44662136/openlayers-geoserver-tilewms-are-displaying-wrong?noredirect=1#comment76393502_44662136(我剛剛測試你的代碼,這是相同的行爲) – pmirnd