Openlayers 3 开放层3:加载GEBCO WMS层
我正试图重写OL2中的一个小型扩展应用程序,它使用一个基本层来显示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'
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。再次感谢!我将探讨这些解决方案。