首先,很抱歉我的英语不是我的母语。我想问你,你是否知道为什么我的地图不工作。我有两个与geoserver和OSM与OpenLayers一起工作的WMS。三个地图正在显示,问题是当OSM打开时,其他两个在背面,没有显示。这是我的代码。
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);非常感谢
由于我不能回答同样的问题,我编辑说我找到了解决方案,以防有人需要它,问题是一个接一个地插入图层,你必须同时添加所有图层。
map.addLayers([osm, towns, outline]);现在运行得很完美:D
发布于 2018-04-10 17:44:37
致谢给nmtoken和NorthLand。
要一次显示多个源,必须将它们提供给同一层,并用逗号分隔(不允许空格,否则将不起作用):
params:{'LAYERS': 'Test:TestImagery,Test:Vector'},一个有效的例子是:
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个平铺图像。
https://stackoverflow.com/questions/14815567
复制相似问题