Google Maps is a geospatial platform: it draws the world as pannable map tiles, finds places by name or address, and computes the fastest route from A to B with a live ETA. What makes it a hard system-design problem is doing all three at planetary scale — and doing the routing over a road network with hundreds of millions of edges whose weights (travel times) change every minute as traffic moves.
Three problems are braided together:
- Routing — shortest path over a continental road graph, fast enough to feel instant. Plain Dijkstra is far too slow, so the graph is precomputed into an index.
- ETA with live traffic — turn a firehose of anonymous GPS probes into per-road-segment speeds, then price a route in seconds-of-travel that reflects current conditions.
- Tiles & geocoding — serve a cacheable pyramid of map tiles and answer spatial queries (address ↔ point, what is near me) from a geospatial index.
The whole design is about picking the right precomputation for a graph whose weights won't sit still, and keeping the read-heavy tile path far away from the compute-heavy routing path.