There can be situations where you don't want a base layer and only want a bunch of layers to work on.
Imagine an online GIS editor where users can add and remove layers but they are not obligated to have an always visible one.
This recipe shows how we can easily avoid the requirement of setting a base layer within the map.
<div id="ch1_avoid_baselayer" style="width: 100%; height: 100%;"></div>
OpenLayers.Map
instance and set the allOverlays
property to true
:// Create the map using the specified DOM element var map = new OpenLayers.Map("ch1_avoid_baselayer", { allOverlays: true });
// Add a WMS layer var wms = new OpenLayers.Layer.WMS("OpenLayers WMS Basic","http://vmap0.tiles.osgeo.org/wms/vmap0", { layers: 'basic' }); map.addLayer(wms); // Add a WMS layer var topo = new OpenLayers.Layer.WMS("USA Topo Maps", "http://terraservice.net/ogcmap.ashx", { layers: "DRG" }, { opacity: 0.5 }); map.addLayer(topo); // Add LayerSwitcher control map.addControl(new OpenLayers.Control.LayerSwitcher());
// Set view to zoom maximum map extent // NOTE: This will fail if there is no base layer defined map.setCenter(new OpenLayers.LonLat(-100, 40), 5);
When the map's property allOverlays
is set to true
, the map ignores the isBaseLayer
property of the layers.
If you expand the layer switcher control, you will see that it contains two overlay layers, no base layer, which you can show or hide and, if desired, leave a blank map without layers.
In addition, in this recipe we have used the map.setCenter()
method, which needs a position, an OpenLayers.LonLat
instance, and a zoom level to work.
3.15.26.221