2014-08-28 104 views
1

我在openlayers中有兩個圖層和切換器。初始化後立即我想設置第二層是可見的,但仍顯示第一個添加層。 我試過:setVisibility,setBaseLayer,但沒有成功。 下面是代碼部分:如何在openlayers中設置默認圖層2

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(新OpenLayers.Control.LayerSwitcher());

初始化後,我想:

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

回答

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 
}