Skip to content

cheeaun/busrouter-sg

Folders and files

NameName
Last commit message
Last commit date

Latest commit

2727fe0 Β· Feb 29, 2024
Jan 16, 2022
Jul 5, 2021
Nov 26, 2022
Feb 29, 2024
Feb 29, 2024
Aug 7, 2021
Nov 24, 2022
Jun 3, 2021
Jun 7, 2021
Aug 7, 2021
Jun 2, 2021
Oct 30, 2019
Feb 29, 2024
Feb 10, 2019
Nov 24, 2021
Aug 7, 2021
Oct 11, 2018
Mar 3, 2022
Aug 15, 2021
Nov 24, 2022
Aug 7, 2021
Jun 10, 2015
Dec 5, 2021
Jun 29, 2020
Aug 16, 2021
Mar 26, 2016
Feb 29, 2024
Jun 6, 2021
Jan 16, 2022
Nov 25, 2022
Nov 25, 2022
Aug 7, 2021

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