Skip to content
abyrd edited this page Apr 9, 2013 · 144 revisions

OpenTripPlanner

Note: this wiki is targeted primarily at the OTP development community. For general information about the project, please visit opentripplanner.com

OpenTripPlanner (OTP) is an open source multi-modal trip planner, which runs on Linux, Windows, or potentially any platform with a Java virtual machine. OTP is released under the LGPL. As of Spring 2013, the code is under active development, with a variety of working demos from around the world.

Latest Project Updates:

Status

OpenTripPlanner is presently at version 0.9. (see changelog)

The software currently:

  • Plans multi-modal walking, wheelchair, biking and transit trips
  • Takes travel time, road type/safety, and elevation data into account when planning bike trips, and provides an interface for customizing the weighting of these three factors
  • Shows graphical elevation profiles for bike trips
  • Imports data from GTFS, shapefiles, OpenStreetMap and the National Elevation Dataset
  • Plans trips in about 100ms in a moderate sized city
  • Exposes a RESTful API (XML and JSON), which other apps or front-ends can build on
  • Supports GTFS-Realtime for service changes and alerts
  • Supports Bike rental
  • Has experimental support for Raptor

See the Milestones page for more information on what's next.

See for performance characteristics in a larger metropolitan area with extensive transit coverage.

Basic OTP Architecture

At the core of OpenTripPlanner is a library of Java code that finds efficient paths through multi-modal transportation networks built from [OpenStreetMap] and [GTFS] data. Several different services are built upon this library:

The OTP routing API is a RESTful web service that responds to journey planning requests with initineraries in a JSON or XML representation. You can combine this API with OTP's standard Javascript front end to provide users with trip planning functionality in a familiar map interface, or write your own applications that talk directly to the API. This API is provided by a Java servlet which can be dropped into any servlet container. In simpler terms, the OTP REST API is provided by a plug-in for standards-compliant Java web servers.

"OTP Analyst" refers to modules and services within OTP that apply the routing engine to transportation network analysis rather than end-to-end trip planning. OTP Analyst can be further broken down into:

The OTP Analyst Web Services provide network analysis results such as travel time maps and isochrones as standard web Mercator tiles or GIS rasters via a WMS-derived API. These web services are conceptually separate from the routing API, but are provided by the same servlet: once you have a working OTP trip planner you can also use it to produce travel time maps and other visualizations of transit service. See this blog post for more information.

The OTP Analyst Batch Processor is a command-line tool that handles more complex one-off network analysis tasks. It uses the same routing core and data sources as the other OTP services, but allows for very open-ended configuration and the inclusion of population or opportunity data. While configuration and use are currently somewhat opaque for non-developers, the "Batch Analyst" is becoming a powerful tool for visualizing how transportation networks. See this article for an example case study on the effects of hurricane Sandy in New York.

OTP Test Drive

Users and developers who want to try out OTP without manually building the project or installing a servlet container on their machine may use the following self-contained packages. These zip files combine a pre-built copy of OTP with a lightweight servlet container called Winstone.

Note: In a production trip planning system, OTP is typically deployed as a plugin ("servlet") in a full-featured server like Tomcat (see architecture notes). Developers and more advanced users may want to simply build OTP from source and deploy the resulting WAR files to such a server.

The following tutorials will guide you through some experiments with the above pre-built zip files:

Code Repository

To browse the source online visit https://github.com/openplans/OpenTripPlanner.

To create a local copy of the repository, use the following command:

$ git clone git://github.com/openplans/OpenTripPlanner.git

Developer Information

Contact Info

Send questions and comments to the user mailing list.

Chat with us via IRC on Freenode channel #opentripplanner or chat through the web

Stakeholders and User Information

About

The project began a collaborative effort among TriMet, OpenPlans, and the developers of FivePoints, OneBusAway and Graphserver, and has since grown to encompass a global community of users and developers. More information on OTP's origins is available at the Project History page.

Clone this wiki locally