Design of Google Maps
Let's build a high-level design of maps service.
High-level design
Let’s start with the high-level design of a map system. We split the discussion into two sections:
- The services we will need in our design.
- The workflow that interconnects these services.
Services
Following are the services we will use in our design:
- Location finder: It is hard for us to remember the latitude/longitude for every place, we couldn’t determine where are we standing. The location finder is a service used to find the user’s current location and show it on the map.
- Route finder: For the people who are new to a place, it is difficult to travel because they don’t know the paths. The route finder is a service used to find the paths between two points (locations).
- 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/Wifi/Cellular technology: These are the technologies that we used to find the ground position of the user.
- Distributed search: For converting place names to latitude/longitude values, we need a conversion system behind the source and destination fields. Distributed search maintains an index consisting of places names and their mapping to latitude and longitude. User’s search keywords/
are searched using this service to find a location on the map.terms See Distributed Search for details. - Area search service: The area search
Create a free account to access the full course.
By signing up, you agree to Educative's Terms of Service and Privacy Policy