Aplicación web móvil para planear y seguir rutas compatibles con vehículos pesados. La primera cobertura es una beta para Guanajuato, con énfasis en el corredor León-Silao-Irapuato-Salamanca-Celaya.
La aplicación no garantiza autorización legal de tránsito. Combina las restricciones disponibles en TomTom con un catálogo local versionado y siempre debe ceder ante la señalización y la autoridad vial.
- Planificador con búsqueda de lugares en México.
- Búsqueda de establecimientos, calles, cruces y direcciones exactas mediante TomTom Search.
- Selección manual de origen y destino directamente sobre el mapa con geocodificación inversa.
- Perfiles para rabón, torton, tractocamión y doble remolque.
- Peso, peso por eje, número de ejes, altura, ancho, longitud y carga peligrosa.
- Alternativas con distancia, tiempo, tráfico y detección de peaje.
- Validación contra restricciones locales aprobadas.
- Navegación GPS en primer plano, cámara con seguimiento y rumbo, Wake Lock, voz y recálculo por desvío.
- Tema automático, claro y oscuro con estilo nocturno del mapa.
- Enlaces compartibles de origen y destino.
- Formulario de reportes georreferenciados enviado por correo.
- PWA instalable en Android y iPhone.
- Node.js 22 o posterior.
- Cuenta gratuita de TomTom.
- Cuenta de Resend y dominio verificado para recibir sugerencias.
- Vercel para el despliegue recomendado.
npm install
cp .env.example .env.local
npm run devConfigura como mínimo TOMTOM_API_KEY y NEXT_PUBLIC_TOMTOM_API_KEY. La clave privada debe tener asignados Routing, Search/Geocoding y los productos de mapas que se utilizarán. Sin estas claves el mapa utiliza un fondo CARTO de demostración y la búsqueda queda limitada a los principales municipios de Guanajuato; el cálculo de rutas queda bloqueado para evitar resultados inseguros.
La búsqueda utiliza language=es-419, countrySet=MX e índices POI,PAD,Addr,Str,Xstr,Geo. Si TomTom responde con un error, la aplicación lo muestra como error del proveedor en lugar de ocultarlo como una lista de ciudades. En Vercel, las variables deben estar disponibles en el entorno de Production y se necesita un nuevo deployment después de modificarlas.
Para sugerencias configura RESEND_API_KEY, SUGGESTIONS_FROM_EMAIL y SUGGESTIONS_TO_EMAIL. Turnstile y Upstash son opcionales localmente y recomendados en producción.
npm run lint
npm test
npm run build
npm start- Importa el repositorio en Vercel.
- Registra las variables de
.env.examplepara producción y previews. - Restringe la clave pública de TomTom a los dominios de Vercel y al dominio final.
- Configura alertas de cuota en TomTom.
- Habilita Upstash para que los límites funcionen entre todas las funciones serverless.
- Verifica la recepción de correo antes de publicar el botón de sugerencias.
La PWA necesita HTTPS para GPS, Wake Lock y service worker. Vercel proporciona HTTPS automáticamente.
Fuentes de referencia:
- Red Nacional de Caminos, INEGI
- Red Vial del Estado de Guanajuato, IPLANEG
- NOM-012-SCT-2-2017 y reclasificaciones publicadas en el DOF
- Reglamentos y gacetas municipales
El procedimiento para incorporar restricciones está documentado en src/data/README.md. El catálogo inicia vacío porque no se deben presentar reglas de demostración como restricciones oficiales.
- Requiere internet y la PWA abierta para navegación.
- La navegación sigue el GPS, orienta la cámara hacia el rumbo y permite recentrarla; requiere la PWA abierta y pantalla activa.
- No ofrece navegación con pantalla bloqueada ni mapas sin conexión.
- No incluye cuentas, historial, rastreo de flotas o panel administrativo.
- Las cuotas gratuitas limitan el número de búsquedas, rutas, mosaicos y recálculos.
- La búsqueda exacta de calles y negocios requiere que la clave de TomTom tenga Search/Geocoding habilitado.
- La cobertura legal municipal depende de recopilar y verificar publicaciones oficiales.
- El service worker no guarda mosaicos de mapas de terceros.
La posición GPS permanece en el navegador, salvo cuando se envía para calcular una ruta o se adjunta voluntariamente a un reporte. Los perfiles se guardan en localStorage. No se almacena historial de rutas ni se exige registro.