Resources

The resources use a data model that is supported by a set of client-side libraries that are made available on the files and libraries page.

name path methods description
ActuatorAPI
  • /otp/actuators
  • /otp/actuators/health
  • /otp/actuators/prometheus
  • GET
  • GET
  • GET
BikeRental
  • /otp/routers/{ignoreRouterId}/bike_rental
  • GET
GeocoderResource
  • /otp/routers/{ignoreRouterId}/geocode
  • GET
OTP simple built-in geocoder used by the debug client.
GraphInspectorTileResource
  • /otp/routers/{ignoreRouterId}/inspector/layers
  • /otp/routers/{ignoreRouterId}/inspector/tile/{layer}/{z}/{x}/{y}.{ext}
  • GET
  • GET
Slippy map tile API for rendering various graph information for inspection/debugging purpose (bike safety factor, connectivity...).

One can easily add a new layer by adding the following kind of code to a leaflet map:

   var bikesafety = new L.TileLayer(
      'http://localhost:8080/otp/routers/default/inspector/tile/bike-safety/{z}/{x}/{y}.png',
      { maxZoom : 22 });
   var map = L.map(...);
   L.control.layers(null, { "Bike safety": bikesafety }).addTo(map);
 

Tile rendering goes through TileRendererManager which select the appropriate renderer for the given layer.

IndexAPI
  • /otp/routers/{ignoreRouterId}/index/feeds
  • /otp/routers/{ignoreRouterId}/index/patterns
  • /otp/routers/{ignoreRouterId}/index/routes
  • /otp/routers/{ignoreRouterId}/index/services
  • /otp/routers/{ignoreRouterId}/index/stops
  • /otp/routers/{ignoreRouterId}/index/agencies/{feedId}
  • /otp/routers/{ignoreRouterId}/index/feeds/{feedId}
  • /otp/routers/{ignoreRouterId}/index/patterns/{patternId}
  • /otp/routers/{ignoreRouterId}/index/routes/{routeId}
  • /otp/routers/{ignoreRouterId}/index/services/{serviceId}
  • /otp/routers/{ignoreRouterId}/index/stops/{stopId}
  • /otp/routers/{ignoreRouterId}/index/trips/{tripId}
  • /otp/routers/{ignoreRouterId}/index/agencies/{feedId}/{agencyId}
  • /otp/routers/{ignoreRouterId}/index/patterns/{patternId}/alerts
  • /otp/routers/{ignoreRouterId}/index/patterns/{patternId}/geometry
  • /otp/routers/{ignoreRouterId}/index/patterns/{patternId}/semanticHash
  • /otp/routers/{ignoreRouterId}/index/patterns/{patternId}/stops
  • /otp/routers/{ignoreRouterId}/index/patterns/{patternId}/trips
  • /otp/routers/{ignoreRouterId}/index/routes/{routeId}/alerts
  • /otp/routers/{ignoreRouterId}/index/routes/{routeId}/patterns
  • /otp/routers/{ignoreRouterId}/index/routes/{routeId}/stops
  • /otp/routers/{ignoreRouterId}/index/routes/{routeId}/trips
  • /otp/routers/{ignoreRouterId}/index/stops/{stopId}/alerts
  • /otp/routers/{ignoreRouterId}/index/stops/{stopId}/patterns
  • /otp/routers/{ignoreRouterId}/index/stops/{stopId}/routes
  • /otp/routers/{ignoreRouterId}/index/stops/{stopId}/stoptimes
  • /otp/routers/{ignoreRouterId}/index/stops/{stopId}/transfers
  • /otp/routers/{ignoreRouterId}/index/trips/{tripId}/alerts
  • /otp/routers/{ignoreRouterId}/index/trips/{tripId}/geometry
  • /otp/routers/{ignoreRouterId}/index/trips/{tripId}/semanticHash
  • /otp/routers/{ignoreRouterId}/index/trips/{tripId}/stops
  • /otp/routers/{ignoreRouterId}/index/trips/{tripId}/stoptimes
  • /otp/routers/{ignoreRouterId}/index/agencies/{feedId}/{agencyId}/alerts
  • /otp/routers/{ignoreRouterId}/index/agencies/{feedId}/{agencyId}/routes
  • /otp/routers/{ignoreRouterId}/index/stops/{stopId}/stoptimes/{date}
  • GET
  • GET
  • GET
  • GET
  • GET
  • GET
  • GET
  • GET
  • GET
  • GET
  • GET
  • GET
  • GET
  • GET
  • GET
  • GET
  • GET
  • GET
  • GET
  • GET
  • GET
  • GET
  • GET
  • GET
  • GET
  • GET
  • GET
  • GET
  • GET
  • GET
  • GET
  • GET
  • GET
  • GET
  • GET
LegacyGraphQLAPI
  • /otp/routers/{ignoreRouterId}/index/graphql
  • /otp/routers/{ignoreRouterId}/index/graphql/batch
  • POST
  • POST
