OMT Router — Enrutado e Isócronas en Navegador (OpenMapTiles)
Resumen
Librería de routing client-side (omt-router, npm) que construye un grafo desde vector tiles OpenMapTiles en Web Workers y ejecuta algoritmos de ruta en el navegador, sin backend de routing. Calcula rutas óptimas e isócronas (polígonos de alcanzabilidad) para car, pedestrian y bicycle — usuarios de los mismos tiles usados en el basemap (provider-agnostic, reduce overhead de red/operación).
Uso (features reales)
- Motores:
bidirectional-astar,adaptive-barrier,delta-stepping,ultra-dijkstra. - Selector automático de motor en runtime (entrenado con benchmarks) con fallbacks conservadores; forzar motor vía
engineIdoauto. - Modos de transporte:
car,pedestrian,bicycle. - IsoPHAST para isócronas.
- Endpoint snapping con guard de calidad configurable (
maxAcceptableSnapDistanceM). - Worker pool
PowerPool+ caché de parseoPowerCache. - Control ligero para MapLibre (integración rápida en mapas web).
- Live demo: https://abelvm.github.io/omt-router/example/
Patrones / Arquitectura
- Unión de tiles sin costuras mediante clipping Liang–Barsky para nodos frontera bit-idénticos entre tiles.
- Compensación de rendimiento vs fiabilidad mediante selección flexible de motor.
- Sin terceros: construcción de grafo y ruta 100% en cliente.
Pitfalls
- Requiere tiles vectoriales compatibles con el esquema OpenMapTiles.
- Los motores difieren en paralelismo/fit:
adaptive-barrierydelta-steppingestán listos para ejecución paralela en grafos densos;bidirectional-astarbrilla en rutas largas/esparcidas. Verbenchmark/README.md.
Verificación
- Cargar el ejemplo y trazar una ruta + una isócrona para cada modo; verificar unión de tiles en fronteras.
Referencia
- NPM:
omt-router(Licencia AGPL v3). Repo: https://github.com/AbelVM/omt-router