Wybór nakładki mapy w Leaflet na podstawie zmiennych w URL

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)

Leave a comment

Your email address will not be published.