Timestamped Singapore-side border camera snapshots, coordinates and camera IDs.
api.data.gov.sg/v1/transport/traffic-images; 60-second metadata cache, selected image only. Images are not live video. Open Data Licence. Unknown camera names retain provider IDs; do not infer queue times.Know what moves your map.
Choose a BAS.MY city, KTMB or Prasarana service for official data. Rapid KL rail provides schedules only. A live feed failure never substitutes simulated vehicles. UTHM and the optional Johor demo are explicitly labelled simulations.
Initial successful integration on 30 September 2026 retrieved 75 vehicles and imported 21 routes with 988 stops. These are verification observations, not promised current fleet counts.
Connected data & services
Community-mapped static signal junction inventory for the Johor Bahru pilot.
Queries overpass-api.de/api/interpreter within a fixed Johor-area box. ODbL attribution to OpenStreetMap contributors. Provider returned HTTP 406 during verification; UI reports unavailable. No live phase, countdown or surveyed pole geometry is supplied.Current modelled conditions at the selected service-area centre.
Server requests api.open-meteo.com/v1/forecast with current temperature, apparent temperature, humidity, precipitation, wind, weather code and is_day. 15-minute cache; timestamps and stale status shown. Data attribution CC BY 4.0; free API is for non-commercial use, review commercial terms before production.Official routes, stops and representative trip topology for the selected service.
Separate persisted cache per endpoint. Empty or unusable datasets are reported without synthetic replacement. Seremban combines both operator feeds with namespaced IDs.Official vehicle-position protobuf feed; original GPS timestamps preserved.
Publisher documents 30-second updates; application coalesces requests for 35 seconds. Empty, stale or unavailable feeds are labelled. No trip updates or service-alert integration is claimed.Official routes, stops and representative trip topology for the selected service.
Separate persisted cache per endpoint. Empty or unusable datasets are reported without synthetic replacement. Seremban combines both operator feeds with namespaced IDs.Official vehicle-position protobuf feed; original GPS timestamps preserved.
Publisher documents 30-second updates; application coalesces requests for 35 seconds. Empty, stale or unavailable feeds are labelled. No trip updates or service-alert integration is claimed.Official routes, stops and representative trip topology for the selected service.
Separate persisted cache per endpoint. Empty or unusable datasets are reported without synthetic replacement. Seremban combines both operator feeds with namespaced IDs.Official vehicle-position protobuf feed; original GPS timestamps preserved.
Publisher documents 30-second updates; application coalesces requests for 35 seconds. Empty, stale or unavailable feeds are labelled. No trip updates or service-alert integration is claimed.Official routes, stops and representative trip topology for the selected service.
Separate persisted cache per endpoint. Empty or unusable datasets are reported without synthetic replacement. Seremban combines both operator feeds with namespaced IDs.Official vehicle-position protobuf feed; original GPS timestamps preserved.
Publisher documents 30-second updates; application coalesces requests for 35 seconds. Empty, stale or unavailable feeds are labelled. No trip updates or service-alert integration is claimed.Official routes, stops and representative trip topology for the selected service.
Separate persisted cache per endpoint. Empty or unusable datasets are reported without synthetic replacement. Seremban combines both operator feeds with namespaced IDs.Official vehicle-position protobuf feed; original GPS timestamps preserved.
Publisher documents 30-second updates; application coalesces requests for 35 seconds. Empty, stale or unavailable feeds are labelled. No trip updates or service-alert integration is claimed.Official routes, stops and representative trip topology for the selected service.
Separate persisted cache per endpoint. Empty or unusable datasets are reported without synthetic replacement. Seremban combines both operator feeds with namespaced IDs.Official vehicle-position protobuf feed; original GPS timestamps preserved.
Publisher documents 30-second updates; application coalesces requests for 35 seconds. Empty, stale or unavailable feeds are labelled. No trip updates or service-alert integration is claimed.Official routes, stops and representative trip topology for the selected service.
Separate persisted cache per endpoint. Empty or unusable datasets are reported without synthetic replacement. Seremban combines both operator feeds with namespaced IDs.Official vehicle-position protobuf feed; original GPS timestamps preserved.
Publisher documents 30-second updates; application coalesces requests for 35 seconds. Empty, stale or unavailable feeds are labelled. No trip updates or service-alert integration is claimed.Official routes, stops and representative trip topology for the selected service.
Separate persisted cache per endpoint. Empty or unusable datasets are reported without synthetic replacement. Seremban combines both operator feeds with namespaced IDs.Official vehicle-position protobuf feed; original GPS timestamps preserved.
Publisher documents 30-second updates; application coalesces requests for 35 seconds. Empty, stale or unavailable feeds are labelled. No trip updates or service-alert integration is claimed.Official routes, stops and representative trip topology for the selected service.
Separate persisted cache per endpoint. Empty or unusable datasets are reported without synthetic replacement. Seremban combines both operator feeds with namespaced IDs.Official vehicle-position protobuf feed; original GPS timestamps preserved.
Publisher documents 30-second updates; application coalesces requests for 35 seconds. Empty, stale or unavailable feeds are labelled. No trip updates or service-alert integration is claimed.Official routes, stops and representative trip topology for the selected service.
Separate persisted cache per endpoint. Empty or unusable datasets are reported without synthetic replacement. Seremban combines both operator feeds with namespaced IDs.Official vehicle-position protobuf feed; original GPS timestamps preserved.
Publisher documents 30-second updates; application coalesces requests for 35 seconds. Empty, stale or unavailable feeds are labelled. No trip updates or service-alert integration is claimed.Official routes, stops and representative trip topology for the selected service.
Separate persisted cache per endpoint. Empty or unusable datasets are reported without synthetic replacement. Seremban combines both operator feeds with namespaced IDs.Official vehicle-position protobuf feed; original GPS timestamps preserved.
Publisher documents 30-second updates; application coalesces requests for 35 seconds. Empty, stale or unavailable feeds are labelled. No trip updates or service-alert integration is claimed.Official routes, stops and representative trip topology for the selected service.
Separate persisted cache per endpoint. Empty or unusable datasets are reported without synthetic replacement. Seremban combines both operator feeds with namespaced IDs.Official vehicle-position protobuf feed; original GPS timestamps preserved.
Publisher documents 30-second updates; application coalesces requests for 35 seconds. Empty, stale or unavailable feeds are labelled. No trip updates or service-alert integration is claimed.Official routes, stops and representative trip topology for the selected service.
Separate persisted cache per endpoint. Empty or unusable datasets are reported without synthetic replacement. Seremban combines both operator feeds with namespaced IDs.Official vehicle-position protobuf feed; original GPS timestamps preserved.
Publisher documents 30-second updates; application coalesces requests for 35 seconds. Empty, stale or unavailable feeds are labelled. No trip updates or service-alert integration is claimed.Official routes, stops and representative trip topology for the selected service.
Separate persisted cache per endpoint. Empty or unusable datasets are reported without synthetic replacement. Seremban combines both operator feeds with namespaced IDs.Official vehicle-position protobuf feed; original GPS timestamps preserved.
Publisher documents 30-second updates; application coalesces requests for 35 seconds. Empty, stale or unavailable feeds are labelled. No trip updates or service-alert integration is claimed.Official routes, stops and representative trip topology for the selected service.
Separate persisted cache per endpoint. Empty or unusable datasets are reported without synthetic replacement. Seremban combines both operator feeds with namespaced IDs.Country outline, 16 states/federal territories and 160 districts for geographic selection and shape-following highlights.
Bundled published snapshot, not a claim of current legal boundary adjudication. Original URLs, SHA-256 hashes and retrieval time: /data/boundaries/provenance.json. DOSM Open Data License retained at /data/boundaries/LICENSE.md. No rectangular substitute polygons.Real vehicle IDs, coordinates, route IDs and observation timestamps; speed, heading and occupancy only when supplied.
Protobuf. One shared refresh per 35 seconds in this single-process application. No API key required in the verified request. CC BY 4.0; credit data.gov.my and the respective transport operators.Official agencies, routes, stops, trips, ordered stop times and route shapes.
ZIP/CSV. Imported automatically when missing or older than 24 hours, or with npm run ingest. The app uses a representative trip per route; it does not yet evaluate calendars or offer departure-time routing.MapLibre vector basemap style, linked tiles, glyphs and sprites.
Public instance, no configured API key. Availability has no application-controlled SLA. Style-linked resource URLs are resolved by MapLibre, not hard-coded API assumptions.Roads, place labels and geographical basemap information through OpenFreeMap.
© OpenStreetMap contributors, ODbL. The application preserves on-map attribution and does not bulk-cache third-party tiles.Vector tile schema and basemap attribution.
MapLibre displays the attribution supplied by the provider. The active 3D map uses OpenStreetMap building footprints and provider render heights (which may be estimated). No surveyed terrain is claimed.User-submitted geotags, descriptions, optional images and operator status changes.
Application-owned data in local JSON or PostgreSQL/PostGIS. Not a Malaysian municipal API. No synthetic reports are seeded. Reports are public; images are re-encoded client-side.Published Batu Pahat and Pagoh route paths and checkpoint coordinates.
Public page inspected 1 October 2026; three routes saved in /data/uthm-katsana.json. Public WebSocket responds, but no live adapter is connected. Vehicles and durations remain simulated; no redistribution licence identified.Standards & official documentation
Official Johor CCTV directory linked from the Layers panel.
External viewer only. No embedded playback, scraping contract or reuse permission claimed.Official Kuala Lumpur traffic viewer link.
External viewer only; no public signal phase integration verified.Official highway CCTV information link.
External viewer only; the portal directs users to Tuju for full camera views.Estimated BAS.MY fares and pass eligibility.
Checked 2026-10-08. RM0.94 first 2 km, RM0.094 per additional km or part; RM30 / 30 days Malaysian-citizen pass. Route tables take priority. City pass coverage remains unconfirmed; nearest-sen half-up rounding is GERAK estimate policy, not a verified official rounding rule.Published between-stop fare table for Kuching route Q05.
Transcribed 2026-10-18 from the official poster (pages 4-5) into data/fare-tables/kuching-q05.json; matrices validated against the GTFS stop order and the poster's own summary tables. The national formula and RM30 pass are not verified for Sarawak, so Kuching is priceable only through imported route tables.Published fare tables for the remaining GTFS-backed Kuching corridors (Q01, Q06, Q07, Q08, Q09, Q10) and the press statement behind the 11 March 2025 fare reduction.
Discovered via the LPKP Sarawak WordPress media library 2026-10-18 and transcribed into data/fare-tables/kuching-q0{1,6,7,9}.json (Sept 2025 linear terminal tables) and kuching-q08/q10.json (14 May 2025 between-stop matrices plus the Sept 2025 terminal rows). Both generations already carry the reduced fares announced on 10 March 2025, and the matrices agree with the Sept 2025 posters on every comparable pair except Q08 inbound, whose May matrix is excluded as stale. Ambiguous or unmatched poster stops are excluded fail-closed. Q02-Q04 have posters but no GTFS routes; Q11-Q16 publish route maps but no fare table, so those corridors stay unverified_city.Exact source URLs and hashes for the bundled country, state and district files.
Publisher: Department of Statistics Malaysia. Geometry is preserved; files are only JSON-minified. Permission and disclaimers follow the publisher's Open Data License.App Router manifest and service-worker integration.
The matching installed Next.js documentation was also read locally under node_modules/next/dist/docs/.CSV field and coordinate interpretation.
Includes service-day time semantics. Calendar-aware routing and all-trip shape matching remain future work.VehiclePosition protobuf semantics and optional fields.
Omitted occupancy and speed are unknown, not invented observations. The national integration uses VehiclePosition only.Supported agencies, update frequency and feed limitations.
Documents approximately 30-second updates. No connected national TripUpdates or ServiceAlerts endpoint is claimed.Official static endpoints and refresh guidance.
Used for all registered BAS.MY cities, KTMB and Prasarana categories. Rapid KL rail has static schedules only; no stable realtime endpoint is claimed.Upstream request budgeting.
Published limit: 4 requests per minute. In-process coalescing is implemented; multiple production replicas require a shared ingestion owner/cache.Government open-data attribution.
CC BY 4.0. Field transformations and runtime source timestamps are documented.Civic service-request interoperability reference.
No municipal Open311 gateway is connected. GERAK does not claim Open311 conformance.Design & architecture inspiration
Modern rider UI, localisation and transit-region configuration research.
Not installed or copied.Geographic transforms and map/3D integration research.
GERAK ultimately uses independent MapLibre and R3F renderers with a shared geographic projection contract, not this custom-layer implementation.Static GTFS import/query architecture reference.
Not installed. GERAK uses fflate and csv-parse for a bounded importer.Geographic route preparation reference.
Not installed; GERAK builds its own GeoJSON route layers.User-requested inspiration for a playful Malaysian miniature city and camera exploration.
No code, images or models copied; not a transport data provider.User-requested inspiration for teal scenery, miniature urban forms and approachable 3D presentation.
Visually inspected. No code, images or models copied; not an API.Moving transit visualization, tracking and performance design research.
MIT project. Architecture inspiration only; not installed or called.Transit entities, freshness and rider-facing information architecture.
Not a GERAK backend dependency; no OneBusAway API is connected.Production multimodal routing architecture research.
Not deployed. GERAK’s present planner discovers direct/one-transfer connections from a representative official stop sequence.Public issue-report lifecycle and location-based reporting research.
No AGPL application code copied or deployed. GERAK implements its own reporting UI and API.Large-fleet and geospatial visualization research.
Not installed. Current rendering uses MapLibre and React Three Fiber.PWA caching architecture research.
Not installed. GERAK uses a custom service worker and the Next.js manifest API.Researched, not connected
Future feed-quality validation.
Not installed or executed. The current adapter implements its own essential normalization checks.Official historical ridership context research.
Not ingested. GERAK displays no invented historical ridership or impact metrics.Potential future weather/flood context.
Not connected. Community flood reports are not official weather alerts.Official confirmation of campus transport and the existing tracking service.
Institutional source, not a telemetry endpoint. Campus route geometry is sourced separately from the public KATSANA tracker.Recommended production import validation.
Not run or installed in this MVP. The importer currently enforces archive bounds and essential coordinate/CSV checks.What is not claimed
No official ETA, fare, delay, accessibility audit, current crowd level or service-alert data is invented. 3D building footprints come from OpenStreetMap; heights may be estimated, and no surveyed terrain is claimed. Civic reports remain within GERAK unless a future authority integration is agreed. Route connections are not an operational timetable.
Code dependencies and complete licence references are recorded in package-lock.json and docs/SOURCES.md. No paid Mapbox API, Google Maps API, Mapbox terrain service, external AI API or analytics tracker is used.