如何在openlayers 2中设置默认图层可见

时间:2014-08-28 07:20:54

标签: javascript dictionary openlayers

我在openlayers中有两层和切换器。在init之后立即我想设置第二层是可见的,但仍然显示第一个添加层。 我试过:setVisibility,setBaseLayer,但没有成功。 以下是代码的一部分:

var gmapLayer = new OpenLayers.Layer.Google("Google sattelite", { type: google.maps.MapTypeId.SATELLITE, visibility: false });
var gmapStreetLayer = new OpenLayers.Layer.Google("Google streets", { visibility: false });
map.addLayer(gmapLayer);
map.addLayer(gmapStreetLayer);

map.addControl(new OpenLayers.Control.LayerSwitcher());

初学后我尝试了:

map.setBaseLayer(selLayer);
//or
selLayer.setVisibility(true);

1 个答案:

答案 0 :(得分:0)

好的,我发现了问题。我使用了setBaseLayer错误,因为调用了数组,请参阅:

var selLayer = map.getLayersByName(selectedLayer);
if (selLayer !== null) {        
    map.setBaseLayer(selLayer);        //<---Wrong
}

正确的解决方案是:

var selLayer = map.getLayersByName(selectedLayer);
if (selLayer !== null) {        
    map.setBaseLayer(selLayer[0]);        //<--Good
}