Layer einblenden über externes Kontrollkästchen

Hallo,
mich würde einmal interessieren, wie man einen Layer außerhalb des (+) Layerswitchers
an einer anderen Stelle in oder außerhalb der Karte ein- oder ausblenden kann.

Hier ist so ein Beispiel, wo das wohl so ähnlich gemacht wird.
http://kunden.kulturlandschaft-informatik.de/jakobswege/

Ich habe über die Suche nichts gefunden, vielleicht weiß jemand wo sowas zu finden ist.

Danke für eure Hilfe.

Schau dir mal den openstreetbrowser an. der macht das genau so.
Aber im Prinzip sollte es kein Problem sein, wenn du javascript programmierst, musst du einfach nur auf die variablen in Openlayers zu greifen. die machen ja auch nichts anderes als den Layer visble oder invisble zu setzen. Du musst nur halt das Kästchen draußen so programmieren.

Vielen Dank für den Hinweis. Der macht sowas das stimmt.
Im Prinzip ist es bestimmt kein Problem, aber ich muss mir das alles an Codeschnipsel selbst beibringen.
Gibt es das vielleicht auch irgendwo zu sehen?
Danke

Ich hätte ein Beispiel. Aber ausser dass Du irgendwo von Layer.setVisibility() gebrauch machen musst und das an ein Eingabeelement mittels onclick/onchange o.ä. dranhängen, hilft das nicht viel.
Die Gestaltung von Bedienelementen ist doch recht individuell. Ausserdem kann das auch schnell beliebig kompliziert werden (z.B. ginge bei meinem Beispiel kein Permalink, weil die Häkchen zwar die Karten steuern können, aber nicht umgekehrt…)

Grüße, Max

Hi Max. das würde mir schon helfen.
Ich muss sehen, ob ich das verstehe und anpassen kann

Diese Funktion blendet also ein und aus, oder?

Das da ist ein Ankreuzfeld:

<input type="checkbox" name="overlay" value="mitgrenzen" id="mgrenzen"
onclick="toggleControl(this);" autocomplete="off" > Mit Grenzen

Eigentlich brauche ich nur den Wert von “value”, aber ich hab die Erfahrung gemacht, dass ungesetzte "ID"s und "name"s Ärger machen. “autocomplete=off” ist ein workaround für den Firefox, der lässt beim Neuladen der Seite die Häkchen gesetzt, was oft nützlich ist, aber hier eher doof (hier wird ja beim Aufruf der Seite der Zustand der Häkchen nicht abgefragt, auch ein Problem, das man mit dem mitgeliefertem Switcher nicht hat…).

onclick=“toggleControl(this);” heisst "wenn einer draufklickt, ruf die Funktion “toggleControl” auf und übergebe das angeklickte Objekt.

In der Funktion “toggleControl(element)” wird abgefragt, welches Häkchen angeklickt wurde. Das steht in “element.value”. Ausserdem steckt in “element.checked” noch ein Wert (true/false), der angibt, ob das Häkchen gerade gesetzt oder ungesetzt ist.

“Layer.setVisibility(true/false)” schaltet den Layer sichtbar/unsichtbar. Den Parameter hole ich aus der Zustand des Häkchens in “element.checked”. Der Layer muss von dieser Funktion aus erreichbar sein, deshalb sind die Layer in der Seite als globale Variablen definiert.

Übrigens: Falls es Dir nur darum geht, dass die Nutzer diesen LayerSwitcher hinter dem winzigen Plus nicht finden… Meine Testkandidaten waren immer damit zufrieden, dass man den LayerSwitcher beim ersten Aufruf der Karte einfach schon aufgeklappt startet. Das “-” zum wegklappen finden sie und erinnern sich auch daran, wie man den Switcher wieder aufklappt.

bau ich so ein:

var layer_switcher = new OpenLayers.Control.LayerSwitcher();
map.addControl(layer_switcher);
layer_switcher.maximizeControl();

Grüße, Max