// Sdílené podkladové mapy. Výchozí je OpenStreetMap, volbu drží cookie mapovyPodklad. (function (global) { var COOKIE = 'mapovyPodklad'; var VYCHOZI = 'osm'; var API_KEY = 'Uw8gm6JPZpnT3GfNnh8adARpQI-WBGy6QaY9g6VhD74'; function ctiCookie(jmeno) { var shoda = document.cookie.match(new RegExp('(?:^|; )' + jmeno + '=([^;]*)')); if (!shoda) { return ''; } try { return decodeURIComponent(shoda[1]); } catch (e) { return shoda[1]; } } function klic() { var hodnota = ctiCookie(COOKIE); if (hodnota === 'mapycz' || hodnota === 'mapycz-letecka') { return hodnota; } return VYCHOZI; } function vytvor() { return { osm: L.tileLayer('https://tile.openstreetmap.org/{z}/{x}/{y}.png', { maxZoom: 19, attribution: '© OpenStreetMap', }), mapycz: L.tileLayer('https://api.mapy.cz/v1/maptiles/basic/256/{z}/{x}/{y}?apikey=' + API_KEY, { minZoom: 0, maxZoom: 19, attribution: '© Seznam.cz a.s. a další', }), 'mapycz-letecka': L.tileLayer('https://api.mapy.cz/v1/maptiles/aerial/256/{z}/{x}/{y}?apikey=' + API_KEY, { minZoom: 0, maxZoom: 19, attribution: '© Seznam.cz a.s. a další', }), }; } function vychozi(vrstvy) { return vrstvy[klic()] || vrstvy[VYCHOZI]; } function popisky(vrstvy) { return { 'Mapy.cz': vrstvy.mapycz, 'Mapy.cz (letecká)': vrstvy['mapycz-letecka'], 'OpenStreetMap': vrstvy.osm, }; } function jeMapyCz(vrstva, vrstvy) { return vrstva === vrstvy.mapycz || vrstva === vrstvy['mapycz-letecka']; } function logo(map, vrstvy) { var control = new (L.Control.extend({ options: { position: 'bottomleft' }, onAdd: function () { var container = L.DomUtil.create('div'); var link = L.DomUtil.create('a', '', container); link.setAttribute('href', 'http://mapy.cz/'); link.setAttribute('target', '_blank'); link.innerHTML = 'Mapy.cz'; L.DomEvent.disableClickPropagation(link); return container; }, }))(); function obnov() { var aktivni = false; map.eachLayer(function (layer) { if (jeMapyCz(layer, vrstvy)) { aktivni = true; } }); if (aktivni && !control._map) { control.addTo(map); } else if (!aktivni && control._map) { control.remove(); } } map.on('baselayerchange', obnov); obnov(); } global.MapovePodklady = { klic: klic, vytvor: vytvor, vychozi: vychozi, popisky: popisky, logo: logo, }; })(window);