{"id":8784,"date":"2024-12-05T13:28:06","date_gmt":"2024-12-05T13:28:06","guid":{"rendered":"https:\/\/play.exploragame.com.ar\/?page_id=8784"},"modified":"2024-12-07T13:50:16","modified_gmt":"2024-12-07T13:50:16","slug":"san-telmo-grupal-dic-24","status":"publish","type":"page","link":"https:\/\/play.exploragame.com.ar\/index.php\/san-telmo-grupal-dic-24\/","title":{"rendered":"mapa san telmo grupal  7 dic"},"content":{"rendered":"\t\t<div data-elementor-type=\"wp-page\" data-elementor-id=\"8784\" class=\"elementor elementor-8784\" 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 en 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        \/\/ Verificamos si ya existe un tiempo de inicio guardado\r\n        var storedStartTime = localStorage.getItem('startTime');\r\n        if (storedStartTime) {\r\n            \/\/ Si ya existe un tiempo de inicio, lo usamos para calcular el tiempo restante\r\n            startCountdown(parseInt(storedStartTime));\r\n        } else {\r\n            \/\/ Si no existe un tiempo de inicio, lo establecemos y lo guardamos en localStorage\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-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           \r\n\r\n\r\n{ id: 'balconalrio', latlng: [-34.626646, -58.368385], icon: iconoAzul, url: 'https:\/\/play.exploragame.com.ar\/index.php\/san-telmo-rio-7-dic\/' },\r\n\r\n{ id: 'pedrodemendoza', latlng: [-34.62550268236567, -58.370907425651254], icon: iconoAzul, url: 'https:\/\/play.exploragame.com.ar\/index.php\/pedro-de-mendoza-san-telmo-7-dic\/' },\r\n\r\n{ id: 'iglesiarusa', latlng: [-34.62521575293641, -58.37002658798156], icon: iconoAzul, url: 'https:\/\/play.exploragame.com.ar\/index.php\/iglesia-rusa-san-telmo-7-dic\/' },\r\n\r\n\r\n{ id: 'pulperia', latlng: [-34.623609371532545, -58.37120300552671], icon: iconoAzul, url: 'https:\/\/play.exploragame.com.ar\/index.php\/pulperia-quilapan-dic-7\/' },\r\n\r\n{ id: 'conventillo', latlng: [-34.621332396819525, -58.371391833352405], icon: iconoAzul, url: 'https:\/\/play.exploragame.com.ar\/index.php\/conventillo-san-telmo-dic-7\/' },\r\n\r\n{ id: 'filete', latlng: [-34.620251435697575, -58.37294130077936], icon: iconoAzul, url: 'https:\/\/play.exploragame.com.ar\/index.php\/filete-san-telmo-7-dic\/' },\r\n\r\n{ id: 'arte', latlng: [-34.618843, -58.372954], icon: iconoAzul, url: 'https:\/\/play.exploragame.com.ar\/index.php\/bolivar-san-telmo-7-dic\/' },\r\n\r\n{ id: 'plaza', latlng: [-34.62047288607032, -58.37176680581252], icon: iconoAzul, url: 'https:\/\/play.exploragame.com.ar\/index.php\/plaza-dorrego-g7-dic\/' },\r\n\r\n{ id: 'ochava', latlng: [-34.61903814227963, -58.370140850593096], icon: iconoAzul, url: 'https:\/\/play.exploragame.com.ar\/index.php\/ochava-san-telmo-7-dic\/' },\r\n{ id: 'mercado', latlng: [-34.61942287743892, -58.37258479296434], icon: iconoAzul, url: 'https:\/\/play.exploragame.com.ar\/index.php\/mercado-san-telmo-7-dic\/' },\r\n\r\n{ id: 'viejoalmacen', latlng: [-34.61703563951839, -58.36985278127941], icon: iconoAzul, url: 'https:\/\/play.exploragame.com.ar\/index.php\/el-viejo-almacen-7-dic\/' },\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 > 50) {\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                    \/\/ Comprobamos si el marcador tiene la propiedad 'completado' que indica que la posta est\u00e1 completa\r\n                    if (marker.completado) {\r\n                        mostrarAlertaCompleta(); \/\/ Mostrar alerta \"Posta completa\"\r\n                    } else {\r\n                        \/\/ Si no est\u00e1 completa, abrimos la URL en una nueva pesta\u00f1a\r\n                        window.open(posta.url);\r\n                    }\r\n                }\r\n            } else {\r\n                \/\/ Si no se puede obtener la ubicaci\u00f3n del usuario, abrimos la posta\r\n                window.open(posta.url);\r\n            }\r\n        });\r\n    \r\n    \/\/ Asignamos una propiedad al marcador para saber si est\u00e1 completado (es decir, si es verde)\r\n    marker.completado = (icon === iconoVerde);\r\n    \r\n    markerObjects[posta.id] = marker;\r\n});\r\n\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\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\/san-telmo-grupal-starbuck-final\/\";\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\nvar iconoUbicacion = L.control({ position: 'bottomright' });\r\n\r\niconoUbicacion.onAdd = function(map) {\r\n    var div = L.DomUtil.create('div', 'custom-control');\r\n    \r\n    \/\/ Estilo para subir el \u00edcono\r\n    div.style.marginBottom = '50px'; \/\/ Ajusta el valor seg\u00fan sea necesario\r\n    \r\n    \/\/ Contenido del \u00edcono con estilo existente\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    \/\/ Acci\u00f3n del clic\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        \/\/ Inicializar el seguimiento de la ubicaci\u00f3n del usuario\r\nlet watchID;\r\n\r\nif (navigator.geolocation) {\r\n    \/\/ Configurar la observaci\u00f3n de la posici\u00f3n del usuario\r\n    watchID = navigator.geolocation.watchPosition(\r\n        function (position) {\r\n            updateUserLocation(position); \/\/ Actualizar ubicaci\u00f3n\r\n        },\r\n        function (error) {\r\n            console.error('Error obteniendo la ubicaci\u00f3n: ', error);\r\n            switch (error.code) {\r\n                case error.PERMISSION_DENIED:\r\n                    alert('Permiso de ubicaci\u00f3n denegado. Act\u00edvalo en la configuraci\u00f3n del dispositivo.');\r\n                    break;\r\n                case error.POSITION_UNAVAILABLE:\r\n                    alert('Ubicaci\u00f3n no disponible.');\r\n                    break;\r\n                case error.TIMEOUT:\r\n                    alert('El tiempo para obtener la ubicaci\u00f3n ha expirado.');\r\n                    break;\r\n                default:\r\n                    alert('Error desconocido al obtener la ubicaci\u00f3n.');\r\n                    break;\r\n            }\r\n        },\r\n        {\r\n            enableHighAccuracy: true,\r\n            maximumAge: 10000,\r\n            timeout: 20000,\r\n        }\r\n    );\r\n\r\n    \/\/ Limpieza de watchPosition en iOS al cerrar o recargar la p\u00e1gina\r\n    window.addEventListener('beforeunload', () => {\r\n        navigator.geolocation.clearWatch(watchID);\r\n    });\r\n} else {\r\n    alert('Tu navegador no soporta Geolocalizaci\u00f3n.');\r\n}\r\n\r\n\/\/ Funci\u00f3n para actualizar la ubicaci\u00f3n y orientaci\u00f3n del usuario\r\nfunction updateUserLocation(position) {\r\n    userLocation = [position.coords.latitude, position.coords.longitude];\r\n    const 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 (\r\n            marker.options.icon.options.iconUrl === iconoAzul.options.iconUrl &&\r\n            marker.isPopupOpen()\r\n        ) {\r\n            const 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 || 0}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 || 0}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 \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\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<div class=\"elementor-element elementor-element-d839ee5 e-flex e-con-boxed e-con e-parent\" data-id=\"d839ee5\" 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-28be849 elementor-widget elementor-widget-html\" data-id=\"28be849\" 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=\"es\">\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>Formulario Capit\u00e1n<\/title>\r\n    <style>\r\n        #captain-selection {\r\n            background-color: #ff5100;\r\n            color: #ffffff;\r\n            padding: 20px;\r\n            border-radius: 10px;\r\n            text-align: center;\r\n            position: fixed;\r\n            top: 50%;\r\n            left: 50%;\r\n            transform: translate(-50%, -50%);\r\n            z-index: 1000;\r\n            width: 80%;\r\n            max-width: 500px;\r\n            box-shadow: 0px 4px 8px rgba(0, 0, 0, 0.2);\r\n            display: flex;\r\n            flex-direction: column;\r\n            align-items: center;\r\n        }\r\n\r\n        button {\r\n            background-color: #ffffff;\r\n            color: #ff5100;\r\n            border: none;\r\n            padding: 10px 20px;\r\n            font-size: 16px;\r\n            border-radius: 5px;\r\n            cursor: pointer;\r\n            margin-top: 10px;\r\n        }\r\n\r\n        #chat-widget {\r\n            display: none;\r\n        }\r\n    <\/style>\r\n<\/head>\r\n<body>\r\n\r\n<div id=\"captain-selection\">\r\n    <p>\u00bfQui\u00e9n ser\u00e1 el Capit\u00e1n? <\/br> Selecciona la opci\u00f3n correspondiente:<\/p>\r\n    <form id=\"captain-form\">\r\n        <label>\r\n            <input type=\"radio\" name=\"captain_choice\" value=\"captain\" id=\"is_captain\"> Soy el Capit\u00e1n\r\n        <\/label>\r\n        <br>\r\n        <label>\r\n            <input type=\"radio\" name=\"captain_choice\" value=\"not_captain\" id=\"not_captain\"> Ya elegimos Capit\u00e1n (no soy yo)\r\n        <\/label>\r\n        <br><br>\r\n        <button type=\"submit\">Enviar<\/button>\r\n    <\/form>\r\n<\/div>\r\n\r\n<div id=\"chat-widget\"><\/div>\r\n\r\n<script>\r\n    const THREE_HOURS = 3 * 60 * 60 * 1000; \/\/ 3 horas en milisegundos\r\n\r\n    \/\/ Al cargar la p\u00e1gina\r\n    window.addEventListener(\"DOMContentLoaded\", function() {\r\n        const captainSelection = document.getElementById(\"captain-selection\");\r\n        const chatWidget = document.getElementById(\"chat-widget\");\r\n\r\n        \/\/ Verifica el estado y el tiempo guardado en localStorage\r\n        const savedStatus = JSON.parse(localStorage.getItem(\"captainStatus\"));\r\n        const now = new Date().getTime();\r\n\r\n        if (savedStatus && now - savedStatus.timestamp < THREE_HOURS) {\r\n            if (savedStatus.isCaptain) {\r\n                captainSelection.style.display = \"none\";\r\n                chatWidget.style.display = \"block\";\r\n                loadChatWidget();\r\n            } else {\r\n                captainSelection.style.display = \"none\";\r\n                chatWidget.style.display = \"none\";\r\n            }\r\n        }\r\n    });\r\n\r\n    \/\/ Funci\u00f3n para cargar el widget de chat de Tawk.to\r\n    function loadChatWidget() {\r\n        const script = document.createElement(\"script\");\r\n        script.type = \"text\/javascript\";\r\n        script.src = \"https:\/\/embed.tawk.to\/6639414f07f59932ab3cb02f\/1ht7qe846\"; \/\/ ID de Tawk.to\r\n        script.async = true;\r\n        document.getElementsByTagName(\"head\")[0].appendChild(script);\r\n    }\r\n\r\n    \/\/ Manejo del formulario\r\n    document.getElementById(\"captain-form\").addEventListener(\"submit\", function(event) {\r\n        event.preventDefault();\r\n\r\n        const isCaptainChecked = document.getElementById(\"is_captain\").checked;\r\n        const notCaptainChecked = document.getElementById(\"not_captain\").checked;\r\n\r\n        if (isCaptainChecked) {\r\n            localStorage.setItem(\"captainStatus\", JSON.stringify({ isCaptain: true, timestamp: new Date().getTime() }));\r\n            document.getElementById(\"captain-selection\").style.display = \"none\";\r\n            document.getElementById(\"chat-widget\").style.display = \"block\";\r\n            loadChatWidget();\r\n        } else if (notCaptainChecked) {\r\n            localStorage.setItem(\"captainStatus\", JSON.stringify({ isCaptain: false, timestamp: new Date().getTime() }));\r\n            document.getElementById(\"captain-selection\").style.display = \"none\";\r\n            document.getElementById(\"chat-widget\").style.display = \"none\";\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\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. Mapa con Haz de Luz Tu navegador no soporta el elemento de audio. Tu navegador no soporta el elemento de audio. Formulario Capit\u00e1n \u00bfQui\u00e9n ser\u00e1 el Capit\u00e1n? Selecciona la opci\u00f3n correspondiente: Soy el Capit\u00e1n Ya elegimos &#8230; <a title=\"mapa san telmo grupal  7 dic\" class=\"read-more\" href=\"https:\/\/play.exploragame.com.ar\/index.php\/san-telmo-grupal-dic-24\/\" aria-label=\"Leer m\u00e1s sobre mapa san telmo grupal  7 dic\">Leer m\u00e1s<\/a><\/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":[16],"class_list":["post-8784","page","type-page","status-publish"],"_links":{"self":[{"href":"https:\/\/play.exploragame.com.ar\/index.php\/wp-json\/wp\/v2\/pages\/8784","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=8784"}],"version-history":[{"count":71,"href":"https:\/\/play.exploragame.com.ar\/index.php\/wp-json\/wp\/v2\/pages\/8784\/revisions"}],"predecessor-version":[{"id":9160,"href":"https:\/\/play.exploragame.com.ar\/index.php\/wp-json\/wp\/v2\/pages\/8784\/revisions\/9160"}],"wp:attachment":[{"href":"https:\/\/play.exploragame.com.ar\/index.php\/wp-json\/wp\/v2\/media?parent=8784"}],"wp:term":[{"taxonomy":"wf_page_folders","embeddable":true,"href":"https:\/\/play.exploragame.com.ar\/index.php\/wp-json\/wp\/v2\/wf_page_folders?post=8784"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}