El repte
Cada últim dissabte del 2024, en @Marcos Rayo i jo vam recórrer una línia de metro completa de Barcelona: a peu, per la superfície, de parada en parada. Sense dreceres, sense pujar al metro. Només els carrers.
A finals d’any havíem cobert les 12 línies de la xarxa: uns 200 km de ciutat a pas de vianant.
Els amics s’hi anaven unint en diferents dates: alguns per a una línia, altres per a unes quantes. Cada dissabte acabava sent una experiència pròpia: diferents barris, diferent temps meteorològic i l’objectiu compartit d’arribar a l’última estació abans que es pongués el sol.
Enginyeria de les rutes
L’objectiu era documentar-ho tot: rutes, estadístiques i les fotos que fèiem a cada parada.
El pipeline de dades va ser la part més interessant:
- Enregistrament: Vam rastrejar cada caminada amb els nostres telèfons.
- Neteja: Els fitxers GPX exportats es van netejar a GPX Studio per eliminar les derives del GPS i corregir els segments que faltaven.
- Processament: Es van convertir a GeoJSON per al mapa, però també en vam extreure metadades en una estructura personalitzada de TypeScript per gestionar la interfície d’usuari.

{
id: "L1",
metadata: {
title: "L1",
subtitle: "Hospital de Bellvitge / Fondo",
color: "#df2937",
distance: 29.64,
timeWalking: "06:56:45",
stations: 30,
}
}Construint el mapa
El mapa està construït amb MapLibre i React. Com que era un projecte personal, volia evitar les API de Google Maps o Mapbox per mantenir-lo completament gratuït i centrat en la privadesa.
Vaig utilitzar @mapcomponents/react-maplibre, que era potent però pràcticament no tenia documentació. Vaig haver de submergir-me en el codi font per entendre com gestionar la interfície d’usuari.
En seleccionar una línia es filtren les dades GeoJSON globals i el visor se centra en aquesta ruta específica, mostrant les estadístiques en temps real extretes de les metadades.
Fotos de les parades
A cada estació fèiem una foto. Va ser la part més difícil d’automatitzar: tenim centenars de fotos anomenades exactament com les estacions.
En lloc d’una base de dades, vaig optar per una convenció de noms senzilla. L’aplicació obté el nom de la parada seleccionada, identifica la línia i carrega dinàmicament la imatge des d’una carpeta pública estructurada: /images/${line}/${stop}.jpg.
És un projecte petit, però captura perfectament el 2024: 12 dissabtes, 12 línies i molts quilòmetres recorreguts.
Enllaços