ParkAndRideResource
  • /otp/routers/{ignoreRouterId}/park_and_ride
  • GET
Created by demory on 7/26/18.
PlannerResource
  • /otp/routers/{ignoreRouterId}/plan
  • GET
This is the primary entry point for the trip planning web service. All parameters are passed in the query string. These parameters are defined as fields in the abstract RoutingResource superclass, which also has methods for building routing requests from query parameters. This allows multiple web services to have the same set of query parameters. In order for inheritance to work, the REST resources are request-scoped (constructed at each request) rather than singleton-scoped (a single instance existing for the lifetime of the OTP server).
ReportResource
  • /otp/report/bicycle-safety.csv
  • /otp/report/bicycle-safety.html
  • /otp/report/graph.json
  • /otp/report/transfers.csv
  • GET
  • GET
  • GET
  • GET
Routers
  • /otp/routers
  • /otp/routers/{ignoreRouterId}
  • GET
  • GET
This REST API endpoint returns some meta-info about a router. OTP2 does no longer support remotely loading, reloading, and evicting graphs on a running server (Supported in OTP1).

The HTTP verbs are used as follows:

GET - see the registered routerIds(there is just one: default) with the graph.

The HTTP request URLs are of the form /otp/routers/{routerId}. The {routerId} is kept to be backward compatible, but the value is ignored. There is only one router, the "default" and that is returned - even if you specify something else.

ServerInfo
  • /otp
  • GET
TransmodelAPI
  • /otp/routers/{ignoreRouterId}/transmodel/index/graphql
  • /otp/routers/{ignoreRouterId}/transmodel/index/live
  • /otp/routers/{ignoreRouterId}/transmodel/index/graphql/batch
  • POST
  • GET
  • POST
TravelTimeResource
  • /otp/traveltime/isochrone
  • /otp/traveltime/surface
  • GET
  • GET
UpdaterStatusResource
  • /otp/routers/{ignoreRouterId}/updaters
  • /otp/routers/{ignoreRouterId}/updaters/{updaterId}
  • GET
  • GET
Report the status of the graph updaters via a web service.
VectorTilesResource
  • /otp/routers/{ignoreRouterId}/vectorTiles/{layers}/tilejson.json
  • /otp/routers/{ignoreRouterId}/vectorTiles/{layers}/{z}/{x}/{y}.pbf
  • GET
  • GET

Data Types

JSON

type description
AStarRequest This class contains all information from the RouteRequest class required for an A* search
AbstractBuilder
AbstractEntityBuilder
AbstractTransitEntity All OTP Transit entities should extend this class. The purpose of the class is to enforce a common implementation of the identity:
  1. id - All entities should have an id. The id should be unique within the context the entity live. For aggregates which live in a global space the id must be unique. This apply to all entities listed in the index service.
  2. The hashCode()/equals() method is consistent and based on the id (identity). We frequently use this to index and lookup entities.
This class also enforce a strong type-safe relationship between entity and builder.
Accessibility Use this class to describe if a feature is accessible POSSIBLE, not accessible NOT_POSSIBLE or if we do not know NO_INFORMATION.

This can be used during routing to add extra cost or prune the search, depending on the user preferences.

AccessibilityScoreFilter An experimental feature for calculating a numeric score between 0 and 1 which indicates how accessible the itinerary is as a whole. This is not a very scientific method but just a rough guidance that expresses certainty or uncertainty about the accessibility.

The intended audience for this score are frontend developers wanting to show a simple UI rather than having to iterate over all the stops and trips.

Note: the information to calculate this score are all available to the frontend, however calculating them on the backend makes life a little easier and changes are automatically applied to all frontends.

Agency This class is tha same as a GTFS Agency and Netex Authority.
AgencyBuilder
ApiAbsoluteDirection An absolute cardinal or intermediate direction.
ApiAgency
ApiAlert
ApiBookingInfo Info about how a trip might be booked at a particular stop. All of this is pass-through information, except information about booking time and booking notice.
ApiBookingTime Represents either an earliest or latest time a trip can be booked relative to the departure day of the trip.
ApiConfigInfo
ApiContactInfo How to contact the agency to book a trip or requests information.
ApiCurrency
ApiFareComponent
ApiFareProduct A Fares V2 product. This is a type of ticket or monthly pass that customers can buy.
ApiFareQualifier Qualifiers for Fares V2 fare products. Qualifiers can be rider categories (youth, senior, veteran) or a fare container (smart card, app...).
ApiFeedInfo
ApiItinerary An Itinerary is one complete way of getting from the start location to the end location.
ApiItineraryFares
ApiLeg One leg of a trip -- that is, a temporally continuous piece of the journey that takes place on a particular vehicle (or on foot).
ApiLegProducts
ApiMoney
ApiPatternDetail
ApiPatternShort
ApiPlace A Place is where a journey starts or ends, or a transit stop along the way.
ApiProjectVersion
ApiRealTimeState The real-time state of a trip
ApiRelativeDirection Represents a turn direction, relative to the current heading.

