As indicated in Wikipedia, Google Transit, a classic public transport route planner, is an “intermodal journey planner, typically accessed via the web that provides information about available public transport services”.
The input is an origin and a destination by public users. The output is a set of route modes between the two on public transit services (in Google Transit’s case, walks and cycling routes are also included), in order of users’ preferences such as price, time, availability, etc.. Time and cost of certain transportation under certain circumstances, for example, arrival or departure time and estimated waiting time for buses are all included. The algorithm of Google Transit is the way it finds the most appropriate routes according to your preferences and display them in an order. This process involves the users’ activities of inputting information, but more importantly, it is an automatically computer language which based on the existing and constantly updated data.
Architecture in illustrative diagrams
Google Transit is a very complicated and powerful system, which involves different elements that interact internally and work closely with each other. We simplify this system for research purpose, dividing it into 5 major parts: the front end that users can directly get access to its service, such as the UI of Google map; a computing engine that calculate based on data input to provide trip suggestions for different options or link to API of 3rd party applications; a static data set based on the data pre-submitted by public transportation agencies to different data resources using the standard GTFS format; a real time update system exemplified by the large-scale application of the GTFS Real-time; last, the supporting GPS system that records the location of individual uses . For each component it contains multiple pillars too; in order to investigate on how they work together and to clarify the architecture, we will first present the general architecture and detailed illustration of some crucial components in details as below: