Valhalla — motor de routing e isócronas (corrige org y API)
⚠️ Corrección 2026-09-05 (auditoría stars-explorer): imagen Docker bajo org equivocada (
mapbox), atribución a Mapbox obsoleta y payloadsmode/range/range_typeinválidos. El campo real escosting(routing) ycontours(isócronas).
Repo: https://github.com/valhalla/valhalla (C++, MIT, ~6.2K⭐). Demo público de FOSSGIS e.V. — es el proyecto de routing de la org valhalla, no de Mapbox (la org mapbox ya no lo publica).
When to Use
- Cuando pidas rutas o isócronas (áreas de tiempo/distancia) sobre OpenStreetMap en local.
- Como motor de routing open-source autohosteado (alternativa a OSRM/graphhopper).
Uso (Docker)
# Imagen correcta: bajo la org 'valhalla'
docker pull ghcr.io/valhalla/valhalla:latest
# (o ghcr.io/valhalla/valhalla-scripted para el setup con script)
API (payloads válidos)
Routing — campo costing (auto, bicycle, pedestrian...), NO mode:
{ "locations": [{"lat":40.0,"lon":-3.0},{"lat":40.5,"lon":-3.5}], "costing": "auto" }
Isócrona — campo contours (con time/distance) y polygons/denoise, NO range/range_type:
{
"locations": [{"lat":40.0,"lon":-3.0}],
"costing": "auto",
"contours": [{ "time": 10 }]
}
(mode, range, range_type parecen copiados de OSRM/openrouteservice y NO funcionan en Valhalla.)
Pitfalls
- Imagen Docker:
ghcr.io/valhalla/valhalla(o-scripted), noghcr.io/mapbox/valhalla(no existe). - Atribución: hoy es org valhalla (demo FOSSGIS), ya no "Valhalla de Mapbox".
- El request usa
costing(routing) ycontours(isócronas).
Verificación
- Levantar con la imagen correcta y hacer un routing
costing:"auto"+ una isócronacontours:[{time:10}]; comprobar que devuelven geometría coherente.