Der erweiterten Permalink (xlayers=) berücksichtig nur die Layer, die einen Parameter
tragen..
parmaId
Bei der Erzeugen des xlayers
-Wertes werden zuerst zwei Listen erstellt:
- in die
add
-Liste kommen die Layer, die jetzt aktiviert sind, aber alsvisibility: false
" konfiguriert waren; - in die
remove
-Liste kommen die Layer, die jetzt deaktiviert sind, aber alsvisibility: true
konfiguriert waren.
Die Ids der Layer in den Listen werden jeweils sortiert und aneinandergehängt;
sodann werden add
-Ids und remove
-Ids mit -
verbunden.
Ist die Liste der remove
-Ids leer, entfällt das -
.
Durch diese Konstruktion bleiben XPermalinks auch dann gültig, wenn in der Karte Layer eingefügt, gestrichen oder umsortiert werden.
Zum Selbermachen: HTML-Code mit Erklärung.
Der XPermalink
verträgt sich auch mit dem
OpenLayers.Control.LayerChanger
:
der LayerChanger
kann nicht nur Layers, sondern auch Controls aktivieren und
deaktivieren, und XPermalink
kann dann den
Aktivierungstatus von Controls im Permalink speichern.