This is a React app that relies heavily on goodservice.io's APIs to dynamically generate real-time route maps for the New York City subway with the help of Mapbox, particularly useful when service changes regularly occur on weekends and overnights.
A Mapbox theme was created for this project and has been made public.
See it live at https://www.theweekendest.com.
Sign up for an account with Mapbox, get a token and add it to an .env
file as MAPBOX_TOKEN
.
Download Stations.csv from the MTA's website and drop it in /src/data/files
To have nice looking paths, download the GTFS schedule files from MTA at http://web.mta.info/developers/developer-data-terms.html (agree to the terms, look for "GTFS" then download the data for New York City Transit). You'd need to parse out the shapes.txt
file from the GTFS package. I wrote a script that takes .csv files to generate these paths. Each .csv file is expected to be a contiguous path for a train route. I took the first shape path (with some exceptions) for each route in shapes.txt
and dumped each into its own .csv file before running it.
ruby src/data/generate_json.rb
ruby src/data/generate_transfers_json.rb
yarn install
yarn start
Inspirations:
Subway Route Symbols ®: Metropolitan Transportation Authority. Used with permission.