{"id":7077,"date":"2024-07-30T19:52:20","date_gmt":"2024-07-30T19:52:20","guid":{"rendered":"https:\/\/play.exploragame.com.ar\/?page_id=7077"},"modified":"2024-07-30T21:08:44","modified_gmt":"2024-07-30T21:08:44","slug":"mapa-la-boca-prueba","status":"publish","type":"page","link":"https:\/\/play.exploragame.com.ar\/index.php\/mapa-la-boca-prueba\/","title":{"rendered":"Mapa La boca prueba"},"content":{"rendered":"\t\t<div data-elementor-type=\"wp-page\" data-elementor-id=\"7077\" class=\"elementor elementor-7077\" data-elementor-post-type=\"page\">\n\t\t\t\t<div class=\"elementor-element elementor-element-dd18ae3 e-flex e-con-boxed e-con e-parent\" data-id=\"dd18ae3\" data-element_type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-6892a7f elementor-fixed elementor-widget elementor-widget-html\" data-id=\"6892a7f\" data-element_type=\"widget\" data-settings=\"{&quot;_position&quot;:&quot;fixed&quot;}\" data-widget_type=\"html.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t<!DOCTYPE html>\r\n<html lang=\"en\">\r\n<head>\r\n    <meta charset=\"UTF-8\">\r\n    <meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\">\r\n    <title>Contador con Funcionalidades<\/title>\r\n    <style>\r\n        #contador {\r\n            position: absolute;\r\n            top: 0;\r\n            left: 50%;\r\n            transform: translateX(-50%);\r\n            font-size: 24px;\r\n            font-weight: bold;\r\n            color: black;\r\n            background-color: transparent;\r\n            padding: 5px 10px;\r\n            border-radius: 5px;\r\n            z-index: 1000;\r\n        }\r\n        .tiempo-agotado {\r\n            position: fixed;\r\n            top: 0;\r\n            left: 0;\r\n            width: 100%;\r\n            height: 100%;\r\n            background-color: rgba(0, 0, 0, 0.5);\r\n            z-index: 2000;\r\n            display: none;\r\n            align-items: center;\r\n            justify-content: center;\r\n        }\r\n        .tiempo-agotado img {\r\n            width: 80%;\r\n            height: auto;\r\n        }\r\n    <\/style>\r\n<\/head>\r\n<body>\r\n\r\n<div id=\"contador\"><\/div>\r\n<div id=\"tiempoAgotado\" class=\"tiempo-agotado\">\r\n    <img decoding=\"async\" src=\"https:\/\/prueba.exploragame.com.ar\/wp-content\/uploads\/2024\/06\/Titulo-10.gif\" alt=\"Tiempo Agotado\">\r\n<\/div>\r\n\r\n<audio id=\"audioClock\" preload=\"auto\">\r\n    <source src=\"https:\/\/prueba.exploragame.com.ar\/wp-content\/uploads\/2024\/06\/clock-clock-sound-clock-clock-time-10343.mp3\" type=\"audio\/mpeg\">\r\n    Tu navegador no soporta el elemento de audio.\r\n<\/audio>\r\n\r\n<audio id=\"audioFailure\" preload=\"auto\">\r\n    <source src=\"https:\/\/prueba.exploragame.com.ar\/wp-content\/uploads\/2024\/06\/failure-1-89170.mp3\" type=\"audio\/mpeg\">\r\n    Tu navegador no soporta el elemento de audio.\r\n<\/audio>\r\n\r\n<script>\r\n    document.addEventListener(\"DOMContentLoaded\", function() {\r\n        var contador = document.getElementById(\"contador\");\r\n        var totalTime = 7200; \/\/ 1 minuto y 10 segundos\r\n\r\n        function startCountdown(startTime) {\r\n            var intervalId = setInterval(function() {\r\n                var currentTime = Math.floor(Date.now() \/ 1000);\r\n                var elapsedTime = currentTime - startTime;\r\n                var remainingTime = totalTime - elapsedTime;\r\n\r\n                if (remainingTime <= 0) {\r\n                    clearInterval(intervalId);\r\n                    contador.style.display = \"none\";\r\n                    document.getElementById(\"audioFailure\").play();\r\n                    document.getElementById(\"tiempoAgotado\").style.display = \"flex\";\r\n                    return;\r\n                }\r\n\r\n                var hours = Math.floor(remainingTime \/ 3600);\r\n                var minutes = Math.floor((remainingTime % 3600) \/ 60);\r\n                var seconds = remainingTime % 60;\r\n                contador.textContent = `${hours.toString().padStart(2, '0')}:${minutes.toString().padStart(2, '0')}:${seconds.toString().padStart(2, '0')}`;\r\n\r\n                if (remainingTime <= 10) {\r\n                    document.getElementById(\"audioClock\").play();\r\n                }\r\n\r\n                if (remainingTime <= 60) {\r\n                    contador.style.backgroundColor = remainingTime % 2 === 0 ? 'white' : '#ff5100';\r\n                }\r\n            }, 1000);\r\n        }\r\n\r\n        var storedStartTime = localStorage.getItem('startTime');\r\n        if (storedStartTime) {\r\n            startCountdown(parseInt(storedStartTime));\r\n        } else {\r\n            var startTime = Math.floor(Date.now() \/ 1000);\r\n            localStorage.setItem('startTime', startTime);\r\n            startCountdown(startTime);\r\n        }\r\n    });\r\n<\/script>\r\n\r\n<\/body>\r\n<\/html>\r\n\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-f0bb96b elementor-widget elementor-widget-html\" data-id=\"f0bb96b\" data-element_type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t<!DOCTYPE html>\n<html>\n<head>\n    <style>\n        .status-container {\n            font-size: 9px;\n            background-color: #f9f9f9;\n            border: 1px solid #ddd;\n            padding: 10px;\n            position: absolute;\n            top: 10px;\n            left: 10px;\n            z-index: 1000;\n        }\n        .status-item {\n            margin-bottom: 5px;\n        }\n    <\/style>\n<\/head>\n<body>\n    <div id=\"status\" class=\"status-container\">\n        <div id=\"postas-realizadas\" class=\"status-item\">Cantidad de postas realizadas: <span id=\"num-postas-realizadas\">0<\/span><\/div>\n        <div id=\"postas-faltantes\" class=\"status-item\">Cantidad de postas faltantes: <span id=\"num-postas-faltantes\">0<\/span><\/div>\n        <div id=\"distancia-recorrida\" class=\"status-item\">Distancia recorrida: <span id=\"distancia\">0.0<\/span> km<\/div>\n    <\/div>\n    <script src=\"status.js\"><\/script>\n<\/body>\n<\/html>\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-104359a elementor-widget-mobile__width-inherit elementor-widget elementor-widget-html\" data-id=\"104359a\" data-element_type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t<!DOCTYPE html>\r\n<html lang=\"en\">\r\n<head>\r\n    <meta charset=\"UTF-8\">\r\n    <meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\">\r\n    <title>Mapa con Haz de Luz<\/title>\r\n    <link rel=\"stylesheet\" href=\"https:\/\/unpkg.com\/leaflet@1.7.1\/dist\/leaflet.css\" \/>\r\n    <style>\r\n        body, html {\r\n            margin: 0;\r\n            padding: 0;\r\n            height: 100%;\r\n            width: 100%;\r\n        }\r\n        #map {\r\n            height: 100vh; \/* Altura completa de la ventana *\/\r\n            width: 100vw; \/* Ancho completo de la ventana *\/\r\n        }\r\n        .custom-control img {\r\n            width: 30px;\r\n            height: 30px;\r\n            background-color: white;\r\n            border-radius: 5px;\r\n            padding: 5px;\r\n            cursor: pointer;\r\n        }\r\n        .leaflet-top.leaflet-right {\r\n            top: 10px !important;\r\n        }\r\n        .icono-rotado {\r\n            transform-origin: center;\r\n        }\r\n        .alerta-distancia, .alerta-completa {\r\n            position: absolute;\r\n            top: 10px;\r\n            left: 50%;\r\n            transform: translateX(-50%);\r\n            background-color: rgba(255, 255, 255, 0.8);\r\n            padding: 10px;\r\n            border: 1px solid #ccc;\r\n            border-radius: 5px;\r\n            display: none;\r\n        }\r\n        .animacion-completo {\r\n            position: fixed;\r\n            top: 0;\r\n            left: 0;\r\n            width: 100%;\r\n            height: 100%;\r\n            background-color: transparent; \/* Fondo transparente *\/\r\n            z-index: 1000;\r\n            display: none;\r\n        }\r\n        .animacion-completo img {\r\n            position: absolute;\r\n            top: 50%;\r\n            left: 50%;\r\n            transform: translate(-50%, -50%);\r\n            max-width: 80%;\r\n            max-height: 80%;\r\n        }\r\n        \r\n    <\/style>\r\n<\/head>\r\n<body>\r\n\r\n<div id=\"map\"><\/div>\r\n<div id=\"alertaDistancia\" class=\"alerta-distancia\"><\/div>\r\n<div class=\"animacion-completo\" id=\"animacionCompleto\">\r\n    <img decoding=\"async\" src=\"https:\/\/prueba.exploragame.com.ar\/wp-content\/uploads\/2024\/06\/postas-Completas-1-1.gif\" alt=\"Postas Completas\">\r\n<\/div>\r\n<div id=\"contador\"><\/div>\r\n\r\n<audio id=\"audioAplauso\" preload=\"auto\">\r\n    <source src=\"https:\/\/prueba.exploragame.com.ar\/wp-content\/uploads\/2024\/06\/applause-2-31567.mp3\" type=\"audio\/mpeg\">\r\n    Tu navegador no soporta el elemento de audio.\r\n<\/audio>\r\n\r\n<audio id=\"audioFinalCountdown\" preload=\"auto\">\r\n    <source src=\"https:\/\/prueba.exploragame.com.ar\/wp-content\/uploads\/2024\/06\/clock-clock-sound-clock-clock-time-10343.mp3\" type=\"audio\/mpeg\">\r\n    Tu navegador no soporta el elemento de audio.\r\n<\/audio>\r\n\r\n<script src=\"https:\/\/unpkg.com\/leaflet@1.7.1\/dist\/leaflet.js\"><\/script>\r\n<script>\r\n    function initMap() {\r\n        var map = L.map('map', {\r\n            zoomControl: false \/\/ Desactivar los controles de zoom\r\n        }).setView([-34.6083, -58.3706], 13);\r\n\r\n        \/\/ A\u00f1adir capa de CartoDB\r\n        L.tileLayer('https:\/\/{s}.basemaps.cartocdn.com\/rastertiles\/voyager\/{z}\/{x}\/{y}{r}.png', {\r\n            maxZoom: 19,\r\n            attribution: '&copy; <a href=\"https:\/\/www.openstreetmap.org\/copyright\">OpenStreetMap<\/a> contributors &copy; <a href=\"https:\/\/carto.com\/attributions\">CARTO<\/a>'\r\n        }).addTo(map);\r\n\r\n        \/\/ Iconos personalizados\r\n        var iconoAzul = L.icon({\r\n            iconUrl: 'https:\/\/prueba.exploragame.com.ar\/wp-content\/uploads\/2024\/06\/marker-icon-Naranja.png',\r\n            iconSize: [25, 41],\r\n            iconAnchor: [12, 41],\r\n            popupAnchor: [1, -34],\r\n            shadowSize: [41, 41]\r\n        });\r\n\r\n        var iconoVerde = L.icon({\r\n            iconUrl: 'https:\/\/prueba.exploragame.com.ar\/wp-content\/uploads\/2024\/06\/marker-iconcorrect.png',\r\n            iconSize: [25, 41],\r\n            iconAnchor: [12, 41],\r\n            popupAnchor: [1, -34],\r\n            shadowSize: [41, 41]\r\n        });\r\n\r\n        \/\/ Array para almacenar todos los marcadores\r\n        var marcadores = [\r\n            { id: 'garibaldi', latlng: [-34.638900745159034, -58.363976207601816], icon: iconoAzul, url: 'https:\/\/play.exploragame.com.ar\/index.php\/garibaldi-grupal\/' },\r\n{ id: 'camiseta', latlng: [-34.63928954037971, -58.36294916547559], icon: iconoAzul, url: 'https:\/\/play.exploragame.com.ar\/index.php\/conventillo-grupal\/' },\r\n{ id: 'republica', latlng: [-34.63891378524038, -58.36357802152634], icon: iconoAzul, url: 'https:\/\/play.exploragame.com.ar\/index.php\/republica-grupal\/' },\r\n{ id: 'bombonera', latlng: [-34.636448288930815, -58.364312702869945], icon: iconoAzul, url: 'https:\/\/play.exploragame.com.ar\/index.php\/bombonera-grupal\/' },\r\n{ id: 'bomberos', latlng: [-34.63531483579502, -58.36150199183067], icon: iconoAzul, url: 'https:\/\/play.exploragame.com.ar\/index.php\/bomberos-grupal\/' },\r\n{ id: 'vicentewalter', latlng: [-34.63848025041062, -58.35740260107742], icon: iconoAzul, url: 'https:\/\/play.exploragame.com.ar\/index.php\/vicente-walter-1-grupal\/' },\r\n{ id: 'sanjuan', latlng: [-34.63674408217328, -58.35975806819989], icon: iconoAzul, url: 'https:\/\/play.exploragame.com.ar\/index.php\/san-juan-evangelista-grupal\/' },\r\n{ id: 'tangocaminito', latlng: [-34.639390048983394, -58.362301046108776], icon: iconoAzul, url: 'https:\/\/play.exploragame.com.ar\/index.php\/tango-caminito-grupal\/' },\r\n{ id: 'proa', latlng: [-34.639848655931964, -58.36182580758761], icon: iconoAzul, url: 'https:\/\/play.exploragame.com.ar\/index.php\/proa-grupal\/' },\r\n{ id: 'carajo', latlng: [-34.63944642206771, -58.361598795568185], icon: iconoAzul, url: 'https:\/\/play.exploragame.com.ar\/index.php\/carajo-grupal\/' },\r\n\r\n{ id: 'inundacion', latlng: [-34.63862529720231, -58.35873078255646], icon: iconoAzul, url: 'https:\/\/play.exploragame.com.ar\/index.php\/inundacion-grupal\/' },\r\n{ id: 'mural', latlng: [-34.63751880695779, -58.364606283694236], icon: iconoAzul, url: 'https:\/\/play.exploragame.com.ar\/index.php\/mural-diego-grupal\/' },\r\n{ id: 'quinquela', latlng: [-34.63922835231552, -58.360995298539834], icon: iconoAzul, url: 'https:\/\/play.exploragame.com.ar\/index.php\/la-boca-6-esp-quinquela-3-4-copy\/' },\r\n\r\n\r\n\r\n\r\n            \/\/ Agrega m\u00e1s marcadores seg\u00fan sea necesario\r\n        ];\r\n\r\n        var markerObjects = {};\r\n\r\n        \/\/ Crear marcadores\r\nmarcadores.forEach(function(posta) {\r\n    var icon = getStoredIcon(posta.id) || posta.icon;\r\n    var marker = L.marker(posta.latlng, { icon: icon }).addTo(map)\r\n        .on('click', function() {\r\n            if (userLocation) {\r\n                var distancia = map.distance(userLocation, marker.getLatLng());\r\n                if (distancia > 60) {\r\n                    marker.bindPopup(\"Esta posta est\u00e1 muy lejos de tu ubicaci\u00f3n\", { closeButton: false }).openPopup();\r\n                    mostrarAlertaDistancia();\r\n                } else {\r\n                    if (marker.options.icon.options.iconUrl === iconoVerde.options.iconUrl) {\r\n                        mostrarAlertaCompleta(); \/\/ Mostrar alerta \"Posta completa\"\r\n                    } else {\r\n                        window.open(posta.url, '_blank'); \/\/ Abrir en una nueva pesta\u00f1a\r\n                    }\r\n                }\r\n            } else {\r\n                \/\/ Si no se puede obtener la ubicaci\u00f3n del usuario, abrir la posta\r\n                window.open(posta.url, '_blank');\r\n            }\r\n        });\r\n    markerObjects[posta.id] = marker;\r\n});\r\n\r\n\/\/ Asume que estos elementos est\u00e1n disponibles en el documento\r\nvar postasRealizadasElement = document.getElementById('num-postas-realizadas');\r\nvar postasFaltantesElement = document.getElementById('num-postas-faltantes');\r\nvar distanciaElement = document.getElementById('distancia');\r\n\r\n\/\/ Variables globales para mantener el conteo de postas y la distancia\r\nvar postasRealizadas = 0;\r\nvar postasFaltantes = 0;\r\nvar distanciaRecorrida = 0.0;\r\n\r\n\r\n\/\/ Funci\u00f3n para mostrar la alerta de \"Posta completa\"\r\nfunction mostrarAlertaCompleta() {\r\n    var alerta = document.getElementById('alertaDistancia');\r\n    if (alerta) {\r\n        alerta.innerText = 'Posta completa'; \/\/ Cambiar el texto de la alerta\r\n        alerta.style.display = 'block';\r\n        console.log('Alerta \"Posta completa\" mostrada');\r\n        \r\n        setTimeout(function() {\r\n            alerta.style.display = 'none';\r\n            console.log('Alerta \"Posta completa\" oculta');\r\n            alerta.innerText = ''; \/\/ Limpiar el texto de la alerta\r\n        }, 3000); \/\/ Ocultar la alerta despu\u00e9s de 3 segundos\r\n    } else {\r\n        console.error('Elemento con id \"alertaDistancia\" no encontrado');\r\n    }\r\n}\r\n\r\n\r\n        \/\/ Funci\u00f3n para obtener el icono almacenado en cookies\r\n        function getStoredIcon(postaId) {\r\n            var storedIconUrl = getCookie(postaId);\r\n            if (storedIconUrl === 'iconoVerde') {\r\n                return iconoVerde;\r\n            } else {\r\n                return null; \/\/ Devolver null si no hay icono almacenado o es azul\r\n            }\r\n        }\r\n\r\n        \/\/ Funci\u00f3n para establecer el icono almacenado en cookies\r\n        function setStoredIcon(postaId, iconUrl) {\r\n            var expiryDate = new Date();\r\n            expiryDate.setTime(expiryDate.getTime() + (24 * 60 * 60 * 1000)); \/\/ Caducidad en 24 horas\r\n            document.cookie = `${postaId}=${iconUrl};expires=${expiryDate.toUTCString()};path=\/`;\r\n        }\r\n\r\n       \/\/ Funci\u00f3n para mostrar la alerta de distancia\r\n    function mostrarAlertaDistancia() {\r\n        var alerta = document.getElementById('alertaDistancia');\r\n        if (alerta) {\r\n            alerta.style.display = 'block';\r\n            console.log('Alerta mostrada');\r\n            \r\n            setTimeout(function() {\r\n                alerta.style.display = 'none';\r\n                console.log('Alerta oculta');\r\n            }, 3000); \/\/ Ocultar la alerta despu\u00e9s de 3 segundos\r\n        } else {\r\n            console.error('Elemento con id \"alertaDistancia\" no encontrado');\r\n        }\r\n    }\r\n\r\n\r\n\r\n        \/\/ Escuchar mensajes desde las p\u00e1ginas de postas\r\n        window.addEventListener('message', function(event) {\r\n            if (event.data.postaId && markerObjects[event.data.postaId]) {\r\n                markerObjects[event.data.postaId].setIcon(iconoVerde);\r\n                setStoredIcon(event.data.postaId, 'iconoVerde');\r\n                checkAllPostasResolved();\r\n            }\r\n        });\r\n        \r\n         \r\n\r\n    \/\/ Funci\u00f3n para bloquear el retroceso en el navegador\r\n    window.history.pushState(null, \"\", window.location.href);\r\n    window.onpopstate = function() {\r\n        window.history.pushState(null, \"\", window.location.href);\r\n    };\r\n\r\n        \/\/ Funci\u00f3n para verificar si todas las postas est\u00e1n resueltas\r\n        function checkAllPostasResolved() {\r\n            var todasResueltas = Object.values(markerObjects).every(function(marker) {\r\n                return marker.options.icon.options.iconUrl === iconoVerde.options.iconUrl;\r\n            });\r\n\r\n            if (todasResueltas) {\r\n                mostrarAnimacionCompleto();\r\n            }\r\n        }\r\n\r\n        \/\/ Funci\u00f3n para mostrar la animaci\u00f3n de postas completas y redirigir despu\u00e9s\r\n        function mostrarAnimacionCompleto() {\r\n            var animacion = document.getElementById('animacionCompleto');\r\n            animacion.style.display = 'block';\r\n            document.getElementById('audioAplauso').play();\r\n            setTimeout(function() {\r\n                window.location.href = \"https:\/\/play.exploragame.com.ar\/index.php\/el-puente-de-ariel-grupal\/\";\r\n            }, 5000); \/\/ Redirigir despu\u00e9s de 5 segundos\r\n        }\r\n\r\n        \/\/ Funci\u00f3n para obtener el valor de una cookie por su nombre\r\n        function getCookie(name) {\r\n            var nameEQ = name + \"=\";\r\n            var ca = document.cookie.split(';');\r\n            for (var i = 0; i < ca.length; i++) {\r\n                var c = ca[i];\r\n                while (c.charAt(0) === ' ') c = c.substring(1, c.length);\r\n                if (c.indexOf(nameEQ) === 0) return c.substring(nameEQ.length, c.length);\r\n            }\r\n            return null;\r\n        }\r\n\r\n        \/\/ Comprobar el estado de las postas al cargar la p\u00e1gina\r\n        document.addEventListener('DOMContentLoaded', checkAllPostasResolved);\r\n\r\n        \/\/ Agregar control de ubicaci\u00f3n\r\n        var iconoUbicacion = L.control({ position: 'topright' });\r\n\r\n        iconoUbicacion.onAdd = function(map) {\r\n            var div = L.DomUtil.create('div', 'custom-control');\r\n            div.innerHTML = '<img decoding=\"async\" src=\"https:\/\/prueba.exploragame.com.ar\/wp-content\/uploads\/2024\/06\/current-location-icon-1.png\" style=\"width: 30px; height: 30px; background-color: white; border-radius: 5px; padding: 5px; cursor: pointer;\">';\r\n\r\n            div.onclick = function() {\r\n                if (userLocation) {\r\n                    map.setView(userLocation, 18); \/\/ Ajusta el zoom aqu\u00ed (18 es un ejemplo)\r\n                }\r\n            };\r\n\r\n            return div;\r\n        };\r\n\r\n        iconoUbicacion.addTo(map); \/\/ A\u00f1ade el control al mapa\r\n\r\n        \/\/ Variable para almacenar la ubicaci\u00f3n del usuario\r\n        var userLocation = null;\r\n        var userMarker = null;\r\n        var userDirection = null;\r\n        var userCircle = null;\r\n\r\n        \/\/ Funci\u00f3n para actualizar la ubicaci\u00f3n y orientaci\u00f3n del usuario\r\n        function updateUserLocation(position) {\r\n            userLocation = [position.coords.latitude, position.coords.longitude];\r\n            var heading = position.coords.heading;\r\n\r\n            \/\/ Actualizar marcadores y verificar distancia solo cuando se selecciona una posta\r\n            Object.values(markerObjects).forEach(function(marker) {\r\n                if (marker.options.icon.options.iconUrl === iconoAzul.options.iconUrl && marker.isPopupOpen()) {\r\n                    var distancia = map.distance(userLocation, marker.getLatLng());\r\n                    if (distancia > 100) {\r\n                        mostrarAlertaDistancia();\r\n                    }\r\n                }\r\n            });\r\n\r\n            if (!userMarker) {\r\n                userMarker = L.marker(userLocation, {\r\n                    icon: L.divIcon({\r\n                        html: `<img decoding=\"async\" src=\"https:\/\/prueba.exploragame.com.ar\/wp-content\/uploads\/2024\/06\/Diseno-sin-titulo-2024-06-19T200146.381.png\" class=\"icono-rotado\" style=\"width: 60px; height: 60px; transform: rotate(${heading}deg);\" \/>`,\r\n                        iconSize: [60, 60],\r\n                        iconAnchor: [30, 30],\r\n                        className: 'icono-personalizado'\r\n                    })\r\n                }).addTo(map);\r\n            } else {\r\n                userMarker.setLatLng(userLocation);\r\n                userMarker._icon.querySelector('img').style.transform = `rotate(${heading}deg)`;\r\n            }\r\n\r\n            if (!userCircle) {\r\n                userCircle = L.circle(userLocation, {\r\n                    color: 'transparent', \/\/ Sin borde\r\n                    fillColor: '#004AAD',\r\n                    fillOpacity: 0.2,\r\n                    radius: 25 \/\/ Radio en metros\r\n                }).addTo(map);\r\n            } else {\r\n                userCircle.setLatLng(userLocation);\r\n            }\r\n        }\r\n\r\n        \/\/ Observar la posici\u00f3n del usuario en tiempo real\r\n        if (navigator.geolocation) {\r\n            navigator.geolocation.watchPosition(updateUserLocation, function(error) {\r\n                console.error('Error obteniendo la ubicaci\u00f3n: ', error);\r\n            }, { enableHighAccuracy: true });\r\n        } else {\r\n            alert('Tu navegador no soporta Geolocalizaci\u00f3n.');\r\n        }\r\n \r\n\/\/ Funci\u00f3n para ajustar el mapa para incluir todos los marcadores\r\nfunction fitMapToMarkers(map, markers) {\r\n    var bounds = new L.LatLngBounds();\r\n    markers.forEach(function(marker) {\r\n        bounds.extend(marker.getLatLng());\r\n    });\r\n    map.fitBounds(bounds);\r\n}\r\n\r\n\/\/ Llamar a la funci\u00f3n para ajustar la vista del mapa inicialmente\r\nfitMapToMarkers(map, Object.values(markerObjects));\r\n    \/\/ Funci\u00f3n para bloquear el retroceso en el navegador\r\n    window.history.pushState(null, \"\", window.location.href);\r\n    window.onpopstate = function() {\r\n        window.history.pushState(null, \"\", window.location.href);\r\n    };\r\n        \r\n    }\r\n\r\n\/\/ Funci\u00f3n para actualizar la cantidad de postas realizadas y faltantes\r\nfunction actualizarPostas(realizadas, faltantes) {\r\n    postasRealizadas = realizadas;\r\n    postasFaltantes = faltantes;\r\n    postasRealizadasElement.textContent = postasRealizadas;\r\n    postasFaltantesElement.textContent = postasFaltantes;\r\n}\r\n\r\n\/\/ Funci\u00f3n para actualizar la distancia recorrida\r\nfunction actualizarDistancia(distancia) {\r\n    distanciaRecorrida = distancia.toFixed(1);\r\n    distanciaElement.textContent = distanciaRecorrida;\r\n}\r\n\r\n\/\/ Exportar funciones para su uso en el c\u00f3digo principal\r\nwindow.actualizarPostas = actualizarPostas;\r\nwindow.actualizarDistancia = actualizarDistancia;\r\n\r\n\r\n\r\n    \/\/ Inicializar el mapa\r\n    initMap();\r\n    \r\n    \r\n\r\n    \/\/ Bloquear el retroceso en el historial\r\n    window.addEventListener('popstate', function(event) {\r\n        history.pushState(null, null, document.URL);\r\n    });\r\n    history.pushState(null, null, document.URL);\r\n<\/script>\r\n\r\n<\/body>\r\n<\/html>\r\n\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t","protected":false},"excerpt":{"rendered":"<p>Contador con Funcionalidades Tu navegador no soporta el elemento de audio. Tu navegador no soporta el elemento de audio. Cantidad de postas realizadas: 0 Cantidad de postas faltantes: 0 Distancia recorrida: 0.0 km Mapa con Haz de Luz Tu navegador no soporta el elemento de audio. Tu navegador no soporta el elemento de audio.<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"elementor_header_footer","meta":{"footnotes":""},"wf_page_folders":[],"class_list":["post-7077","page","type-page","status-publish"],"_links":{"self":[{"href":"https:\/\/play.exploragame.com.ar\/index.php\/wp-json\/wp\/v2\/pages\/7077","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/play.exploragame.com.ar\/index.php\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/play.exploragame.com.ar\/index.php\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/play.exploragame.com.ar\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/play.exploragame.com.ar\/index.php\/wp-json\/wp\/v2\/comments?post=7077"}],"version-history":[{"count":10,"href":"https:\/\/play.exploragame.com.ar\/index.php\/wp-json\/wp\/v2\/pages\/7077\/revisions"}],"predecessor-version":[{"id":7088,"href":"https:\/\/play.exploragame.com.ar\/index.php\/wp-json\/wp\/v2\/pages\/7077\/revisions\/7088"}],"wp:attachment":[{"href":"https:\/\/play.exploragame.com.ar\/index.php\/wp-json\/wp\/v2\/media?parent=7077"}],"wp:term":[{"taxonomy":"wf_page_folders","embeddable":true,"href":"https:\/\/play.exploragame.com.ar\/index.php\/wp-json\/wp\/v2\/wf_page_folders?post=7077"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}