CIRCLE_CLOCKWISE and CIRCLE_CLOCKWISE are used to represent traffic circles.

ApiRoute
ApiRouteShort
ApiRouterInfo
ApiRouterList
ApiServerInfo
ApiStop
ApiStopShort
ApiStopTimesInPattern
ApiSystemNotice A system notice is used to tag elements with system information.

One use-case is to run a routing search in debug-filter-mode and instead of removing itineraries from the result, the itineraries could be tagged instead. These notices are meant for system testers and developers and should not be used for end user notification or alerts.

ApiTransfer Represents a transfer from a stop
ApiTrip
ApiTripPlan A TripPlan is a set of ways to get from point A to point B at time T.
ApiTripSearchMetadata Meta-data about the trip search performed.
ApiTripShort
ApiTripTimeShort
ApiVehicleParkingSpaces
ApiVehicleParkingWithEntrance The details of a parking place along with the entrance used.
ApiVehicleRentalStation
ApiVehicleRentalStationList
ApiVersionControlInfo
ApiVertexType Represent type of vertex, used in Place aka from, to in API for easier client side localization
ApiWalkStep Represents one instruction in walking directions. Three examples from New York City:

Turn onto Broadway from W 57th St (coming from 7th Ave):
distance = 100 (say)
walkDirection = RIGHT
streetName = Broadway
everything else null/false

Now, turn from Broadway onto Central Park S via Columbus Circle
distance = 200 (say)
walkDirection = CIRCLE_COUNTERCLOCKWISE
streetName = Central Park S
exit = 1 (first exit)
immediately everything else false

Instead, go through the circle to continue on Broadway
distance = 100 (say)
walkDirection = CIRCLE_COUNTERCLOCKWISE
streetName = Broadway
exit = 3
stayOn = true
everything else false

AreaEdge This represents a street segment.
AreaEdgeList This is a representation of a set of contiguous OSM areas, used for various tasks related to edge splitting, such as start/endpoint snapping and adding new edges during transit linking.
AreaStop Location corresponding to a location where riders may request pickup or drop off, defined in the GTFS bundle.
AreaStopBuilder
BarrierVertex This vertex is created from all barrier tags.

Currently only barrier=bollard is supported. Node barrier=bollard implies access=no, foot=yes, bicycle=yes

On this vertex geometry is split and two new edges are created.

If start/end vertex of StreetEdge is BarrierVertex edge isn't traversable with CAR.

Created by mabu on 11.5.2015.

BikeAccess GTFS codes: 0 = unknown / unspecified, 1 = bikes allowed, 2 = bikes NOT allowed
BitSet
BoardingArea A place along a platform, where the vehicle van be boarded. Equivalent to GTFS stop location.
BoardingAreaBuilder Acts as the supertype for all entities, except stations, created from the GTFS stops table. Most of the fields are shared between the types, and eg. in pathways the namespace any of them can be used as from and to.
BoardingLocationToStopLink This represents the connection between a boarding location and a transit vertex where going from the street to the vehicle is immediate and you don't want to display a polyline to the user.
Branding OTP model for branding. Common for both NeTEx and GTFS.
BrandingBuilder
CarPickupState
Cloneable
Comparable
ComposingSkipEdgeStrategy Use several strategies in composition with each other, for example by limiting by time and number of stops visited. Only one needs to be skipped in order for Edge) to return null.
ConfiguredDataSource A pair linking together a data source and its custom configuration.
ConstrainedTransfersForPatterns This is a container for returning a tuple of forward and reverse constrained transfers from the mapper to the transit layer.
Coordinate
CoordinateArrayListSequence An instance of CoordinateSequence that can be efficiently extended
CoordinateSequence
CoordinateSequenceFactory
DebugOutput Holds information to be included in the REST Response for debugging and profiling purposes.
DebugRequest This class configure the amount of debugging you want for your request. Debugging is supported by an event model and event listeners must be provided to receive any debug info.

To debug unexpected results is sometimes very time consuming. This class make it possible to list all stop arrival events during the search for a given list of stops and/or a path.

The debug events are not returned as part of the result, instead they are posted to registered listeners. The events are temporary objects; hence you should not hold a reference to the event elements or to any part of it after the listener callback completes.

One of the benefits of the event based return strategy is that the events are returned even in the case of an exception or entering a endless loop. You don´t need to wait for the result to start analyze the results.

Debugging stops

By providing a small set of stops to debug, a list of all events for those stops are returned. This can be useful both to understand the algorithm and to debug events at a particular stop.

Debugging path

