我正在努力让WMS提要工作,这里解释了提要:
https://software.ecmwf.int/wiki/display/MACSUP/Accessing+public+CAMS+WMS+products
检索图层的示例网址是:
但是,我不知道如何让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);
除了'grid'元素和边界框之外,其中似乎包含大部分URL。我不确定为什么它不会在OL3中渲染。
答案 0 :(得分:1)
我通过调整两件事来解决这个问题:
如果它可以帮助您,作为参考,我得到的两个:将您的代码添加到ol3地图;试图加载它;使用浏览器开发工具查看正在生成的磁贴请求的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的不透明度。这样您就可以将其覆盖在另一个地图源上以查看国家/地区边界,例如打开的街道地图。
我在这里提出了一个有效的例子,透明度: