forked from opentripplanner/OpenTripPlanner
-
Notifications
You must be signed in to change notification settings - Fork 2
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge pull request #182 from ibi-group/upstream-merge-2023-09-01
Upstream merge 2023-09-01
- Loading branch information
Showing
231 changed files
with
5,017 additions
and
1,636 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,7 @@ | ||
This page is intended as an exhaustive listing of what OTP's routing engine is capable of and | ||
therefore documents internal names. Since OTP has multiple APIs where each works slightly differently, | ||
please consult your API documentation on how to select the appropriate mode. | ||
|
||
<!-- INSERT: street-modes --> | ||
|
||
<!-- INSERT: transit-modes --> |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,109 @@ | ||
OTP offers a variety of ways to produce precise walking instructions | ||
for walking inside a station or between transit stops. | ||
|
||
### OSM generated navigation | ||
|
||
In the most common case, the walking instructions for reaching a transit stop are generated from the | ||
available OSM data. For this reason it is important that the coordinate of the stop is as close as | ||
possible to where the passenger is expected to wait for the vehicle, not where the vehicle will stop. | ||
|
||
It is therefore a good idea to place the stop coordinates at a bus shelter or railway platform | ||
rather than at the middle of the road or the railway tracks. | ||
|
||
Of course you also want the data in OSM as precise as possible: data for railway platforms, stairs, | ||
tunnels and other infrastructure help OTP to generate good walking instructions. | ||
|
||
#### Example: exiting a railway platform | ||
|
||
The train arrives in a [railway station in Stuttgart](https://www.openstreetmap.org/#map=19/48.73761/9.11627) | ||
(green line), the passenger alights and is instructed (grey line) to walk along the platform, | ||
up the stairs and across a [bridge](https://www.openstreetmap.org/way/22908778) to continue to | ||
their final destination. | ||
|
||
![Exiting Oesterfeld station](images/exiting-oesterfeld.png) | ||
|
||
### Boarding locations | ||
|
||
If your stop coordinates are not very well-placed, OTP may direct passengers to the wrong waiting | ||
location or offer incorrect transfer paths and time. As this a common problem and stop coordinates | ||
can be hard to change due to upstream systems, OTP offers a | ||
[way to derive the waiting coordinates](BoardingLocations.md) from OSM data. | ||
|
||
Even if your stop coordinates are good, some stations are underground and to get correct walking | ||
instructions it's required to use this feature so that correct instructions for using entrances and | ||
stairs are generated. | ||
|
||
#### Example: walking downstairs to underground stations | ||
|
||
This shows an underground [subway station in Stuttgart](https://www.openstreetmap.org/way/122569371) | ||
which can only be reached by using entrances at either end walking down to the platform via | ||
a series of stairs and walkways. OTP can only generate these detailed instructions because the platform | ||
has a tag `ref:IFOPT` which identifies it in the German national stop register. | ||
|
||
![Boarding Schwabstrasse](images/boarding-schwabstrasse.png) | ||
|
||
### GTFS pathways | ||
|
||
If your GTFS input file contains [pathways](https://github.com/google/transit/blob/master/gtfs/spec/en/reference.md#pathwaystxt) | ||
this will override the OSM-generated instructions. It is therefore important that the pathways | ||
contain as much precision as possible. | ||
|
||
One advantage that pathways offer is the possibility to add information like "follow signs for X" | ||
which OTP adds to the textual turn-by-turn instructions. | ||
|
||
#### Example: Transferring at Südkreuz | ||
|
||
Here the pathways don't offer a lot of precision: In a [railway hub in Berlin](https://www.openstreetmap.org/#map=18/52.47572/13.36534&layers=T) | ||
there are suboptimal instructions on how to move from one platform to another because the pathways | ||
only contain rudimentary information about how to move inside the station. (The red lines represent | ||
train lines with the grey line showing the walking path.) | ||
|
||
![Transferring at Suedkreuz](images/transfer-suedkreuz.png) | ||
|
||
### Transfers | ||
|
||
The above precedence rules of | ||
|
||
- GTFS pathways, if it exists | ||
- then OSM data | ||
|
||
also apply when computing transfers from one stop to another. | ||
|
||
#### Example: transferring from tram to rail at Oslo Central | ||
|
||
Here the passenger arrives in a local tram (blue line) near the [main station in Oslo](https://www.openstreetmap.org/#map=17/59.90964/10.75503). They are | ||
instructed (grey line) to walk into the station right onto the correct platform and leave | ||
on a long-distance train (red line). | ||
|
||
![Transferring at Oslo 1](images/transfer-oslo-1.png) | ||
|
||
#### Example: transferring between platforms at Oslo Central | ||
|
||
This example instructs the passenger to get off a train, then walking down the stairs and via a tunnel | ||
to another platform. | ||
|
||
![Transferring at Oslo 2](images/transfer-oslo-2.png) | ||
|
||
### Transfer time | ||
|
||
The routing engine calculates the time to move from one stop to another by how long it thinks the | ||
walking takes based on the navigation instructions outlined above. So, if OTP thinks that | ||
it takes 5 minutes to walk from platform 1 to platform 8, then the routing algorithm will not suggest | ||
a transit connection that departs less than 5 minutes after arriving at platform 1. | ||
|
||
However, how fast the passenger is assumed to walk is controllable through the walk speed parameter. | ||
This can be configured per installation or passed as an API call parameter. | ||
|
||
The parameters [`alightSlack`](RouteRequest.md#rd_alightSlack), [`transferSlack`](RouteRequest.md#rd_transferSlack) | ||
and [`boardSlack`](RouteRequest.md#rd_boardSlack) also allow you to define extra buffer time | ||
for transferring. | ||
|
||
[GTFS minimum transfer times](https://github.com/google/transit/blob/master/gtfs/spec/en/reference.md#transferstxt) | ||
are also supported but generally not advised. It is preferable to micromap your stations and | ||
improve the stop coordinates rather than force specific transfer times by adding this data. | ||
|
||
### Common data errors | ||
|
||
- Stop coordinates not where passengers are expected to board | ||
- All stops/platforms in a railway station having the same coordinates | ||
- OSM platforms [not connected to the street network](https://github.com/opentripplanner/OpenTripPlanner/issues/5029) |
Oops, something went wrong.