Design of Google Maps
We'll cover the following...
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 latitude and longitude. User’s entered
are searched using this service to find a location on the map.keywords See Distributed Search for details.