diff --git a/examples/example.html b/examples/example.html
index b9e98cdf7c..38263a4b6c 100644
--- a/examples/example.html
+++ b/examples/example.html
@@ -24,7 +24,8 @@
"http://www2.dmsolutions.ca/cgi-bin/mswms_gmap",
{layers: "bathymetry,land_fn,park,drain_fn,drainage," +
"prov_bound,fedlimit,rail,road,popplace",
- transparent: "true", format: "image/png" });
+ transparent: "true", format: "image/png" },
+ { displayInLayerSwitcher: false });
map.addLayers([ol_wms, jpl_wms, dm_wms]);
map.addControl(new OpenLayers.Control.LayerSwitcher());
diff --git a/lib/OpenLayers/Control/LayerSwitcher.js b/lib/OpenLayers/Control/LayerSwitcher.js
index 89453e90bb..93ccd1c537 100644
--- a/lib/OpenLayers/Control/LayerSwitcher.js
+++ b/lib/OpenLayers/Control/LayerSwitcher.js
@@ -103,49 +103,51 @@ OpenLayers.Control.LayerSwitcher.prototype =
var layer = this.map.layers[i];
var baseLayer = layer.isBaseLayer;
- if (!baseLayer) {
- containsOverlays = true;
+ if (baseLayer || layer.displayInLayerSwitcher) {
+
+ if (!baseLayer) {
+ containsOverlays = true;
+ }
+
+ // only check a baselayer if it is *the* baselayer, check data
+ // layers if they are visible
+ var checked = (baseLayer) ? (layer == this.map.baseLayer)
+ : layer.getVisibility();
+
+ // create input element
+ var inputElem = document.createElement("input");
+ inputElem.id = "input_" + layer.name;
+ inputElem.name = (baseLayer) ? "baseLayers" : layer.name;
+ inputElem.type = (baseLayer) ? "radio" : "checkbox";
+ inputElem.value = layer.name;
+ inputElem.checked = checked;
+ inputElem.defaultChecked = checked;
+ inputElem.layer = layer;
+ inputElem.control = this;
+ Event.observe(inputElem, "mouseup",
+ this.onInputClick.bindAsEventListener(inputElem));
+
+ // create span
+ var labelSpan = document.createElement("span");
+ labelSpan.innerHTML = layer.name;
+ labelSpan.style.verticalAlign = (baseLayer) ? "bottom" : "baseline";
+ Event.observe(labelSpan, "click",
+ this.onInputClick.bindAsEventListener(inputElem));
+ // create line break
+ var br = document.createElement("br");
+
+
+ var groupArray = (baseLayer) ? this.baseLayerInputs
+ : this.dataLayerInputs;
+ groupArray.push(inputElem);
+
+
+ var groupDiv = (baseLayer) ? this.baseLayersDiv
+ : this.dataLayersDiv;
+ groupDiv.appendChild(inputElem);
+ groupDiv.appendChild(labelSpan);
+ groupDiv.appendChild(br);
}
-
- // only check a baselayer if it is *the* baselayer, check data
- // layers if they are visible
- var checked = (baseLayer) ? (layer == this.map.baseLayer)
- : layer.getVisibility();
-
- // create input element
- var inputElem = document.createElement("input");
- inputElem.id = "input_" + layer.name;
- inputElem.name = (baseLayer) ? "baseLayers" : layer.name;
- inputElem.type = (baseLayer) ? "radio" : "checkbox";
- inputElem.value = layer.name;
- inputElem.checked = checked;
- inputElem.defaultChecked = checked;
- inputElem.layer = layer;
- inputElem.control = this;
- Event.observe(inputElem, "mouseup",
- this.onInputClick.bindAsEventListener(inputElem));
-
- // create span
- var labelSpan = document.createElement("span");
- labelSpan.innerHTML = layer.name;
- labelSpan.style.verticalAlign = (baseLayer) ? "bottom" : "baseline";
- Event.observe(labelSpan, "click",
- this.onInputClick.bindAsEventListener(inputElem));
- // create line break
- var br = document.createElement("br");
-
-
- var groupArray = (baseLayer) ? this.baseLayerInputs
- : this.dataLayerInputs;
- groupArray.push(inputElem);
-
-
- var groupDiv = (baseLayer) ? this.baseLayersDiv
- : this.dataLayersDiv;
- groupDiv.appendChild(inputElem);
- groupDiv.appendChild(labelSpan);
- groupDiv.appendChild(br);
-
}
// if no overlays, dont display the overlay label
diff --git a/lib/OpenLayers/Layer.js b/lib/OpenLayers/Layer.js
index 543112ffe9..59481ee0f0 100644
--- a/lib/OpenLayers/Layer.js
+++ b/lib/OpenLayers/Layer.js
@@ -36,6 +36,11 @@ OpenLayers.Layer.prototype = {
* @type boolean */
alpha: false,
+ /** should the layer's name appear in the layer switcher?
+ *
+ * @type boolean */
+ displayInLayerSwitcher: true,
+
// OPTIONS
/** @type Array */