【问题标题】:Open Layers 3 Reading ECMWF WMS layer打开第 3 层读取 ECMWF WMS 层
【发布时间】:2016-02-21 22:02:11
【问题描述】:

我正在努力让 WMS 提要工作,这里解释了提要:

https://software.ecmwf.int/wiki/display/MACSUP/Accessing+public+CAMS+WMS+products

检索图层的示例 URL 是:

https://apps.ecmwf.int/wms/?token=public&request=GetMap&layers=composition_aod550,grid,foreground&width=600&bbox=-180,-90,180,90

但是,我不确定如何让 Open Layers 3 WMS API 读取该层,我目前正在这样做:

var layer_to_return = new ol.layer.Tile({
  preload: Infinity,
  visible: true,
  source: new ol.source.TileWMS(({
    url: 'https://apps.ecmwf.int/wms/',
    params: {'LAYERS': 'composition_aod550', 'token':'public'},
    serverType: 'geoserver',
    crossOrigin: 'anonymous'
    }))
});

map.addLayer(layer_to_return);

这似乎包含了大部分 URL,除了 'grid' 元素和边界框。我不确定为什么它不会在 OL3 中呈现。

【问题讨论】:

    标签: openlayers-3 wms


    【解决方案1】:

    我刚刚通过调整两件事来完成这项工作:

    • HTTPS 给了我一个跨域问题
    • 然后,瓦片服务器返回未知投影(URL 请求默认为 EPSG:3587)

    如果它对你有帮助,作为参考,我通过以下方式解决了这两个问题:将你的代码添加到 ol3 地图;试图加载它;使用浏览器开发工具查看正在生成的磁贴请求的 URL;在单独的选项卡中打开其中一个 URL;读取 WMS 服务器返回的 XML 中的错误消息。

    我查看了您链接到的网站上的功能文件,它似乎表明 EPSG:4326 可以工作。所以我尝试了这个,它成功了:

    var layer = new ol.layer.Tile({
        preload: Infinity,
        visible: true,
        source: new ol.source.TileWMS({
            url: 'http://apps.ecmwf.int/wms/',
            params: {'LAYERS': 'composition_aod550', 'token':'public'},
            serverType: 'geoserver',
            crossOrigin: 'anonymous',
            projection: 'EPSG:4326'
        }),
        opacity: 0.5
    });
    

    请注意,我添加了 0.5 的不透明度。这样您就可以将其覆盖在另一个地图源上以查看国家边界,例如开放的街道地图。

    我在这里放了一个工作示例,具有透明度:

    http://www.freytag.org.uk/snippets/cams.html

    【讨论】:

    • 谢谢你,原来这只是投影。我没有发现投影要求,所以很好找到,非常感谢。由于某种原因,他们的 https 被重定向到 http。我的网站是 https,因此会导致混合内容错误。
    • 很高兴工作。 HTTPS 令人沮丧,特别是因为它看起来(如果手动工作)HTTPS 重定向到 HTTP,HTTP 重定向到 PNG,然后您可以使用 HTTPS 请求...您可以联系他们并要求他们解决这个问题 - 似乎足够合理他们会?我认为他们需要做的就是将 'Access-Control-Allow-Origin: *' 从 HTTPS 端点添加到他们的响应标头中。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-05-12
    • 1970-01-01
    相关资源
    最近更新 更多