Nahmd,

Sichtbarkeit von Layern

Wenn die Variable “layer” die Referenz auf ein Layer enthält:
→ “layer.setVisibility(true)” – macht den Layer sichtbar
→ “layer.setVisibility(false)” – macht den Layer unsichtbar.
→ “layer.getVisibility() – fragt die Sichtbarkeit ab.

Daraus zusammengebaut:
→ “layer.setVisibility (!layer.getVisibility())” – toggelt die Sichtbarkeit.

So mies die OpenLayers-Doku auch sein mag, diese Methoden der Layerklasse sind da erklärt!

Zugriff auf ein Layer

Damit ein Button ein Layerobjekt aufrufen kann, muss er das Objekt erst einmal finden.
Die einfachste, allerdings etwas unsaubere Version besteht in einer globalen Variable:


// !!!! ACHTUNG: AUSSERHALB DER INITIALISIERUNGSFUNKTION!!!!
var MEINLAYER;

Die wird beim Anlegen des Layers gesetzt:


map.addLayer (MEINLAYER = new OpenLayers.Layer.XXX ([…]));

oder in zwei Schritten:


// !!!! ACHTUNG: KEIN “var” VOR DIE ZUWEISUNG!!!!
MEINLAYER = new OpenLayers.Layer.XXX ([…]);
map.addLayer (MEINLAYER);

Der Button


<button onclick="MEINLAYER.setVisibility (true);">EIN</button>


<button onclick="MEINLAYER.setVisibility (false);">AUS</button>


<button onclick="MEINLAYER.setVisibility (!MEINLAYER.getVisibility());">EIN/AUS</button>

Das war es schon.

Gruß Wolf

Edit: URL aktualisiert.