To debug a path(or trip), provide the list of stops and a index. You will then only get events for that particular sequence of stops starting with the stop at the given index. This is very effect if you expect a trip and don´t get it. Most likely you will get a REJECT or DROP event for your trip in return. You will also get a list of tips dominating the particular trip.
DefaultRaptorTransfer Encapsulate information about a transfer path.
DefaultScalarColorPalette A default ColorPalette with two ranges: min-max-maxMax. It modifies the hue between two colors in the first range (here from green to red, via blue), and modify the brightness in the second range (from red to black).
DiffEntry
DiffList
Direction The direction of travel for a TripPattern. This is mapped 1-to-1 in NeTEx, while in GTFS only values 0 and 1 are available, so they are mapped to OUTBOUND and INBOUND. When mapping from the model to the REST API, CLOCKWISE and ANTICLOCKWISE are also mapped to 0 and 1 (as they would also fit the description in the GTFS specification).
Edge This is the standard implementation of an edge with fixed from and to Vertex instances; all standard OTP edges are subclasses of this.
ElevationMetadata Contains elevation-specific metadata to be included in the response

Created by demory on 2/16/17.

ElevatorAlightEdge A relatively low cost edge for alighting from an elevator. All narrative generation is done by the ElevatorAlightEdge (other edges are silent), because it is the only edge that knows where the user is to get off.
ElevatorBoardEdge A relatively high cost edge for boarding an elevator.
ElevatorHopEdge A relatively low cost edge for travelling one level in an elevator.
ElevatorOffboardVertex Abstract base class for vertices in the street layer of the graph. This includes both vertices representing intersections or points (IntersectionVertices) and Elevator*Vertices.
ElevatorOnboardVertex Abstract base class for vertices in the street layer of the graph. This includes both vertices representing intersections or points (IntersectionVertices) and Elevator*Vertices.
EncodedPolyline A list of coordinates encoded as a string.

See Encoded polyline algorithm format

EncodedPolylineBeanWithStops
Entrance A place where a station connects to the street network. Equivalent to GTFS stop location .
EntranceBuilder A place where a station connects to the street network. Equivalent to GTFS stop location .
EntryOfStringAndString
Envelope
ExitVertex A vertex coming from OpenStreetMap.

This class marks something that comes from the street network itself. It is used for linking origins in Analyst to ensure that they are linked to the same locations regardless of changes in the transit network between (or eventually within) graphs.

FareComponent

FareComponent is a sequence of routes for a particular fare.

FareContainer
FareLegRule
FareProduct
FareRulesData
FareTransferRule
FareZone Equal to GTFS zone_id or NeTEx TariffZone. TODO This should at some point be connected to Agency or Operator. Currently is is up to the user to make this connection (based on TariffZone id).
FareZoneBuilder
FaresFilter Filter, sort or decorate itineraries. A filter can modify the elements in the list, but not the List. It should treat the list as immutable. Do not change the list passed into the filter, instead make a copy, change it and return the copy. It is allowed to return the list unchanged.

A filter should do only one thing! For example do not change the itineraries and delete elements in the same filter. Instead, create two filters and insert them after each other in the filter chain.

This allows decoration of each filter and make it easier to reuse logic. Like the is reused in several places.

FeedScopedId
FlexAccessEgressTemplate
FlexAccessTemplate
FlexEgressTemplate
FlexPath This class contains the results from a FlexPathCalculator.
FlexTrip This class represents the different variations of what is considered flexible transit, and its subclasses encapsulates the different business logic, which the different types of services adhere to.
FlexTripBuilder
FlexTripEdge This is the standard implementation of an edge with fixed from and to Vertex instances; all standard OTP edges are subclasses of this.
FormFactor
FreeEdge An edge that costs nothing to traverse. Used for connecting intersection vertices to the main edge-based graph.
FrequencyEntry Uses a TripTimes to represent multiple trips following the same template at regular intervals. (see GTFS frequencies.txt)
Geometry
GeometryCollection
GeometryFactory
GroupOfRoutes OTP model for NeTEx GroupOfLines. Not used for GTFS at the moment. This is used to categorize lines based on their particular purposes such as fare harmonization or public presentation. For example divide lines into commercial and non-commercial groups.
GroupOfRoutesBuilder OTP model for NeTEx GroupOfLines. Not used for GTFS at the moment. This is used to categorize lines based on their particular purposes such as fare harmonization or public presentation. For example divide lines into commercial and non-commercial groups.
GroupOfStations A grouping that can contain a mix of Stations and MultiModalStations. It can be used to link several StopPlaces into a hub. It can be a grouping of major stops within a city or a cluster of stops that naturally belong together.
GroupOfStationsBuilder
GroupOfStationsPurpose Categorization for the grouping
GroupStop A group of stopLocations, which can share a common Stoptime
GroupStopBuilder
GtfsFaresService Computes a fare for a given sequence of Rides. The FareService is serialized as part of the Graph; Hence it should be Serializable.
HeuristicAtStop Heuristic data for a given stop.
HttpsFileDataSource This class is a wrapper around an HTTPS resource.

Reading compressed HTTPS resources is supported. The only format supported is gzip (extension .gz).

