diff --git a/frontend/src/composables/useGoogleMaps.ts b/frontend/src/composables/useGoogleMaps.ts index 07cd880..098a679 100644 --- a/frontend/src/composables/useGoogleMaps.ts +++ b/frontend/src/composables/useGoogleMaps.ts @@ -108,6 +108,14 @@ export function useGoogleMaps() { clearAllOverlaysForMap(map.value) } + // 🚀 OPTIMIZACIÓN DE CUOTA: Si el mapa ya existe, no crearlo de nuevo (ahorra cargos de Map Load) + if (map.value && container.contains(map.value.getDiv())) { + console.log('SIBU | Mapa ya inicializado, reutilizando instancia...'); + map.value.setCenter(center); + map.value.setZoom(zoom); + return; + } + try { map.value = new google.maps.Map(container, { center, diff --git a/frontend/src/views/MapView.vue b/frontend/src/views/MapView.vue index 21e7921..d6b8367 100644 --- a/frontend/src/views/MapView.vue +++ b/frontend/src/views/MapView.vue @@ -111,8 +111,14 @@ async function animateAndReload() { showETACard.value = false; routePhase.value = 'idle'; - // Recarga completa del mapa de Google - await initializeMap(); + // No es necesario recargar TODO el objeto del mapa, consume cuota innecesariamente. + // Limpiamos y reseteamos el estado visual + if (map.value) { + setCenter(mapStore.center.lat, mapStore.center.lng); + setZoom(mapStore.zoom); + } else { + await initializeMap(); + } setTimeout(() => { isBannerClosing.value = false;