- Open Trip Planner
- The problem
- From the outside in:
- API
- Narrative generation
- Trip planning operates on a directed graph
- The code
- Edges have costs
- Edge costs depend on the user
- Edge costs are time-dependent
- How edges work
- Planning on a graph (simplified)
- Dijkstra's algorithm
- Some additional complexities
- Time dependence
- Arrive-by trips
- Multi-criteria optimization
- Time-dependent multi-criteria Dijkstra's algorithm
- Locally correct choices are not always globally correct
- A*
- Contraction hierarchies
- Contraction hierarchies
- The data
- Open Street Map
- Building the street graph
- Complications
- Turn restrictions and penalties
- Edge-based graphs
- That's it for the street network
- Building the transit network
- The time-expanded model
- The time-dependent model
- Dwell times
- Linking the transit network to the street network
StreetVertexIndexService
- Putting it all together: the graph building process
- Graph configuration file
- Where to save your graph
- Transit loader
- Street data
- Cache and region
- Permissions
- Bicycle safety properties
- Miscellaneous important transit builders
- Putting it together
- Contraction
- Questions?