I18NString This interface is used when providing translations on server side. Sources: OSM tags with multiple languages (like street names), or TranslatedString fields in GTFS-RT Alert messages.
InspectorLayer
InspectorLayersList
IntersectionVertex Represents an ordinary location in space, typically an intersection.
IsochroneData A conveyor for an isochrone.
JourneyRequest
LegProducts
LineString
LocalizedString This is used to localize strings for which localization are known beforehand. Those are local names for: unanamedStreet, corner of x and y, path, bike_path etc.

Translations are in src/main/resources/WayProperties_lang.properties and internals_lang.properties

locale is set in request.

LocalizedStringFormat This interface is used when providing translations on server side. Sources: OSM tags with multiple languages (like street names), or TranslatedString fields in GTFS-RT Alert messages.
LogInfo Implement this interface to include more info into the toString.
MainAndSubMode A tupple of main- and sub-mode for use in netex import only
MainAndSubMode Tupple of main- and sub-mode.
Message The purpose of Messages is to read supply Message.properties to underlying calling code... The ENUM's enumerated values should be named to reflect the property names inside of Message.properties
MinMap A HashMap that has been extended to track the greatest or smallest value for each key. Note that this does not change the meaning of the 'put' method. It adds two new methods that add the min/max behavior. This class used to be inside SimpleIsochrone.
Money
MultiModalStation The next level grouping of stops above Station. Equivalent to NeTEx multimodal StopPlace. As a Station (NeTEx StopPlace) only supports a single transit mode, you are required to group several Stations together using a MultiModalStation in order to support several modes. This entity is not part of GTFS.
MultiModalStationBuilder
NamedArea A named area is a subset of an area with a certain set of properties (name, safety, etc). Its originalEdges may include some edges which are crossable (because they separate it from another contiguous and routeable area).
NodeInfo Information about a configuration parameter.
NonLocalizedString This is to support strings which can't be localized.

It just returns string it is given in constructor.

OHCalendar
Operator A company which is responsible for operating public transport services. The operator will often operate under contract with an Authority (Agency).

Netex ONLY. Operators are available only if the data source is Netex, not GTFS.

OperatorBuilder
OsmBoardingLocationVertex A vertex for an OSM node that represents a transit stop and has a tag to cross-reference this to a stop. OTP will treat this as an authoritative statement on where the transit stop is located within the street network.

The source of this location can be an OSM node (point) in which case the precise location is used.

If the source is an area (way) then the centroid is computed and used.

OsmVertex A vertex coming from OpenStreetMap.

This class marks something that comes from the street network itself. It is used for linking origins in Analyst to ensure that they are linked to the same locations regardless of changes in the transit network between (or eventually within) graphs.

PackedCoordinateSequence
PathwayEdge A walking pathway as described in GTFS
PathwayMode
PathwayNode A place where a station connects to the street network. Equivalent to GTFS stop location .
PathwayNodeBuilder A place where a station connects to the street network. Equivalent to GTFS stop location .
PatternRide This class represent the STATE for one possible path up until the point where a given trip is boarded(onboard of a vehicle). It represent the STATE of riding a trip, having boarded at a given stop, but not yet alighted.

Instances of this class only exist in the context of a given pattern for a given round. Hence when comparing instances we may assume that they have the same number-of-transfers and the same Pattern. We take advantage of this by excluding all "constant" criteria from the pattern-ride comparator used by the pareto-set of patternRides.

This implementation of the multi-criteria Range Raptor keep all pareto-optimal _rides_ for each pattern while possessing each stops down the line. This class keep the needed state for these rides to avoid recalculating each value more than once and to be able put then in a .

We do not do this the same way as described in the original Raptor paper. The original McRaptor algorithm keep a bag of labels(stop-arrivals) while traversing the pattern. We keep a "bag" of patternRides in MultiCriteriaRoutingStrategy for the given pattern. The main differences are:

  • Alight-/arrival specific cost is not included when comparing PatternRides. This is ok, since we add this before adding a path to the stop-arrivals at a given stop. This assumes that the cost of alighting/arrival is the same for all paths arriving by the same trip. This allow us to eliminate paths, without doing the actual stop-arrival cost calculation.
  • We do NOT allow a one trip to exclude the pattern-rides of another trip in the pareto-set. Two PatternRides are both optimal, if they have boarded the same pattern, in the same round, but on different trips/vehicles. This have no measurable impact on performance, compared with allowing an earlier trip dominating a later one. But, it allows for a trip to be optimal at some stops, and another trip to be optimal at other stops. This may happen if the generalized-cost is not increasing with the same amount for each trip between each stop.
  • We do not have to update all elements in the "pattern-bag" for every stop visited. The relative-cost is calculated once - when adding the path to the "pattern-bag" of PatternRides.
