Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

cheeaun/busrouter-sg

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Repository files navigation

BusRouter SG

Singapore Bus Routes Explorer 🚌 πŸ—Ί πŸ‡ΈπŸ‡¬

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.

Website Blog Post

Screenshot of BusRouter SG

Screenshot of BusRouter SG

✨ 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:

Screenshot of Singapore Bus Routes Explorer

Visualization mini-site

A separate mini-site showing ALL stops and routes on a map. All of them.

Check it out: Visualization mini-site (⚠️ Uses a lot of bandwidth).

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 development
  • npm run build - build for production and deployment, in ./dist folder.

Localization

Crowdin

➑️ Start translating ⬅️

Visualization

At least Node.js 14 is required.

The scripts to generate the data, in order:

  1. 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 and visualization/data/levels.json to be read by the build-stops script.
  2. 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.

πŸ“œ 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

Contributors 3

AltStyle γ«γ‚ˆγ£γ¦ε€‰ζ›γ•γ‚ŒγŸγƒšγƒΌγ‚Έ (->γ‚ͺγƒͺγ‚ΈγƒŠγƒ«) /