Salve Daniele, il calcolo del percorso è completamente interno, essenzialmente è basato sull'algoritmo di Dijkstra con tipi di nodi ed archi personalizzati per rappresentare i diversi modi di trasporto (nodi di palina e di fermata, archi di salita e discesa su bus/metro che connettono una palina a una fermata, archi di percorrenza di tratti tra fermate, ecc.).
Il metodo da cui parte il calcolo è exposed_cerca_percorso
definito nel file src/paline/trovalinea.py
. Poi il codice si fa piuttosto intricato e sparso in vari file della cartella paline
.
Se hai domande specifiche, chiedi pure!