首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用OSM显示WMS

使用OSM显示WMS
EN

Stack Overflow用户
提问于 2013-02-11 23:44:55
回答 1查看 1.1K关注 0票数 1

首先,很抱歉我的英语不是我的母语。我想问你,你是否知道为什么我的地图不工作。我有两个与geoserver和OSM与OpenLayers一起工作的WMS。三个地图正在显示,问题是当OSM打开时,其他两个在背面,没有显示。这是我的代码。

代码语言:javascript
复制
function init(){ 

        var map = new OpenLayers.Map({
            div: "map",
            projection: new OpenLayers.Projection("EPSG:900913"),
            allOverlays: true,

        });
        //Geoserver WMS
        var towns = new OpenLayers.Layer.WMS( "Towns",
                "http://XXXX/geoserver/isle/wms", {layers: 'isleofwight:Towns', transparent: true}, {visibility: false},{isBaseLayer: false});
        map.addLayer(towns);

        var outline = new OpenLayers.Layer.WMS( "Outline",
            "http://XXXX/geoserver/isle/wms", {layers: 'isleofwight:Outline', transparent: true}, {visibility: false},{isBaseLayer: false});
        map.addLayer(outline);

        var osm = new OpenLayers.Layer.OSM("Open Street Map");
        map.addLayer(osm);

非常感谢

由于我不能回答同样的问题,我编辑说我找到了解决方案,以防有人需要它,问题是一个接一个地插入图层,你必须同时添加所有图层。

代码语言:javascript
复制
map.addLayers([osm, towns, outline]);

现在运行得很完美:D

EN

回答 1

Stack Overflow用户

发布于 2018-04-10 17:44:37

致谢给nmtoken和NorthLand。

要一次显示多个源,必须将它们提供给同一层,并用逗号分隔(不允许空格,否则将不起作用):

代码语言:javascript
复制
params:{'LAYERS': 'Test:TestImagery,Test:Vector'},

一个有效的例子是:

代码语言:javascript
复制
var sUrl = 'https://ahocevar.com/geoserver/wms';
var oParam = JSON.parse({"LAYERS": "ne:NE1_HR_LC_SR_W_DR,topp:states", "TILED": true});

var wmsLayer = new TileLayer({
    extent: [-13884991, 2870341, -7455066, 6338219],
    source: new TileWms({
      url: sUrl,
      params: oParam,
      serverType: "geoserver",
      transition: 0
    }),
    isBaseLayer: true
  });

this.map.addLayer(wmsLayer);

这将在同一层上同时渲染2个平铺图像。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14815567

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档