2016-02-24 29 views
0

我有一個Open Layers 3實現從WMS數據饋送中讀取數據。打開圖層3檢測WMS Feed是否沒有工作

我注意到,如果WMS數據饋送關閉,我不會在瀏覽器端收到任何錯誤,它只是不會收到任何圖層。

在Open Layer 3中有沒有辦法檢測WMS調用是否不返回任何內容?

我試過實驗功能getState(),但是即使在壞的WMS調用中,也總是返回準備好

+0

您如何嘗試發送WMS'GetCapabilities'請求?如果你得到了迴應,那麼你的服務器沒問題。否則,你可以做出相應的反應。想法? –

+0

這也是我的想法。我希望有更直接的解決方案。 –

回答

0

我構建了一個函數,通過Ajax從GeoServer獲取圖層數據並解析響應,也許你可以添加「錯誤」配置來提醒用戶。

function getDataFromGeoServer(callback) { 
    $.ajax({ 
     url: "http://localhost:8080/geoserver/ows?service=wms&version=1.1.0&request=GetCapabilities", 
     type: 'GET', 
     success: function(response) { 
      var parser = new ol.format.WMSCapabilities(); 
      var result = parser.read(response); 

      var layersArray = result.Capability.Layer.Layer; 
      layersNameArray = []; 

      for(i=0;i<layersArray.length;i++){ 
       layersNameArray.push(layersArray[i].Name) 
      } 

      callback(layersNameArray); 

     } 
     error: function() { 
      /////// ADD ERROR CONFIG 
     } 
    }); 
} 
+0

是的,看起來很有用,我會試試看 –