This project includes a graph object created from scratch in Python and a GPS application from Madrid using Dijkstra Shortest Path Algorithm. In order to recreate Madrid's map, I used official data from https://datos.gob.es/es/catalogo/l01280796-callejero-informacion-adicional-asociada-codigos-postales-zonas-ser-categoria-fiscal-parcela-catastral-etc1. These data contain several errors, so a lot of data analysis and cleaning was required. Python's library networkx was used to draw the graphs.
First and foremost unzip the directions compressed file, yo may also download it from the webpage above. Note: The csv was too big to be uploaded in github. Then install all the requirements specified on "requirements.txt" and run "gps.py" in your Python intepreter.