PlaceAtDistance A place of any of the types defined in PlaceType at a specified distance.
PlannerError This API response element represents an error in trip planning.
Point
PrecisionModel
ProductResult
PropulsionType
RealTimeState The real-time state of a trip
RealtimeVehiclePosition Internal model of a realtime vehicle position.
Record
RegularStop A place where actual boarding/departing happens. It can be a bus stop on one side of a road or a platform at a train station. Equivalent to GTFS stop location 0 or NeTEx quay.
RegularStopBuilder A place where actual boarding/departing happens. It can be a bus stop on one side of a road or a platform at a train station. Equivalent to GTFS stop location 0 or NeTEx quay.
RentalVehicleType
RepeatingTimePeriod Represents a repeating time period, used for opening hours etc. For instance: Monday - Friday 8AM to 8PM, Satuday 10AM to 5PM, Sunday closed. For now it is week-based so doesn't handle every possible case, but since it is encapsulated that could conceivably be changed.
RiderCategory
Route Implement this interface to include more info into the toString.
RouteBuilder
RouteMatcher A RouteMatcher is a collection of routes based on IDs, short name and/or agency IDs.

We currently support route full IDs (agency ID + route ID), agency ID + route name, or route name only. Support for other matching expression can be easily added later on.

RouteOriginDestination
RouteRequest A trip planning request. Some parameters may not be honored by the trip planner for some or all itineraries.

All defaults should be specified here in the RouteRequest, NOT as annotations on query parameters in web services that create RouteRequests. This establishes a priority chain for default values: RouteRequest field initializers, then JSON router config, then query parameters.

RoutingPreferences User/trip cost/time/slack/reluctance search config.
RoutingTripPattern The split between TripPattern and RoutingTripPattern is done for the following technical reasons: - The RTP is accessed frequently during the Raptor search, and we want it to be as small as possible to load/access it in the cache and CPU for performance reasons. - Also, we deduplicate these so a RTP can be reused by more than one TP. - This also provide explicit documentation on witch fields are used during a search and witch are not.
SafetyFeatures Record that holds forward and back safety factors for cycling or walking.
ScheduledTransitLegReference A reference which can be used to rebuild an exact copy of a ScheduledTransitLeg using the RoutingService
SiriETGooglePubsubUpdaterParameters
SplitterVertex A vertex representing a place along a street between two intersections that is not derived from an OSM node, but is instead the result of breaking that street segment into two pieces in order to connect it to a transit stop.
State
StateData StateData contains the components of search state that are unlikely to be changed as often as time or weight. This avoids frequent duplication, which should have a positive impact on both time and space use during searches.
Station A grouping of stops in GTFS or the lowest level grouping in NeTEx. It can be a train station, a bus terminal, or a bus station (with a bus stop at each side of the road). Equivalent to GTFS stop location type 1 or NeTEx monomodal StopPlace.
StationBuilder
StationElement Acts as the supertype for all entities, except stations, created from the GTFS stops table. Most of the fields are shared between the types, and eg. in pathways the namespace any of them can be used as from and to.
StationElementBuilder Acts as the supertype for all entities, except stations, created from the GTFS stops table. Most of the fields are shared between the types, and eg. in pathways the namespace any of them can be used as from and to.
StaySeatedNotAllowed
StopLocation A StopLocation describes a place where a vehicle can be boarded or alighted, which is not necessarily a marked stop, but can be of other shapes, such as a service area for flexible transit. StopLocations are referred to in stop times.
StopLocationsGroup A grouping of Stops referred to by the same name. No actual boarding or alighting happens at this point, but rather at its underlying childStops.
StopPattern This class represents what is called a JourneyPattern in Transmodel: the sequence of stops at which a trip (GTFS) or vehicle journey (Transmodel) calls, irrespective of the day on which service runs.

An important detail: Routes in GTFS are not a structurally important element, they just serve as user-facing information. It is possible for the same journey pattern to appear in more than one route.

OTP already has several classes that represent this same thing: A TripPattern in the context of routing. It represents all trips with the same stop pattern A ScheduledStopPattern in the GTFS loading process. A RouteVariant in the TransitIndex, which has a unique human-readable name and belongs to a particular route.

We would like to combine all these different classes into one.

Any two trips with the same stops in the same order, and that operate on the same days, can be combined using a TripPattern to simplify the graph. This saves memory and reduces search complexity since we only consider the trip that departs soonest for each pattern. Field calendarId has been removed. See issue #1320.

A StopPattern is very closely related to a TripPattern -- it essentially serves as the unique key for a TripPattern. Should the route be included in the StopPattern?

