Open Layers 3 读取ECMWF WMS层
Open Layers 3 Reading ECMWF WMS layer
我正在努力让 WMS 提要工作,提要在此处解释:
https://software.ecmwf.int/wiki/display/MACSUP/Accessing+public+CAMS+WMS+products
检索图层的示例URL是:
但是,我不确定如何让 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 中呈现。
我只是通过调整两件事来使它工作:
- HTTPS 给我带来了跨域问题
- 然后,切片服务器返回未知投影(URL 请求默认为 EPSG:3587)
如果它对您有帮助,供参考,我通过以下方式解决的两个问题:将您的代码添加到 ol3 地图;试图加载它;使用浏览器开发工具查看正在生成的图块请求的 URL;在单独的选项卡中打开其中一个 URL;读取从 WMS 服务器返回的 XML 中的错误消息。
我查看了您 link 访问的网站上的功能文件,它似乎表明 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 的不透明度。这样您就可以将其覆盖在另一个地图源上以查看国家/地区边界,例如开放的街道地图。
我在这里放了一个工作示例,具有透明度:
我正在努力让 WMS 提要工作,提要在此处解释:
https://software.ecmwf.int/wiki/display/MACSUP/Accessing+public+CAMS+WMS+products
检索图层的示例URL是:
但是,我不确定如何让 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 中呈现。
我只是通过调整两件事来使它工作:
- HTTPS 给我带来了跨域问题
- 然后,切片服务器返回未知投影(URL 请求默认为 EPSG:3587)
如果它对您有帮助,供参考,我通过以下方式解决的两个问题:将您的代码添加到 ol3 地图;试图加载它;使用浏览器开发工具查看正在生成的图块请求的 URL;在单独的选项卡中打开其中一个 URL;读取从 WMS 服务器返回的 XML 中的错误消息。
我查看了您 link 访问的网站上的功能文件,它似乎表明 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 的不透明度。这样您就可以将其覆盖在另一个地图源上以查看国家/地区边界,例如开放的街道地图。
我在这里放了一个工作示例,具有透明度: