Design of Google Maps
High-level design
Let's start with the high-level design of a map system. We split the discussion into two sections:
The components we'll need in our design.
The workflow that interconnects these components.
Components
We’ll use the following components in our design:
Location finder: The location finder is a service used to find the user’s current location and show it on the map since we can’t possibly personally remember the latitude and longitude for every place in the world.
Route finder: The route finder service is used to find the paths between two locations or points. It shows the path on the map to users, who are new to a place and needs help with navigation.
Navigator: Suggesting a route through the route finder is not enough. A user may deviate from the optimal path. In that case, a navigator service is used. This service keeps track of users’ journeys and sends updated directions and notifications to the users as soon as they deviate from the suggested route.
GPS/Wi-Fi/Cellular technology: These are the technologies that we used to find the user’s ground position.
Distributed search: For converting place names to latitude/longitude values, we need a conversion system behind the source and destination fields. A distributed search maintains an index consisting of places names and their mapping to ...