Openlayers 3 开放层3:加载GEBCO WMS层

Openlayers 3 开放层3:加载GEBCO WMS层,openlayers-3,wms,mapserver,Openlayers 3,Wms,Mapserver,我正试图重写OL2中的一个小型扩展应用程序,它使用一个基本层来显示GEBCO WMS服务提供的海洋地形 当我这样做时: var gebco = new ol.layer.Image({ source: new ol.source.TileWMS( ({ url: 'http://www.gebco.net/data_and_products/gebco_web_services/web_map_service/mapserv?', params: {'LAYERS'

我正试图重写OL2中的一个小型扩展应用程序,它使用一个基本层来显示GEBCO WMS服务提供的海洋地形

当我这样做时:

var gebco = new ol.layer.Image({
     source: new ol.source.TileWMS( ({
     url: 'http://www.gebco.net/data_and_products/gebco_web_services/web_map_service/mapserv?',
     params: {'LAYERS': 'GEBCO_LATEST', 'VERSION':'1.1.1','FORMAT': 'image/png'}  }) ),
                serverType: 'mapserver'
               });
不添加该层。我已经看过萤火虫了 虽然请求似乎是正确的,但答案是Ol3设置了BBOX的白色瓷砖。如果我使用BBOX[-180,-90180,90](或任何其他地理范围)直接向地图服务器请求,服务器将正确返回图像。然后,如果我尝试使用params:{}(即,'BBOX':'-180,-90180,90',…)中的地理坐标强制图层,图层仍然不会加载

要显示图层,我只需执行以下操作:

 mapa = new ol.Map({
     target: 'map',
     renderer:'canvas',
     layers: [
            new ol.layer.Tile({ 
               source: new ol.source.MapQuest({layer: 'sat'}),
               visible: true
           })],
      view: new ol.View({
       center: ol.proj.transform([-10.0, 41.0],'EPSG:4326', 'EPSG:3857' ),
       zoom: 4
     })
  });
  mapa.addLayer(gebco);

如果能解释一下发生了什么,我将不胜感激。事实上,其余的WMS层添加正确,因此我认为它可能与这样的mapserver有关,但老实说,我对OL和map服务器不太熟悉。

此服务支持WebMercator还是只支持EPSG:4326?将视图投影更改为使用EPSG:4326,并在EPSG:4326中提供中心。在这种情况下(因此不需要转换),谢谢您的快速回答。如您所示,如果我使用视图投影EPSG:4326,则该层已正确添加,但现在的问题是附加的卫星层和功能用作web mercator。所以事实上我想把所有的都保存在EPSG:3857中。那么,如何加载和重新投影整个gebco WMS层,使其始终在3857中工作?您需要使用MapProxy等软件为您重新投影,因为服务提供商不提供该投影。或者您可以使用MapServer或GeoServer设置级联WMS。再次感谢!我将探讨这些解决方案。