Nota: Después de publicar, quizás necesite actualizar la caché de su navegador para ver los cambios.
- Firefox/Safari: Mantenga presionada la tecla Shift mientras pulsa el botón Actualizar, o presiona Ctrl+F5 o Ctrl+R (⌘+R en Mac)
- Google Chrome: presione Ctrl+Shift+R (⌘+Shift+R en Mac)
- Internet Explorer/Edge: mantenga presionada Ctrl mientras pulsa Actualizar, o presione Ctrl+F5
- Opera: Presiona Ctrl+F5.
(function () {
'use strict';
function parseAreas(value) {
return (value || '').split('/').map(function (area) {
return area.split(';').map(function (pair) {
var parts = pair.trim().split(',').map(function (item) { return parseFloat(item); });
return parts.length === 2 && !isNaN(parts[0]) && !isNaN(parts[1]) ? parts : null;
}).filter(Boolean);
}).filter(function (area) { return area.length >= 3; });
}
function patchLeaflet() {
if (!window.L || !window.L.map || window.L.__marargAreasPatched) return;
var originalMap = window.L.map;
window.L.map = function (element, options) {
var map = originalMap.call(this, element, options);
var areas = parseAreas(element.getAttribute('data-areas'));
if (areas.length) {
var bounds = window.L.latLngBounds([]);
areas.forEach(function (area, index) {
var polygon = window.L.polygon(area, {
color: '#5146d8', weight: 2,
fillColor: index % 2 ? '#8bc7c1' : '#8b7de8', fillOpacity: 0.22
}).addTo(map);
polygon.bindPopup((element.getAttribute('data-label') || 'Área de distribución') + ' · Área ' + (index + 1));
bounds.extend(polygon.getBounds());
});
if (bounds.isValid()) map.fitBounds(bounds, { padding: [24, 24], maxZoom: 6 });
}
return map;
};
window.L.__marargAreasPatched = true;
}
var timer = window.setInterval(function () {
if (window.L) { patchLeaflet(); window.clearInterval(timer); }
}, 50);
}());