Routing API
A combined transport, also known as an intermodal transport, uses multiple modes of transportation for moving goods. Typically, vehicles are used for the first and last part of a route and boats or trains for the middle part. With the Routing API of PTV Developer you can calculate a route including
- a ferry where the vehicle drives onto a boat or
- a rail shuttle where the vehicle is put on a train.
Ferries and rail shuttles are automatically planned on a route, if it is advantageous compared to road. For example a ferry may be taken to avoid a big detour on the road. A rail shuttle may be used to cross the Alps without the necessity to drive over a mountain pass. It is also possible to avoid combined transports on a route, for example to reduce extra costs (see concept Avoid). But even then a combined transport may be taken, for example when a waypoint is on an island but there is no bridge.
Sometimes specific ferry or rail shuttle connections should be chosen. Therefore the corresponding start and destination coordinates have to be specified and the nearest port or station is used on the route (see concept Waypoint). It is recommended to use the exact coordinates, especially in large ports with many ferry lines. To find and identify them, use the Data API as described below.
Data API
To specify the exact coordinates of a combined transport in the Routing API, the method getCombinedTransports in the Data API offers two possibilities finding them:
- By position: Provide a coordinate as input (for example a point on a map) and a list of nearby combined transports is returned.
- By text: Provide a string as input (for example the name of the start port) and a list of combined transports matching the string is returned.
To identify a specific ferry or rail shuttle connection, the result contains information like the name of the combined transport, the duration or the allowed vehicles. Moreover, the name and exact coordinates of start and destination is included using it as a waypoints parameter in the method calculateRoute of the Routing API.