Fix user location visibility and improve map zoom to include both user and optimal stop

This commit is contained in:
2026-03-01 14:41:27 -05:00
parent 9d448d3012
commit b504ecc550

View File

@ -568,6 +568,10 @@ async function highlightOptimalStopForRoute() {
} catch (e) { } catch (e) {
console.warn('🤖 JARVIS: Falló la geolocalización automática:', e); console.warn('🤖 JARVIS: Falló la geolocalización automática:', e);
} }
} else {
// Si ya tenemos coordenadas, nos aseguramos de que el marcador esté dibujado
// ya que el flujo principal (limpiarMapa) lo borra.
reDrawUserMarker();
} }
if (!userCoords.value || routeStore.selectedRouteStops.length === 0) { if (!userCoords.value || routeStore.selectedRouteStops.length === 0) {
@ -589,11 +593,20 @@ async function highlightOptimalStopForRoute() {
const stopObj = paradaCercana.value as BusStop; const stopObj = paradaCercana.value as BusStop;
console.log(`🤖 JARVIS: Parada óptima detectada: ${stopObj.name}`); console.log(`🤖 JARVIS: Parada óptima detectada: ${stopObj.name}`);
// Restaurar centrado y zoom en la parada óptima para que el usuario la vea claramente // PASO 0: Asegurar que el usuario y la parada óptima sean visibles al mismo tiempo
setCenter(stopObj.latitude, stopObj.longitude); const bounds = new google.maps.LatLngBounds();
setZoom(17); // Zoom más cercano para ver la parada y alrededores bounds.extend(new google.maps.LatLng(userCoords.value.lat, userCoords.value.lng));
bounds.extend(new google.maps.LatLng(stopObj.latitude, stopObj.longitude));
// Aplicar zoom inteligente con padding para no cortar los marcadores
map.value?.fitBounds(bounds, {
top: 100, // espacio para el buscador/navbar
bottom: 250, // espacio para el ETACard que saldrá luego
left: 80,
right: 80
});
// Añadir el PULSO NARANJA // Añadir el PULSO NARANJA (Parada)
if (optimalStopPulse.value && typeof optimalStopPulse.value.setMap === 'function') { if (optimalStopPulse.value && typeof optimalStopPulse.value.setMap === 'function') {
optimalStopPulse.value.setMap(null); optimalStopPulse.value.setMap(null);
// Clear listeners for the old pulse marker // Clear listeners for the old pulse marker