skip to content
Chirag Nighut

UK Map Game

Interactive UK geography game with live rail departures — guess a hidden location using radius, temperature, and region clues

ReactTypeScriptLeafletPostgreSQLExpressCloudflare WorkersRender

Work in progress — playable but actively being built.

What It Is

An interactive UK map with two modes:

  • Station Board — pick any of 2,800 UK rail stations and browse live timetable departures, filtered by operator (tube lines shown with their official line colours)
  • Geography Game — narrow down a hidden location on the UK map using clues

The Game

Each round you’re given a series of clues and must eliminate regions until only one remains. Four clue types:

Radius — “The location is within / outside X km of [place]“
A circle expands or contracts the valid zone.

Temperature — “The location is warmer / cooler than [point A] relative to [point B]“
Draws the perpendicular bisector of A→B. Everything on B’s side is hotter. The bisector is computed in real geographic space (accounting for cos(lat) so it’s actually perpendicular, not skewed by the Mercator projection).

Region — “The location is in the same county / borough / country as [place]“
Shades the matched administrative boundary.

Distance — “The location is closer / further from [landmark] than [reference point]“
Draws a circle centred on the landmark at the exact distance from the reference point.

The Data

The timetable is built from two sources merged into PostgreSQL:

  • National Rail — CIF timetable files, ~25k services
  • London Underground — TfL Open Data API for all 11 lines (Bakerloo, Central, Circle, District, Hammersmith & City, Jubilee, Metropolitan, Northern, Piccadilly, Victoria, Waterloo & City)

Merging them required deduplicating ~50 stations that exist in both datasets (e.g. Paddington, Waterloo, King’s Cross St. Pancras) using proximity matching and name normalisation.

Stack

LayerTech
FrontendReact + Leaflet + Tailwind, built with Vite
APIExpress + pg, running on Render
DatabasePostgreSQL on Render (~466k service stops)
RoutingCloudflare Worker proxies /map-game/api/* → Render, /map-game/* → Cloudflare Pages
Map tilesOpenStreetMap

What’s Next

  • Multiplayer / competitive mode
  • Scoring system
  • More clue types
  • Mobile layout