Wtyczka L.Control.Permalink obsługuje tylko warstwy podkładu (layers), natomiast nie potrafi sterować warstwami nakładek (overlays). Szybkie rozwiązanie polega na dodaniu do URL zmiennej z nazwą nakładki, a następnie odczytanie jej w JavaScript i nałożenie.
Funkcja odczytująca wszystkie zmienne i pakująca je do tablicy:
function getUrlVars() { var vars = {}; var parts = window.location.href.replace(/[?&]+([^=&]+)=([&]*)/gi, function(m,key,value) { vars[key] = value; }); return vars; }
Ustalenie domyślnej nakładki w przypadku braku zmiennej w URL. Sprawdzenie czy zmienna istnieje, jej odczyt i dodanie odpowiedniej nakładki wg. nazwy odczytanej z URL:
var overlay = 'warstwa_domyslna'; if (getUrlVars()['overlay']) { overlay = getUrlVars()['overlay'] }; map.addLayer(window[overlay]);
Można jeszcze poprawić obsługę błędów, bo w tym przypadku skrypt wysypie się, jeśli nazwa nakładki podana w url będzie błędna.
Comments (0)