Erweiterter Permalink

Der erweiterten Permalink (xlayers=) berücksichtig nur die Layer, die einen Parameter parmaId tragen..

Bei der Erzeugen des xlayers-Wertes werden zuerst zwei Listen erstellt:

  1. in die add-Liste kommen die Layer, die jetzt aktiviert sind, aber als visibility: false" konfiguriert waren;
  2. in die remove-Liste kommen die Layer, die jetzt deaktiviert sind, aber als visibility: 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.