StopTransferPriority Categorize how suitable a Station or Transfer is it for transfer. The values arrange stops from transfer DISCOURAGED to PREFERRED. First of all this should encourage transfers between two trips/routes to happen at the best possible location if there are multiple stop to choose from. But, it will also apply to score a journey over another one, if one of the journeys score better on the transfers, and they have the same cost.
StreetEdge This represents a street segment.
StreetLocation Represents a location on a street, somewhere between the two corners. This is used when computing the first and last segments of a trip, for trips that start or end between two intersections. Also for situating bus stops in the middle of street segments.
StreetRequest
StreetTransitEntityLink This represents the connection between a street vertex and a transit vertex.
StreetTransitEntranceLink This represents the connection between a street vertex and a transit vertex belonging the street network.
StreetTransitStopLink This represents the connection between a street vertex and a transit vertex where going from the street to the vehicle is immediate -- such as at a curbside bus stop.
StreetTraversalPermission Who can traverse a street in a single direction.
StreetVehicleParkingLink This represents the connection between a street vertex and a vehicle parking vertex.
StreetVehicleRentalLink This represents the connection between a street vertex and a bike rental station vertex.
StreetVertex Abstract base class for vertices in the street layer of the graph. This includes both vertices representing intersections or points (IntersectionVertices) and Elevator*Vertices.
SubMode This class wraps a string and creates an index for it, so we can use a BitSet for matching a trip netex SubMode. SubModes are used in trip filtering for every request.

Naming; This class is named SubMode, not NetexSubMode because we want to migrate gtfsRouteType into the same concept.

This class is thread-safe, and the performance overhead should affect the graph built time, but not routing.

TemporaryFreeEdge Marker interface for temporary edges
TemporaryPartialStreetEdge Marker interface for temporary edges
TemporarySplitterVertex TODO: decide what to do with this. Currently temporary vertices have only incoming or outgoing edges But this one needs to have both since different vertex is start vertex Created by mabu on 20.5.2016.
TemporaryStreetLocation Marker interface for temporary vertices.

Remember to use the #dispose(Vertex) to delete the temporary vertex from the main graph after use.

TileJson
TimeSlopeSafetyTriangle Sets the (bicycle) triangle routing parameters -- the relative importance of safety, flatness, and speed. These three fields should have values between 0 and 1, and should add up to 1.

The constructor accepts any three numbers and will normalize them to add up to 1. time and slope are rounded to the closest two decimal number, then safety := 1.0 - (time + slope). This is done to make the rounding predictable and to allways add up to one. This allows this class to be used in an index of a cache. For example:

   ( 1.0, 1.0, 1.0 ) => ( time: 0.33, slope: 0.33, safety: 0.34 )
 

This class is currently only used with bicycle routing, but is not limited to that.

THIS CLASS IS IMMUTABLE AND THREAD-SAFE.

Timetable Timetables provide most of the TripPattern functionality. Each TripPattern may possess more than one Timetable when stop time updates are being applied: one for the scheduled stop times, one for each snapshot of updated stop times, another for a working buffer of updated stop times, etc.

TODO OTP2 - Move this to package: org.opentripplanner.model - after as Entur NeTEx PRs are merged. - Also consider moving its dependencies in: org.opentripplanner.routing - The NEW Timetable should not have any dependencies to

TimetableSnapshotSourceParameters org.opentripplanner.standalone.config.routerconfig.UpdatersConfig#timetableUpdates(org.opentripplanner.standalone.config.framework.json.NodeAdapter)
TransferMappingResult
TransitBoardingAreaVertex A vertex in the graph. Each vertex has a longitude/latitude location, as well as a set of incoming and outgoing edges.
TransitEntranceVertex A vertex in the graph. Each vertex has a longitude/latitude location, as well as a set of incoming and outgoing edges.
TransitFeeds
TransitGeneralizedCostFilterParams Input parameters for TransitGeneralizedCostFilter
TransitMode Equivalent to GTFS route_type or to NeTEx TransportMode.
TransitPathwayNodeVertex A vertex in the graph. Each vertex has a longitude/latitude location, as well as a set of incoming and outgoing edges.
TransitRequest
TransitStopVertex A vertex in the graph. Each vertex has a longitude/latitude location, as well as a set of incoming and outgoing edges.
TransitTimingOutput Holds information to be included in the REST Response for debugging and profiling purposes of a single transit routing search.
TranslatedString This is for translated strings for which translations are read from OSM or GTFS alerts.

This can be translated street names, GTFS alerts and notes.

TravelOption This class is used to send to client which Travel Options are possible on this server

This options are used in client "Travel by" drop down.

Each travel option consist of two variables: - value is a value which is sent to the server if this is chosen ("TRANSIT, WALK", "CAR", etc.) - name is a name with which client can nicely name this option even if specific value changes ("TRANSIT", "PARKRIDE", "TRANSIT_BICYCLE", etc.)

Travel options are created from org.opentripplanner.routing.graph.Graph transitModes variable and based if park & ride, bike & ride, bike sharing is supported. List itself is created in TravelOptionsMaker#makeOptions(HashSet, boolean, boolean, boolean)

TraverseMode
TraverseModeSet A set of traverse modes -- typically, one non-transit mode (walking, biking, car) and zero or more transit modes (bus, tram, etc). This class allows efficiently adding or removing modes from a set.
Trip Implement this interface to include more info into the toString.
TripAlteration Alterations specified on a Trip in the planned data. This is in some ways equivalent with GTFS-RT scheduled relationship.
TripBuilder
TripDegenerate Represents noteworthy data import issues that occur during the graph building process. These issues should be passed on the the org.opentripplanner.graph_builder.DataImportIssueStore fwitch will be responsible for logging, summarizing and reporting the issue.

