fix: geolocalización GPS corregida con fallback por coordenadas

This commit is contained in:
2026-05-23 03:54:05 -06:00
parent 8296839ec7
commit e69fb36c49
4 changed files with 43 additions and 8 deletions

View File

@@ -1,7 +1,7 @@
[
{ "colonia": "Zona Centro", "routeId": "RUTA-01", "horarioEstimado": "Matutino (06:30 - 07:15)" },
{ "colonia": "Las Arboledas", "routeId": "RUTA-01", "horarioEstimado": "Matutino (07:00 - 07:30)" },
{ "colonia": "Sector Norte", "routeId": "RUTA-02", "horarioEstimado": "Matutino (06:30 - 07:10)" },
{ "colonia": "Sector Norte - Av. Tecnológico", "routeId": "RUTA-02", "horarioEstimado": "Matutino (06:30 - 07:10)" },
{ "colonia": "San Juanico", "routeId": "RUTA-03", "horarioEstimado": "Matutino (06:45 - 07:15)" },
{ "colonia": "Los Olivos", "routeId": "RUTA-04", "horarioEstimado": "Matutino (07:00 - 07:40)" },
{ "colonia": "Rancho Seco", "routeId": "RUTA-05", "horarioEstimado": "Vespertino (14:15 - 15:00)" },

View File

@@ -81,6 +81,20 @@ def crear_domicilio(data: schemas.DomicilioCreate,
db: Session = Depends(get_db)):
colonia_key = data.colonia.lower()
colonia_info = simulator.COLONIAS.get(colonia_key)
if not colonia_info:
# Buscar por similitud parcial
for key, value in simulator.COLONIAS.items():
if key in colonia_key or colonia_key in key:
colonia_info = value
break
if not colonia_info:
# Buscar por route_id si viene en el nombre
ruta, _ = simulator.encontrar_ruta_por_coordenadas(data.lat, data.lng)
if ruta:
colonia_info = next(
(v for v in simulator.COLONIAS.values() if v["routeId"] == ruta["routeId"]),
None
)
if not colonia_info:
raise HTTPException(status_code=404, detail="Colonia no encontrada en el sistema")
dom = models.Domicilio(direccion=data.direccion, colonia=data.colonia,