【问题标题】:Open Layers 3 detect if WMS feed hasn't worked打开第 3 层检测 WMS 提要是否无效
【发布时间】:2016-02-24 18:11:37
【问题描述】:

我有一个 Open Layers 3 实现,它从 WMS 数据馈送中读取数据。

我注意到,如果 WMS 数据馈送出现故障,我不会在浏览器端收到任何错误,只是不会接收任何图层。

Open Layers 3 中是否有办法检测 WMS 调用是否不返回任何内容?

我已经尝试过实验功能getState(),但即使在错误的 WMS 调用中,它也总是返回 ready

【问题讨论】:

  • 您尝试发送 WMS GetCapabilities 请求怎么样?如果您得到响应,那么您的服务器就可以了。否则,您可以做出相应的反应。想法?
  • 这也是我的想法。我希望那里可能有更直接的解决方案。

标签: openlayers-3 wms


【解决方案1】:

我构建了一个函数来通过 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
        }
    });
}

【讨论】:

  • 是的,看起来很有用,我试试看
猜你喜欢
  • 1970-01-01
  • 2016-04-27
  • 2018-09-05
  • 2015-08-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-05-20
相关资源
最近更新 更多