Subway
🚉 interactive NYC subway map that adjusts distance based on travel time
Install / Use
/learn @nate-parrott/SubwayREADME
NYC Travel Time Map

How does it work?
The main page is index.html, but most of the code is in map.js. map.js uses d3.js to render the map based on JSON data
generated by a couple Python scripts.
If you'd like to set this up yourself, you'll need to unzip the google_transit.zip file into this directory, then run
python3 generate_routes_json.py and python3 gtfs_json.py to generate the required subway.js and gtfs_json.js files.
These are required by virtual_rider.js, which implements Djiksta-like algorithm for simulating a rider's journey
from a starting stop throughout the system. virtual_rider.js is invoked by map.js whenever a stop is clicked,
and the results are used to shift the distance of each stop away from the clicked stop.
Adapting to another city
If your city's transit system provides data in the GTFS format, you can probably get this map working fairly well for it. Here's a rough set of steps, which may be incomplete:
-
Download and unzip the gtfs data, and place the folder (rename it
google_transitif it's not called that already). -
Use Python 3 to run
generate_routes_json.pyThis generates a file calledsubway.json, which you'll need. -
Use Python 3 to run
gtfs_json.py— this generates a new copy of theschedules/folder and its contents.
Feel free to post an issue if you have any questions!
Related Skills
node-connect
347.2kDiagnose OpenClaw node connection and pairing failures for Android, iOS, and macOS companion apps
frontend-design
108.0kCreate distinctive, production-grade frontend interfaces with high design quality. Use this skill when the user asks to build web components, pages, or applications. Generates creative, polished code that avoids generic AI aesthetics.
openai-whisper-api
347.2kTranscribe audio via OpenAI Audio Transcriptions API (Whisper).
qqbot-media
347.2kQQBot 富媒体收发能力。使用 <qqmedia> 标签,系统根据文件扩展名自动识别类型(图片/语音/视频/文件)。
