diff --git a/js/layout.js b/js/layout.js index 426379d..ced4284 100644 --- a/js/layout.js +++ b/js/layout.js @@ -1,5 +1,4 @@ // === RASTREADOR FANTASMA GPS (MODO DE CAMINO) === -// Se ejecuta silenciosamente cada 30 segundos setInterval(async () => { if (!localStorage.getItem("token") || localStorage.getItem("role") !== "operario") return; @@ -8,7 +7,6 @@ setInterval(async () => { : 'https://integrarepara-api.integrarepara.es'; try { - // 1. Buscamos el ID del estado "De Camino" const resSt = await fetch(`${TRACK_API}/statuses`, { headers: { "Authorization": `Bearer ${localStorage.getItem("token")}` } }); const dataSt = await resSt.json(); if (!dataSt.ok) return; @@ -16,16 +14,14 @@ setInterval(async () => { const caminoSt = dataSt.statuses.find(s => s.name.toLowerCase().includes('camino')); if (!caminoSt) return; - // 2. Consultamos si tenemos algún servicio activo ahora mismo const resSvc = await fetch(`${TRACK_API}/services/active`, { headers: { "Authorization": `Bearer ${localStorage.getItem("token")}` } }); const dataSvc = await resSvc.json(); if (!dataSvc.ok) return; - // 3. Filtramos los que están "De Camino" const enRuta = dataSvc.services.filter(s => String(s.raw_data?.status_operativo) === String(caminoSt.id)); if (enRuta.length > 0) { - // 4. Si estamos en ruta, encendemos el GPS y enviamos las coordenadas + // Alta velocidad activada (enableHighAccuracy: false) navigator.geolocation.getCurrentPosition(async (pos) => { const lat = pos.coords.latitude; const lng = pos.coords.longitude; @@ -37,9 +33,7 @@ setInterval(async () => { body: JSON.stringify({ lat, lng }) }); } - }, () => {}, { enableHighAccuracy: true, timeout: 10000 }); // Alta precisión para que el movimiento sea real + }, () => {}, { enableHighAccuracy: false, timeout: 10000, maximumAge: 30000 }); } - } catch (e) { - // Falla en silencio para no molestar al operario - } -}, 30000); // 30 segundos \ No newline at end of file + } catch (e) { } +}, 15000); // 15 segundos para que sea súper fluido en el mapa \ No newline at end of file