Do NOT log the issue in the class where the issue is detected/created.

TripIdAndServiceDate Class to use as key in HashMap containing feed id, trip id and service date
TripPattern Represents a group of trips on a route, with the same direction id that all call at the same sequence of stops. For each stop, there is a list of departure times, running times, arrival times, dwell times, and wheelchair accessibility information (one of each of these per trip per stop). Trips are assumed to be non-overtaking, so that an earlier trip never arrives after a later trip.

This is called a JOURNEY_PATTERN in the Transmodel vocabulary. However, GTFS calls a Transmodel JOURNEY a "trip", thus TripPattern.

The id is a unique identifier for this trip pattern. For GTFS feeds this is generally generated in the format FeedId:Agency:RouteId:DirectionId:PatternNumber. For NeTEx the JourneyPattern id is used.

TripPatternBuilder
TripPlannerResponse Represents a trip planner response, will be serialized into XML or JSON by Jersey
TripTimes A TripTimes represents the arrival and departure times for a single trip in an Timetable. It is carried along by States when routing to ensure that they have a consistent, fast view of the trip when realtime updates have been applied. All times are expressed as seconds since midnight (as in GTFS).
TurnRestriction
TurnRestrictionType
Type
UpdateError
UpdateResult
VehicleParking Vehicle parking locations, which may allow bicycle and/or car parking.

All fields are immutable except for the availability, capacity which may be updated by updaters. If any other properties change a new VehicleParking instance should be created.

VehicleParkingAndGroup Record that holds VehicleParkingGroup and a set of VehicleParking that belong to it.
VehicleParkingEdge Parking a vehicle edge.
VehicleParkingEntrance
VehicleParkingEntranceVertex A vertex for a vehicle parking entrance.

Connected to streets by StreetVehicleParkingLink. Transition for parking the bike is handled by VehicleParkingEdge.

VehicleParkingGroup Group of vehicle parking locations.

All fields are immutable. If any other properties change a new VehicleParkingGroup instance should be created.

VehicleParkingRequest
VehicleParkingSpaces The number of spaces by type. null if unknown.
VehicleParkingState The state of the vehicle parking. TEMPORARILY_CLOSED and CLOSED are distinct states so that they may be represented differently to the user.
VehiclePositionUpdaterRunnable The graph should only be modified by a runnable implementing this interface, executed by the GraphUpdaterManager. A few notes: - Don't spend more time in this runnable than necessary, it might block other graph writer runnables. - Be aware that while only one graph writer runnable is running to write to the graph, several request-threads might be reading the graph. - Be sure that the request-threads always see a consistent view of the graph while planning.
VehiclePositionsUpdaterParameters This is named PollingGraphUpdaterConfig instead of Config in order to not conflict with the config interfaces of child classes.
VehicleRentalEdge Renting or dropping off a rented vehicle edge.
VehicleRentalPlace Represents a place where a rental vehicle can be rented from, or dropped off at. Currently, there are two implementing classes, VehicleRentalStation which represents a physical station, and VehicleRentalVehicle, which represents a free floating vehicle, which is not bound to a station.
VehicleRentalPlaceVertex A vertex for a rental vehicle or station. It is connected to the streets by a StreetVehicleRentalLink. To allow transitions on and off a vehicle, it has VehicleRentalEdge loop edges.
VehicleRentalRequest
VehicleRentalState
VehicleRentalStation Implements the VehicleRentalPlace class which contains Javadoc.
VehicleRentalStationUris Contains rental URIs for Android, iOS, and web in the android, ios, and web fields. See the GBFS station_information.json specification for more details.
VehicleRentalSystem Based on https://github.com/NABSA/gbfs/blob/master/gbfs.md#system_informationjson
VehicleRentalSystemAppInformation Based on the field rental_apps in {@ https://github.com/NABSA/gbfs/blob/master/gbfs.md#system_informationjson
VehicleRentalVehicle Implements the VehicleRentalPlace class which contains Javadoc.
Vertex A vertex in the graph. Each vertex has a longitude/latitude location, as well as a set of incoming and outgoing edges.
WayPropertyPicker Associates an OSMSpecifier with some WayProperties. The WayProperties will be applied an OSM way when the OSMSpecifier matches it better than any other OSMSpecifier in the same WayPropertySet. WayPropertyPickers may be mixins, in which case they do not need to beat out all the other WayPropertyPickers. Instead, their safety values will be applied to all ways that they match multiplicatively.
WgsCoordinate This class represent a OTP coordinate.

This is a ValueObject (design pattern).

WheelchairPreferences See the configuration for documentation of each field.

THIS CLASS IS IMMUTABLE AND THREAD-SAFE.