diff --git a/src/pages/mapas/FiltroRutas.svelte b/src/pages/mapas/FiltroRutas.svelte index d1ddb53..2b9674c 100644 --- a/src/pages/mapas/FiltroRutas.svelte +++ b/src/pages/mapas/FiltroRutas.svelte @@ -7,6 +7,7 @@ export let codigo; export let ver_buses; export let ver_paraderos; + export let loading = false; let operadores = [] let lineas = [] @@ -82,5 +83,11 @@ + {#if loading} +
+ Loading... +
+ {/if} + diff --git a/src/pages/mapas/Rutas.svelte b/src/pages/mapas/Rutas.svelte index ec41415..8f581a6 100644 --- a/src/pages/mapas/Rutas.svelte +++ b/src/pages/mapas/Rutas.svelte @@ -37,6 +37,8 @@ let markers_paraderos = [] let markers_buses = [] let timeInterval = null + let fileproto = null + let loading_proto = false onMount(() => { create_map() @@ -161,25 +163,37 @@ return; } - const buses = await getBusesLinea(id_linea) + loading_proto = true + try { + const { fileproto: nuevoNombre, buses } = await getBusesLinea(id_linea) + if (nuevoNombre !== fileproto) { + // guardo el nombre del archivo proto + fileproto = nuevoNombre + + // 1. eliminar marcadores anteriores + markers_buses.forEach(marker => marker.remove()) - // 1. eliminar marcadores anteriores - markers_buses.forEach(marker => marker.remove()) - - // 2. crear marcadores - for (let mark of buses) { - const { latitude: lat, longitude: lng } = mark - const marker = L.marker([lat, lng], { icon: iconAutobus }).addTo(myMap) - const html = `${mark.Patente_vehiculo}
Velocidad: ${mark.speed}` - - marker.bindTooltip(html) - markers_buses.push(marker) + // 2. crear marcadores + for (let mark of buses) { + const { latitude: lat, longitude: lng } = mark + const marker = L.marker([lat, lng], { icon: iconAutobus }).addTo(myMap) + const html = `${mark.Patente_vehiculo}
Velocidad: ${mark.speed}` + + marker.bindTooltip(html) + markers_buses.push(marker) + } + } + } catch (error) { + console.log({ error }) + } finally { + loading_proto = false } - // actualizar posicion de buses cada 30 segundos + // actualizar posicion de buses cada 45 segundos if (!timeInterval) { - timeInterval = globalThis.setInterval(() => onMostrarBuses(true), 30000) + timeInterval = globalThis.setInterval(() => onMostrarBuses(true), 45000) } + } @@ -209,7 +223,9 @@ bind:codigo={codigo} bind:ver_buses={ver_buses} bind:ver_paraderos={ver_paraderos} + loading={loading_proto} /> + {#if id_operador && codigo}