Explore bus stops and routes on the map for all bus services in Singapore, with realtime bus arrival times and per-bus-stop passing routes overview.
โจ Features
- All bus stops shown even in low zoom levels.
- Full routes display with all stops for every service.
- View all routes passing through a stop.
- Bus arrival times for every stop.
- First/last timings for all services.
๐ฐ Previously
Previously known as Singapore Bus Routes Explorer, abbreviated as 'SBRE' and previously looks like this:
Visualization mini-site
A separate mini-site showing ALL stops and routes on a map. All of them.
Check it out: Visualization mini-site (
Technicalities
Data
All data such as bus stops, services and routes are mostly scraped from https://www.lta.gov.sg/, which means they are copyrighted by the Land Transport Authority.
They are available here: cheeaun/sgbusdata.
Web App
The scripts for the web app:
npm start
- start server for developmentnpm run build
- build for production and deployment, in./dist
folder.
Localization
Visualization
At least Node.js 14 is required.
The scripts to generate the data, in order:
node visualization/build-routes.mjs
- Reads
data.busrouter.sg/v1/data/stops.min.json
and transform routes data with "levels" for 3D extrusion. - Generates
visualization/data/routes.json
andvisualization/data/levels.json
to be read by thebuild-stops
script.
- Reads
node visualization/build-stops.mjs
- Reads
data.busrouter.sg/v1/data/stops.min.geojson
and buffered into triangle polygons which will be 3D-extruded. - Generates
visualization/data/stops.3d.json
.
- Reads
๐ License
Data ยฉ LTA ยฉ OneMap ยฉ OSM contributors. Everything else: MIT
๐ค Feedback
If you have any feedback, leave them on Discussions or tweet me @cheeaun on Twitter.
๐โ Credits
- Inspired by this tweet.
- Icon is from The Noun Project
- Color scheme initially inspired by Gothere.sg
- Thanks to Eddy Yanto for building the iPad app until mid-2015.