(function () { var caja = document.getElementById("mapa-osm"), d = document.getElementById("lugares"); if (!caja || !d || !window.L) return; d = JSON.parse(d.textContent); caja.innerHTML = ""; caja.classList.add("vivo"); var mapa = L.map(caja, { scrollWheelZoom: false, worldCopyJump: true }); L.tileLayer("https://tile.openstreetmap.org/{z}/{x}/{y}.png", { maxZoom: 18, attribution: '© OpenStreetMap' }).addTo(mapa); function icono(t) { if (t === "o" || t === "a") { var s = t === "o" ? 34 : 22; return L.divIcon({ className: "pin pin-" + t, html: '', iconSize: [s, s], iconAnchor: [s / 2, s / 2], popupAnchor: [0, -s / 2] }); } return L.divIcon({ className: "pin pin-" + t, html: "", iconSize: [18, 18], iconAnchor: [9, 9], popupAnchor: [0, -9] }); } function esc(s) { var e = document.createElement("span"); e.textContent = s; return e.innerHTML; } d.p.forEach(function (p) { var h = "" + esc(p.n) + "
" + esc(d.ley[p.t]); if (p.u) h += '
' + esc(p.ul) + ""; h += '
' + esc(d.ver) + ""; L.marker([p.la, p.lo], { icon: icono(p.t), title: p.n, zIndexOffset: p.t === "o" ? 1000 : 0 }).bindPopup(h).addTo(mapa); }); mapa.fitBounds(d.s[0][1]); var nav = document.createElement("div"); nav.className = "saltos"; d.s.forEach(function (s) { var b = document.createElement("button"); b.type = "button"; b.textContent = s[0]; b.onclick = function () { mapa.flyToBounds(s[1], { duration: .8 }); }; nav.appendChild(b); }); caja.parentNode.insertBefore(nav, caja); })();