Actualizar js/layout.js
This commit is contained in:
14
js/layout.js
14
js/layout.js
@@ -1,5 +1,4 @@
|
|||||||
// === RASTREADOR FANTASMA GPS (MODO DE CAMINO) ===
|
// === RASTREADOR FANTASMA GPS (MODO DE CAMINO) ===
|
||||||
// Se ejecuta silenciosamente cada 30 segundos
|
|
||||||
setInterval(async () => {
|
setInterval(async () => {
|
||||||
if (!localStorage.getItem("token") || localStorage.getItem("role") !== "operario") return;
|
if (!localStorage.getItem("token") || localStorage.getItem("role") !== "operario") return;
|
||||||
|
|
||||||
@@ -8,7 +7,6 @@ setInterval(async () => {
|
|||||||
: 'https://integrarepara-api.integrarepara.es';
|
: 'https://integrarepara-api.integrarepara.es';
|
||||||
|
|
||||||
try {
|
try {
|
||||||
// 1. Buscamos el ID del estado "De Camino"
|
|
||||||
const resSt = await fetch(`${TRACK_API}/statuses`, { headers: { "Authorization": `Bearer ${localStorage.getItem("token")}` } });
|
const resSt = await fetch(`${TRACK_API}/statuses`, { headers: { "Authorization": `Bearer ${localStorage.getItem("token")}` } });
|
||||||
const dataSt = await resSt.json();
|
const dataSt = await resSt.json();
|
||||||
if (!dataSt.ok) return;
|
if (!dataSt.ok) return;
|
||||||
@@ -16,16 +14,14 @@ setInterval(async () => {
|
|||||||
const caminoSt = dataSt.statuses.find(s => s.name.toLowerCase().includes('camino'));
|
const caminoSt = dataSt.statuses.find(s => s.name.toLowerCase().includes('camino'));
|
||||||
if (!caminoSt) return;
|
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 resSvc = await fetch(`${TRACK_API}/services/active`, { headers: { "Authorization": `Bearer ${localStorage.getItem("token")}` } });
|
||||||
const dataSvc = await resSvc.json();
|
const dataSvc = await resSvc.json();
|
||||||
if (!dataSvc.ok) return;
|
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));
|
const enRuta = dataSvc.services.filter(s => String(s.raw_data?.status_operativo) === String(caminoSt.id));
|
||||||
|
|
||||||
if (enRuta.length > 0) {
|
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) => {
|
navigator.geolocation.getCurrentPosition(async (pos) => {
|
||||||
const lat = pos.coords.latitude;
|
const lat = pos.coords.latitude;
|
||||||
const lng = pos.coords.longitude;
|
const lng = pos.coords.longitude;
|
||||||
@@ -37,9 +33,7 @@ setInterval(async () => {
|
|||||||
body: JSON.stringify({ lat, lng })
|
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) {
|
} catch (e) { }
|
||||||
// Falla en silencio para no molestar al operario
|
}, 15000); // 15 segundos para que sea súper fluido en el mapa
|
||||||
}
|
|
||||||
}, 30000); // 30 segundos
|
|
||||||
Reference in New Issue
Block a user