Developer's Guide > API Documentation > API Documentation PTV xTour > Plan

Component xtour

Diagrams

Plan

Exceptions

PlanningParams Options

Order

XTour

Vehicle

Proposals

PlanningParams

Operations

planBasicTours

Plans new tours and optimizes existing ones. All necessary objects (transport orders, depots, vehicles, optionally already existing tours) are imported in this method. The calculation of a distance matrix is done internally. There are different use cases possible (calculation, standard planning, area planning, amending, balancing, vehicle scheduling). As a result of the method a tour plan is exported.
Parameter Name Type Description
transportOrders TransportOrder[] The list of transport orders. Only TransportDpts and/or TransportABs are allowed (required).
depots Depot[] The list of depots (required).
fleet Fleet The fleet of vehicles (required).
planningParams PlanningParams The planning parameters controlling the tour optimization. Only the use cases CalculationParams, StandardParams, AreaParams or BalancingParams are allowed (required).
inputPlan Plan A previously planned tour plan which is used to start the planning from (optional). Not all of the parameters will be used, see the description of the related elements. An input plan must always contain at least one tour point.
Return Type Description
Plan The results of the tour optimization including the planned tours and some additional information.
XTourException Thrown if an xTour server exception such as an invalid request parameter occurs.
XServiceException Thrown if a PTV xServer framework exception occurs.

startPlanBasicTours

This is the asynchronous version of planBasicTours. Calling this method will not block until the result has been calculated. Instead of a result object a Job object is returned which identifies the started calculation. To get status updates on a running job use the method watchJob and check the attribute status of type JobStatus. If it turns to SUCCEEDED, the calculation was successful and the result can be obtained using fetchPlan. If the job ended with status FAILED, fetchPlan throws the exception that occured during calculation.
Parameter Name Type Description
transportOrders TransportOrder[] The list of transport orders. Only TransportDpts and/or TransportABs are allowed (required).
depots Depot[] The list of depots (required).
fleet Fleet The fleet of vehicles (required).
planningParams PlanningParams The planning parameters controlling the tour optimization. Only the use cases CalculationParams, StandardParams, AreaParams or BalancingParams are allowed (required).
inputPlan Plan A previously planned tour plan which is used to start the planning from (optional). Not all of the parameters will be used, see the description of the related elements. An input plan must always contain at least one tour point.
Return Type Description
Job The Job reference.
XTourException Thrown if an xTour server exception such as an invalid request parameter occurs.
XServiceException Thrown if a PTV xServer framework exception occurs.

fetchPlan

Fetches results of type Plan for the given job id. If the calculation ended with an exception fetchPlan will rethrow it. If the id of the job is unknown a SystemException with message 'unknown id' is thrown.
Parameter Name Type Description
id String The id of the job.
Return Type Description
Plan The results of the tour optimization including the planned tours and some additional information.
XTourException Thrown if an xTour server exception such as an invalid request parameter occurs.
XServiceException Thrown if a PTV xServer framework exception occurs.

planSequence

Plans the sequence of the transport orders within one vehicle tour. In contrast to the method planBasicTours() this method is easier to use as only the simplified objects (transport orders, depots, one vehicle, optionally one already existing tour) required for sequence optimization are imported. As a result of the method one tour is exported.

Parameter Name Type Description
transportOrders SequencingTransportOrder[] The SequencingTransportOrders to be calculated.
depots Depot[] A list of depots.
vehicle SequencingVehicle The SequencingVehicle that should be used.
sequencingParams SequencingParams The parameter object for the calculation.
inputPlan SequencingPlan A previously planned sequencing plan which is used to start the planning from (optional). Not all of the parameters will be used, see the description of the related elements. An input plan must always contain at least one tour point.
Return Type Description
SequencingPlan The resulting plan.
XTourException Thrown if an xTour server exception such as an invalid request parameter occurs.
XServiceException Thrown if a PTV xServer framework exception occurs.

startPlanSequence

This is the asynchronous version of planSequence. Calling this method will not block until the result has been calculated. Instead of a result object a Job object is returned which identifies the started calculation. To get status updates on a running job use the method watchJob and check the attribute status of type JobStatus. If it turns to SUCCEEDED, the calculation was successful and the result can be obtained using fetchSequencingPlan. If the job ended with status FAILED, fetchSequencingPlan throws the exception that occured during calculation.
Parameter Name Type Description
transportOrders SequencingTransportOrder[] The SequencingTransportOrders to be calculated.
depots Depot[] A list of depots.
vehicle SequencingVehicle The SequencingVehicle that should be used.
sequencingParams SequencingParams The parameter object for the calculation.
inputPlan SequencingPlan A previously planned sequencing plan which is used to start the planning from (optional). Not all of the parameters will be used, see the description of the related elements. An input plan must always contain at least one tour point.
Return Type Description
Job The Job reference.
XTourException Thrown if an xTour server exception such as an invalid request parameter occurs.
XServiceException Thrown if a PTV xServer framework exception occurs.

fetchSequencingPlan

Fetches results of type SequencingPlan for the given job id. If the calculation ended with an exception fetchSequencingPlan will rethrow it. If the id of the job is unknown a SystemException with message 'unknown id' is thrown.
Parameter Name Type Description
id String The id of the job.
Return Type Description
SequencingPlan The resulting plan.
XTourException Thrown if an xTour server exception such as an invalid request parameter occurs.
XServiceException Thrown if a PTV xServer framework exception occurs.

findToursForUnscheduledOrder

Finds the best matching tours for an unscheduled transport order. The method generates a number of scenarios to support order insertion decisions on client side. All necessary objects (transport orders including the unscheduled one, depots, vehicles, tours) are imported in this method. As a result of the method a list of possible insertion proposals ordered by costs is exported.

Parameter Name Type Description
unscheduledOrderId int The unique key to identify the unscheduled order.
transportOrders TransportOrder[] The list of transport orders. Only TransportDpts and/or TransportABs are allowed (required).
depots Depot[] The list of depots (required).
fleet Fleet The fleet of vehicles (required).
params FindToursForOrderParams Additional params for finding the proposals.
inputPlan Plan A previously planned tour plan which might contain tours that are already assigned to vehicles. A valid input plan must always contain at least one tour point. In case of an empty input plan a new tour is constructed using a previously unschedule vehicle.
Return Type Description
InsertOrderProposal[] An ordered array of InsertOrderProposals. One proposal per input tour or, in case of unscheduled vehicles, one proposal per combination of vehicle and start depot.
XTourException Thrown if an xTour server exception such as an invalid request parameter occurs.
XServiceException Thrown if a PTV xServer framework exception occurs.

findUnscheduledOrdersForTour

Finds the best matching unscheduled transport orders for a specific tour. The method generates a number of scenarios to support order insertion decisions on client side. All necessary objects (transport orders, depots, vehicles, tours including the specific one) are imported in this method. As a result of the method a list of possible insertion proposals ordered by costs is exported.

Parameter Name Type Description
tourId int The unique key to identify the tour.
transportOrders TransportOrder[] The list of transport orders. Only TransportDpts and/or TransportABs are allowed (required).
depots Depot[] The list of depots (required).
fleet Fleet The fleet of vehicles (required).
params FindOrdersForTourParams Additional params for finding the proposals.
inputPlan Plan A previously planned tour plan which contains the tours that can possibly be selected. A valid input plan must at least contain one tour with at least one tour point. If the input plan is empty no proposals will be returned.
Return Type Description
InsertOrderProposal[] An ordered array of InsertOrderProposals.
XTourException Thrown if an xTour server exception such as an invalid request parameter occurs.
XServiceException Thrown if a PTV xServer framework exception occurs.

findVehiclesForTour

Finds the best matching vehicles for a specific tour. The method generates a number of scenarios to support vehicle assignment decisions on client side. All necessary objects (transport orders, depots, vehicles, tours including the specific one) are imported in this method. As a result of the method a list of possible assignment proposals ordered by costs is exported.

Parameter Name Type Description
tourId int The unique key to identify the tour.
transportOrders TransportOrder[] The list of transport orders. Only TransportDpts and/or TransportABs are allowed, required).
depots Depot[] The list of depots (required).
fleet Fleet The fleet of vehicles (required).
params FindVehiclesForTourParams Additional params for finding the proposals.
inputPlan Plan A previously planned tour plan which contains at least the tour for which vehicles should be proposed. A valid input plan must at least contain one tour with at least one tour point. If the input plan is empty no proposals will be returned.
Return Type Description
AssignVehicleProposal[] An ordered array of AssignVehicleProposals.
XTourException Thrown if an xTour server exception such as an invalid request parameter occurs.
XServiceException Thrown if a PTV xServer framework exception occurs.

findToursForVehicle

Finds the best matching tours for a specific vehicle. The method generates a number of scenarios to support vehicle assignment decisions on client side. All necessary objects (transport orders, depots, vehicles including the specific one, tours) are imported in this method. As a result of the method a list of possible assignment proposals ordered by costs is exported.

Parameter Name Type Description
truckId int The unique key to identify the truck.
transportOrders TransportOrder[] The list of transport orders. Only TransportDpts and/or TransportABs are allowed (required).
depots Depot[] The list of depots (required).
fleet Fleet The fleet of vehicles (required).
params FindToursForVehicleParams Additional params for finding the proposals.
inputPlan Plan A previously planned tour plan which contains tours that can possibly be selected for the given vehicle. A valid input plan must at least contain one tour with at least one tour point. If the input plan is empty no proposals will be returned. Only valid tours in the input plan are taken into account for proposal. Invalid tours are not evaluated at all, even if they would be valid on another vehicle.
Return Type Description
AssignVehicleProposal[] An ordered array of AssignVehicleProposals.
XTourException Thrown if an xTour server exception such as an invalid request parameter occurs.
XServiceException Thrown if a PTV xServer framework exception occurs.

planOvernightTours

Plans the tours for one vehicle within one week including tours lasting several days. All necessary objects (transport orders, depots, one vehicle, optionally already existing tours) are imported in this method. There are different parameters available to control the generation of overnights or not. As a result of the method a tour plan is exported.

Parameter Name Type Description
transportOrders TransportOrder[] The list of transport orders. Only TransportDpts and/or TransportABs are allowed (required).
depots Depot[] The list of depots (required).
vehicle Vehicle The vehicle (required) that should be used to calculate the overnight stays.
overnightParams OvernightParams The parameter object for overnight tours.
inputPlan Plan A previously planned tour plan which is used to start the planning from (optional). Not all of the parameters will be used, see the description of the related elements. An input plan must always contain at least one tour point.
Return Type Description
Plan The results of the tour optimization including the planned tours and some additional information.
XTourException Thrown if an xTour server exception such as an invalid request parameter occurs.
XServiceException Thrown if a PTV xServer framework exception occurs.

startPlanOvernightTours

This is the asynchronous version of planOvernightTours. Calling this method will not block until the result has been calculated. Instead of a result object a Job object is returned which identifies the started calculation. To get status updates on a running job use the method watchJob and check the attribute status of type JobStatus. If it turns to SUCCEEDED, the calculation was successful and the result can be obtained using fetchPlan. If the job ended with status FAILED, fetchPlan throws the exception that occured during calculation.
Parameter Name Type Description
transportOrders TransportOrder[] The list of transport orders. Only TransportDpts and/or TransportABs are allowed (required).
depots Depot[] The list of depots (required).
vehicle Vehicle The vehicle (required) that should be used to calculate the overnight stays.
overnightParams OvernightParams The parameter object for overnight tours.
inputPlan Plan A previously planned tour plan which is used to start the planning from (optional). Not all of the parameters will be used, see the description of the related elements. An input plan must always contain at least one tour point.
Return Type Description
Job The Job reference.
XTourException Thrown if an xTour server exception such as an invalid request parameter occurs.
XServiceException Thrown if a PTV xServer framework exception occurs.

watchJob

Returns status information on jobs.
Parameter Name Type Description
id String The id of the job.
watchOptions WatchOptions The options to control job status and progress updates.
Return Type Description
Job The job reference.
SystemException Thrown if job management is not available, for example if it is misconfigured.

stopJob

Attempts to stop a running job. If the status of the job turns to SUCCEEDED, preliminary results can be fetched, if available.
Parameter Name Type Description
id String The id of the job to be stopped.
Return Type Description
Job The job reference.
SystemException Thrown if a preliminary result cannot be provided or job management in general is not available, for example if it is misconfigured.

deleteJob

Attempts to delete a running job. If successful the returned job will have state DELETED.
Parameter Name Type Description
id String The id of the job to be deleteed.
Return Type Description
Job The job reference.
SystemException Thrown if job management is not available, for example if it is misconfigured.

Classes

AbstractCosts

Basic cost values.
Attribute Name Type Description
costsPerKm double Costs for one kilometer tour distance ([MU/km]).
fixedCosts double The fixed costs per tour ([MU]).

AbstractTour

The base class for SequencingTour and Tour. All attributes are relevant for the input plan except for result.
Attribute Name Type Description
startTimeFixed boolean

If true, the start time of the tour is fixed during the tour optimization. In case of a fixation this point in time must be specified by startTimeEarliest.

startTimeEarliest Integer The earliest time the tour can start ([in seconds] from a reference point in time on, >= 0, optional). Usually the departure time and the start time of the tour are different things, because the start time includes the loading period at the start depot. Omitting this attribute means that the tour can start at any time.

AbstractTourPoint

The base class for SequencingTourPoint and TourPoint. All attributes are relevant for the input plan except for result.
Attribute Name Type Description
id int The unique key to identify the related tour point clearly (> 0). Depending on the type of the tour point this could be a key of a depot or a transport point. Relevant for the input plan.
description String

Additional field to describe the tour point (optional); not relevant for tour planning.

type TourPointType

Type of the tour point.

result TourPointResult Result of the planned tour point. This attribute is not relevant for the import of an existing tour point, but it appears in the export case to provide additional information.

AbstractTourResult

The abstract base class for SequencingTourResult and TourResult. Intermediate periods will not be considered here.
Attribute Name Type Description
period int The tour period from the start to the end of the planned tour [in seconds].
drivingPeriod int The sum of the driving period of all planned tour points [in seconds].
distance int The entire mileage of the tour [in meter].
distanceFromFirstToLastTransportPoint int

The distance between the first and the last tour point of the tour [in meter]. In contrast to tourDistance, this value does not comprise the distance from the depot/ vehicle location to the first tour point and from the last tour point to the depot/ vehicle location.

maxDistanceBetweenTransportPoints int

The maximum distance between two consecutive tour points of the tour [in meter].

servicePeriod int The sum of the service period of all planned tour points [in seconds].
restPeriod int The sum of the rest period on road and at the tour point of all planned tour points [in seconds].
breakPeriod int The sum of the break period on road and at the tour point of all planned tour points [in seconds].
earliness int The sum of the earliness of all planned tour points [in seconds).
waitingPeriod int The sum of the waiting period of all planned tour points [in seconds].
transportPointCount int The number of transport points in the planned tour.
startTime int The time the planned tour starts ([in seconds] from a reference point in time on).
startTimeLatest int The latest time the planned tour can end without violating time constraints ([in seconds] from a reference point in time on).
coDriverRequired boolean

If true, a co-driver will be required for this tour.

totalCosts TotalCosts The costs of the tour. Calculated with the cost values for the vehicle performing this tour ([MU]).
pickupQuantities Quantities The sum of the pickup quantities of all planned tour points ([QU]).
deliveryQuantities Quantities The sum of the delivery quantities of all planned tour points ([QU]).
maxQuantities Quantities The maximum quantities on the tour ([QU]). A pure delivery planning reaches the maximum values at the start of the tour (that means before the first tour point). A pure pickup planning reaches the maximum values at the end of the tour (that means after the last tour point). A mixed planning (simultaneous deliveries and pickups on the tour) can reach the maximum values at any tour point.
depotUploadingPeriod int

The period needed for uploading at the depot.

depotUnloadingPeriod int

The period needed for unloading at the depot.

depotAvailabilityForDeliveries Integer

The earliest time the goods of all orders are available at the start depot ([sec] from a reference point in time on). This is the maximum of all earliest availability times of all transport orders of this tour. Consequently, the tour cannot be started earlier because deliverable goods are not available, yet.

depotAvailabilityForPickups Integer

The latest time the goods of all orders have to be delivered to the end depot ([sec] from a reference point in time on). This is the minimum of all latest delivery times of all transport orders of this tour. Consequently, the tour cannot be finished later because deliverable goods have to be at the depot at this time. If this attribute is missing, the goods can be delivered to the end depot at any time.

tourChanged boolean

If true, this tour has been changed from the input plan or is newly created.

violations String[] Occured tour violations (optional). This attribute only appears, if there are violated constraints. The tour optimization only plans valid tours. A tour is valid if there are no violations of the considered constraints. An invalid tour has to be imported. See  TourViolation for details on single violations. This enumeration may be extended without further notice. Client applications must ignore unknown values.
remainingPeriods String Remaining periods caused by this tour. Use this value as an input parameter for BaseVehicle->driverSettings to calculate subsequent tours.

AbstractTransportOrder

Abstract base class for all transport orders.
Attribute Name Type Description
id int The unique key to identify the transport order clearly (> 0).
priority Integer

The priority of the order. 0 is the lowest priority, 9 the highest. Omitting this attribute means lowest priority. The priorities will be used to execute planning hierarchically, that means first all orders with the highest priority are planned, then all orders with the second highest priority and so on.

productId Integer

The unique key to identify the transported product (> 0, optional). Used only to handle product incompatibilities.

AbstractVehicle

The abstract base class for Vehicle and Trailer.
Attribute Name Type Description
depotIdStart int The unique key to identify the related start depot clearly (> 0). The start depot is the site where the vehicle is located before performing tours. -1 means that the tour starts from the first TransportPoint and not from a given start depot. 0 is an illegal value, other negative values are reserved for future use, but the behavior is undefined yet.
depotIdEnd int The unique key to identify the related end depot clearly (> 0). The end depot is the site where the vehicle is located after performing tours. -1 means that the tour ends at the last TransportPoint and not at a given end depot. 0 is an illegal value, other negative values are reserved for future use, but the behavior is undefined yet.
operatingIntervals Interval[] Spans the operating intervals in which the vehicle can operate (optional). Beyond these operating intervals the vehicle must not be moved and accumulates idle period. Moreover the dedicated driver is not allowed to work. Reaching the end of an operating interval during a tour, a vehicle waits for the start of the next operating interval to proceed the tour. If more than one operating interval is defined, the intervals have to be in ascending order and they must not overlap. Moreover the length of an interval must take at least one second. Omitting this attribute means that the vehicle can operate at any time.

This attribute must be specified in order to calculate overnight stays. For this use case operatingIntervals is equal to the driver's operating intervals. See also the attribute overnightStayPattern in the class OvernightParams.

AmendingParams

Extends StandardParams

Amending tour planning attributes. The use case described by this class executes the tour optimization by amending existing tours with the given orders. Therefore an input plan with at least one tour should be provided.
Attribute Name Type Description
vehicleChangeAllowed Boolean

If true, the algorithm can change vehicles on existing routes. The default is false.

maximumAdditionalDistance Integer

The maximum distance in meter that an additional order may cause. By default there is no restriction.

AreaParams

Extends StandardParams

Extends the class PlanningParams with area tour planning attributes. The use case described by this class executes the tour optimization and considers at the same time all area attributes of transport orders, vehicles and tours.
Attribute Name Type Description
allowMultipleToursPerArea Boolean If true, more than one tour can be assigned to the same area. Otherwise only one tour per area is allowed. In case of more than one tour, the area number positions of the transport points are ignored. Omitting this attribute means that only one tour per area is allowed.
ignoreAreaNumbersInImprovementStep Boolean If true, area numbers are ignored during the execution of the improvement step (optional). Omitting this attribute means that area numbers are considered during the execution of the improvement step.

AssignVehicleInstruction

Instructions for assigning a vehicle.
Attribute Name Type Description
tourId int

The unique key to identify the tour.

truckId int

The unique key to identify the truck.

trailerId int

The unique key to identify the trailer.

trainId int

The unique key to identify the train.

chainPosition int

The position of the tour within the chain.

AssignVehicleProposal

A proposal for assigning a vehicle.
Attribute Name Type Description
assignVehicleInstruction AssignVehicleInstruction

The instructions for inserting the vehicle.

scheduledVehicle boolean

If true, the vehicle was scheduled.

startDepotInserted boolean

If true, a start depot was inserted.

startDepotId int

The unique key to identify the start depot (-1, if there is no start depot).

endDepotInserted boolean

If true, an end depot was inserted.

endDepotId int

The unique key to identify the end depot (-1, if there is no end depot).

assignmentCost double

Additional costs for assigning the vehicle.

assignmentTourDistance int

Additional distance for assigning the vehicle.

assignmentTourPeriod int

Additional tour period for assigning the vehicle.

assignmentTourDrivingPeriod int

Additional driving period for assigning the vehicle.

startTime int

Start time of the tour.

BalancingParams

Extends StandardParams

The use case described by this class executes the tour optimization and considers at the same time to balance the tours with regard to a balancing goal (for example all planned tours have nearly the same tour period). This use case is subject to additional restrictions. Firstly every vehicle performs a tour and so there are no unscheduled vehicles. Secondly every tour chain consists of not more than one tour. Thirdly the tours of one depot are balanced among each other, but there is no balancing between depots. Finally the tour optimization in this use case is focused on depot-related transportation. Therefore it is recommended to use mainly TransportDepot and to add only a smaller part of TransportAB to the planning. The use of the parameter tourReductionStep of StandardParams is forbidden and will throw an exception.
Attribute Name Type Description
balancingGoal BalancingGoal The goal to balance the tours.
balancingImportance Integer Importance to balance the tours (1 <= x <= 100, optional). The higher this value is, the more attention is turned to the balancing goal. This could lead for example to an increased total tour period compared to unbalanced tours. Omitting this attribute means that the standard value 60 is used.
balancingConstructionMethod String

This attribute specifies an internal method. Adjust this value in collaboration with PTV's support only.

BaseVehicle

Extends AbstractVehicle

The abstract base class for SequencingVehicle and Vehicle.
Attribute Name Type Description
drivingPeriodFactor Double The correction factor for driving periods in order to represent a faster vehicle with a value less than 1, a slower vehicle with a value greater than 1 or a standard vehicle with the value 1 (>= 0, optional). Omitting this attribute means that the value 1 for the standard vehicle is set.
servicePeriodFactor Double The correction factor for service periods. In order to represent a faster handling with a value less than 1, a slower handling with a value greater than 1 or a standard handling with the value 1 (>= 0, optional). Omitting this attribute means that the value 1 for the standard handling is set. This factor does not apply to service periods at depots.
transportPointUploadingFunctionId Integer The unique key to identify the related transport uploading function clearly (> 0, optional). This function calculates the uploading period at the transport points of a tour depending on the pickup quantities. Omitting this attribute means that the uploading period at the transport points is 0.
transportPointUnloadingFunctionId Integer The unique key to identify the related transport unloading function clearly (> 0, optional). This function calculates the unloading period at the transport points of a tour depending on the delivery quantities. Omitting this attribute means that the unloading period at the transport points is 0.
depotUploadingFunctionId Integer The unique key to identify the related depot uploading function clearly (> 0, optional). This function calculates the uploading period at the start depot of a tour depending on the delivery quantities. Omitting this attribute means that the uploading period at the start depot is 0.
depotUnloadingFunctionId Integer The unique key to identify the related depot unloading function clearly (> 0, optional). This function calculates the unloading period at the end depot of a tour depending on the pickup quantities. Omitting this attribute means that the unloading period at the end depot is 0.
departureTimeFixed Integer The first tour of the vehicle has a fixed departure time at the start depot ([sec] from a reference point in time on, >= 0, optional). Usually the departure time and the start time of the tour are different things, because the start time includes the loading period at the start depot. Omitting this attribute means that the first tour of the vehicle can leave the start depot at any time.
isPreloaded boolean If true, the vehicle is preloaded at the first tour. Otherwise it must be loaded at the start point. In case of a preloaded vehicle there is no uploading period at the start depot.
capacities Capacities The loading capacity of the vehicle ([QU], >= 0, optional). Omitting this attribute means that the vehicle can load goods without a limit.
costs VehicleCosts The costs for the vehicle (optional). These costs do not have an impact on the tour optimization. Omitting this attribute means that tour costs will not be calculated.
dimaId Integer

The unique key to identify the distance matrix used with this vehicle (see DistanceMatrixCalculation). If the direct velocity is used, this parameter can be left empty.

ignoreTransportPointServicePeriod boolean

If true, the servicePeriod that is specified for a TransportPoint is ignored. The default is false.

coDriverStatus CoDriverStatus

The status of the co-driver.

toursMustFitIntoSingleOperatingInterval boolean

If set to true, tours must fit into a single operating interval. This attribute is ignored for the method planOvernightTours because this use case must consider several operating intervals.

driverSettings DriverSettings

The individual driver regulation settings. If this attribute is set to null, xTour will assume that there are no rules for rests, breaks and working periods.

ignoreProductIncompatibilities Boolean

If set to true, the algorithm ignores product incompatibilities for this vehicle. The default is false.

Product incompatibilities have to be specified in the PlanningParams otherwise this attribute has no effect.

minimumFreeCapacityForBlockingCompartment Integer

If multi-compartment constraints are considered, this is the minimal percentage of the vehicle's capacity that has to be available regarding the blocking quantity. If the remaining capacity is less than this threshold, no orders of the blocked quantity can be loaded or unloaded at the current stop.

BreakIntervals

Defines intervals within that breaks of a given duration have to be made. It must be ensured that in each interval the break is done. Each break can be made at any time within its interval. The break must not be split and must fully fit in its interval. Breaks take place at the same time as other breaks. For example it can be specified, that a break of thirty minutes has to be made between 08:00 and 10:00. Then possible breaks could be 8:00-8:30, or 9:30-10:00, or anything in between. If the tour ends in an interval, it is not necessary to do the break if the remaining break interval is long enough to encompass the break. Otherwise, the break has to be done. The same applies for the tour start. Break intervals outside the tour can be ignored.
Attribute Name Type Description
breakPeriod int

The break-period that has to be taken within the break-intervals given below.

intervals Interval[]

Intervals within which the break has to be taken.

BreakRule

The periods for breaks that are required after a certain period of driving. After a driving period a driver shall take an uninterrupted break. This break can be replaced by two separate uninterrupted breaks. The rule assumes, that the period of the single breaks equals the sum of both split breaks.
Attribute Name Type Description
drivingPeriod int

Uninterrupted period of time a driver is allowed to drive without a break.

Remark: According to EU regulation : 4h 30min (16200s)

breakPeriod1 int

Minimum period of time required for the first break.

Remark: According to EU regulation : 15min (900s)

breakPeriod2 int

Minimum period of time required for the second break.

Remark: According to EU regulation : 30min (1800s)

CalculationParams

Extends PlanningParams

The use case described by this class calculates the tour attributes of the imported tours without changing the existing tours at all (for example to get an idea of the time profile or to check if a tour is violated or not). There is no optimization step executed.
No attributes defined.

Capacities

The capacities of a vehicle or a train. A tour will be valid if the loading of the vehicle matches at least one of the given quantity vectors.
Attribute Name Type Description
capacities Quantities[]

The capacities of the vehicle.

Chain

The tour chain of one vehicle performing at least one tour. In case of more than one tour they are performed consecutively. All attributes are relevant for the input plan except for result.
Attribute Name Type Description
vehicleId int The unique key to identify the related vehicle clearly (> 0).
tours Tour[]

The tours performed by this vehicle. The sequence of the tours in the list correspond to the chronology of the tours. The number of elements in the list should not exceed the maximum number of consecutive tours limited by the vehicle.

result ChainResult

Result of the planned tour chain. This attribute is not relevant for the import of an existing tour chain, but it appears in the export case to provide additional information.

ChainResult

Describes the result of the planned tour chain.
Attribute Name Type Description
vehicleDescription String

Additional field to describe the vehicle (optional).

chainCosts double

The chain costs of this chain. These are only the costs per chain defined with the vehicle. They do not comprise distance or time dependent costs.

tourEvents TourEvent[]

The tour events of the tour chain in chronological order to get an overview of the time profile without gaps.

remainingPeriods String Remaining periods caused by the planned tours in the tour chain relevant for the calculation of the first break or rest of the next tour. Use this value as an input parameter for BaseVehicle->driverSettings to calculate subsequent tours.
drivingPeriod int Sum of the tour driving periods of the planned tours in this chain ([sec]).
endTime int

The end time of the chain ([sec] from the reference point).

periodFromStartLocation int

If a startLocation of the vehicle is specified in the request, this value contains the driving period from the startLocation to the first tour point ([sec]). Otherwise it is 0.

distanceFromStartLocation int

If a startLocation of the vehicle is specified in the request, this value contains the driving distance from the startLocation to the first tour point ([m]). Otherwise it is 0.

periodToEndLocation int

If an endLocation of the vehicle is specified in the request, this value contains the driving period from the last tour point to the end location ([sec]). Otherwise it is 0.

distanceToEndLocation int

If an endLocation of the vehicle is specified in the request, this value contains the driving distance from the last tour point to the end location ([m]). Otherwise it is 0.

Costs

Extends AbstractCosts

Describes the costs of the vehicle in question.
Attribute Name Type Description
costsPerHourDriverOnly double

The costs per hour if the vehicle has a driver only, but not a co-driver ([MU]).

costsPerHourWithCoDriver double

The costs per hour if the vehicle has a co-driver ([MU]). Only one of these two values will be used in calculating the costs depending on whether the vehicle in question has a co-driver or not.

DailyRestRule

The periods and frequencies needed to obey the daily rest rules of the European Union.
Attribute Name Type Description
regularRestPeriod int

Regular daily rest period.

Remarks: According to EU regulation : 11h (39600s)
firstSplitRestPeriod int

First period of a split regular daily rest period.

Remarks: According to EU regulation : 3h (10800s)
secondSplitRestPeriod int

Second period of a split regular daily rest period.

Remarks: According to EU regulation : 9h (32400s)
reducedRestPeriod int

Reduced daily rest period.

Remarks: According to EU regulation : 9h (32400s)
numberOfReducedRestPeriods int

Number of allowed reduced rest periods between any two weekly rest periods.

Remarks: According to EU regulation : 3
regularDrivingPeriod int

Regular daily driving period.

Remarks: According to EU regulation : 9h (32400s)
extendedDrivingPeriod int

Extended daily driving period.

Remarks: According to EU regulation : 10h (36000s)
numberOfExtendedDrivingPeriods int

Maximum number of extended driving periods per week. The maximum allowed value is 2, larger values are not accepted.

Remarks: According to EU regulation : 2
maximumPeriodBetweenEndOfDailyRests int

Within each of this period after the end of the previous daily rest period a driver shall have taken a new daily rest period.

Remarks: According to EU regulation : 24h (86400s)

Depot

Extends LogisticPoint

A depot is a site where vehicles are located before they perform tours. The required delivery quantities are stored at the depot. The pickup quantities have to be brought to the depot. Thus depots act as supply depot, storage depot and vehicle fleet as well.
No attributes defined.

DistanceMatrixByReference

Extends DistanceMatrixCalculation

The distance calculation will be executed using the reference point method that means all distances approximated via reference points. This requires a pre-calculated distance matrix.
No attributes defined.

DistanceMatrixByRoad

Extends DistanceMatrixCalculation

The distance calculation will be executed using road distances, that means all distances based on digital road maps. This requires the calculation of a distance matrix between all locations right before the tour optimization, if not yet available.
Attribute Name Type Description
deleteBeforeUsage boolean If true, an existing distance matrix is deleted before the new one is calculated. Or if unknown locations appear, an existing distance matrix is augmented. So this attribute controls the reusability of calculated distance matrices as this process is time consuming.
deleteAfterUsage boolean If true, a previously calculated distance matrix will be deleted after the optimization because no further reusability is necessary. So this attribute controls the reusability of calculated distance matrices as this process is time consuming.
profileName String

The distance matrix profile to be used for calculating the distances. This profile contains vehicle and speed parameters and overwrites the property distanceCalculation.profile from the main profile set in the caller context. This profile name represents a file (without its extension) from the conf directory.

referenceTime Calendar

Reference time for time-dependent feature layers. Each route in the distance matrix contains this time as start time.

enforceHighPerformanceRouting Boolean

Enforces the usage of a high-performance routing network. If there is no matching network available, an exception will be thrown.

DistanceMatrixCalculation

The parameters controlling the distance matrix calculation.
Attribute Name Type Description
dimaId int The unique key to identify the distance matrix clearly (> 0) and to assign it to a vehicle.

DriverRegulations

Extends RegulationsBase

All driver regulations to respect when calculating a tour. This implementation is based on regulations according to the European Union and German working rules. The first four attributes beginningOfCalendarWeek, breakRule, dailyRestRule and weeklyRestRule can be used to set up  regulations in accordance with the European Union. These attributes should be used in conjunction. The attribute workingRule can be used to set rules according to the German working regulation and can be used in addition to the EU settings. If in doubt, set up the EU rules and leave out the working rule.
The last attribute is called breakIntervals and can be used as an additional constraint if a specific break should be taken in several intervals.
Attribute Name Type Description
beginningOfCalendarWeek int The time in seconds to mark Monday 00:00 o'clock. This value is important because some of the rest rules rely on calendar weeks. We strongly recommend to use Unix time (number of seconds that have elapsed since midnight Coordinated Universal Time, 1 January 1970) for all time values within xTour. Hence, this value should be set to Monday the 5th January 1970 (=345600) and then use absolute time values for all operating and opening intervals.
breakRule BreakRule The periods for breaks that are required after a certain period of driving. After a driving period a driver shall take an uninterrupted break. This break can be replaced by two separate uninterrupted breaks (breakPeriod1 and breakPeriod2). The rule assumes that the period of the single breaks equals the sum of both split breaks.
dailyRestRule DailyRestRule The periods and frequencies needed to obey the daily rest rules of the EU. A driver has to take a regular rest after a regular driving period. Within a calendar week the driver may have 2 extended driving periods of 10h and a maximum of 3 reduced rest periods of 9h. Rests can be split into two separate parts.
weeklyRestRule WeeklyRestRule

The periods and frequencies needed to obey the weekly rest rules of the European Union.

workingRule WorkingRule

Parameters needed to obey the working rules of Germany.

breakIntervals BreakIntervals

Parameters needed for breaks and break intervals.

DriverSettings

Sets the individual driver regulation settings for a specific driver. The attribute regulationsId must point to a valid regulations object, which must be defined on PlanningParams.
Attribute Name Type Description
regulationsId int

The unique key to identify the used driver regulation. Must be greater than 0.

breakRuleActive boolean

If true, the break rule is active.

dailyRestRuleActive boolean

If true, the daily rest rule is active.

weeklyRestRuleActive boolean

If true, the weekly rest rule is active.

workingRuleActive boolean

If true, the rule for working hours is active.

remainingPeriods String

Encoded remaining periods of a driver's previous tour.

maximumTourPeriodRestriction MaximumTourPeriodRestriction

restrictions for the tour period that depend on individual drivers. These settings allow to restrict tour periods taking into account regular commuting times for drivers who can start and end their tour at home.

FindOrdersForTourParams

Extends PlanningParams

Extends the class PlanningParams with additional attributes for the method findUnscheduledOrdersForTour.
Attribute Name Type Description
maximumAdditionalDistance Integer

Defines the maximum distance in meter that an additional order may cause. By default there is no restriction.

vehicleChangeAllowed boolean

If true, the algorithm can change vehicles on existing routes. The default is false.

FindToursForOrderParams

Extends PlanningParams

Extends the class PlanningParams with additional attributes for the method findToursForUnscheduledOrder.
Attribute Name Type Description
vehicleChangeAllowed boolean

If true, the algorithm can change vehicles on existing routes.

maximumAdditionalDistance Integer

The maximum distance in meter that an additional order may cause. By default there is no restriction.

newTourAllowed boolean

If true, the algorithm can create new tours. The default is false.

newTourCostFactor double

The cost factor for creating new tours.

FindToursForVehicleParams

Extends PlanningParams

Extends the class PlanningParams with additional attributes for the method findToursForVehicle.
Attribute Name Type Description
depotInsertionAllowed boolean

If true, the algorithm can insert depots at the start of a tour or at the end of a tour. This is possible if a tour has no start depot or end depot. The default is false.

FindVehiclesForTourParams

Extends PlanningParams

Extends the class PlanningParams with additional attributes for the method findVehiclesForTour.
Attribute Name Type Description
scheduledVehiclesAllowed boolean

If true, the algorithm can use scheduled vehicles. The default is false.

depotInsertionAllowed boolean

If true, the algorithm can insert depots at the start of a tour or at the end of a tour. That is possibe if a tour has no start depot or end depot. The default is false.

Fleet

The necessary resources to perform the tours. The resources consist of the vehicle fleet and trailers as well as rules for the combination of vehicle and trailer (a so-called train).
Attribute Name Type Description
vehicles Vehicle[]

The list of vehicles.

trailers Trailer[]

The list of trailers.

trains Train[]

The list of trains.

GoalImportance

A set of rankings. Each ranking may be one of the following values:
Attribute Name Type Description
vehicleCountRank int

The ranking for the vehicle count.

tourCountRank int

The ranking for the tour count.

chainPeriodRank int

The ranking for the overall chain period.

tourPeriodRank int

The ranking for the tour period.

tourDrivingPeriodRank int

The ranking for the tour driving period.

tourDistanceRank int

The ranking for the tour distance.

unplannedOrdersRank int

The ranking for unplanned orders.

InsertOrderInstruction

Instructions for inserting an order.
Attribute Name Type Description
orderId int

The unique key to identify the order.

tourId int

The unique key to identify the tour.

positionNumber int

Position number within the tour for TransportDepot orders and for the TransportPoint A of TransportAB orders.

partnerPositionNumber Integer

Position number within the tour for TransportPoint B of a TransportAB order.

This element is not set for TransportDepot orders.

truckId int

The unique key to identify the vehicle.

trailerId int

The unique key to identify the trailer.

trainId int

The unique key to identify the train.

chainPosition int

The position of the tour within the chain.

InsertOrderProposal

A proposal for the insertion of an order.
Attribute Name Type Description
insertInstruction InsertOrderInstruction

The instructions for inserting the order.

vehicleChanged boolean

If true, a vehicle was changed in an existing tour. Otherwise it is a new tour.

chainPositionChanged boolean

If true, the chain position was changed in an existing tour. Otherwise it is a new tour.

insertCost double

The cost for inserting the order.

insertTourDistance int

The additional distance [m] for inserting the order.

insertTourPeriod int

The additional tour period [sec].

insertTourDrivingPeriod int

The additional driving period [sec].

startServiceTime int

The start of service [sec].

endServiceTime int

The end of service [sec].

arrivalTime int

The arrival time at the stop of the order.

departureTime int

The departure time at the stop of the order.

Interval

A time window specified by start time and end time. The attributes must be specified in [sec] from a consistent reference point in time on (for example 0:00 next day or 0:00 1 January 1970).
Attribute Name Type Description
from int Start of the interval ([sec] from a reference point in time on, 0 <= from).
till int End of the interval ([sec] from a reference point in time on, 0 < till and from <= till).

LoadingArea

Optional dimension restrictions of a load. All attributes are zero by default and will be omitted if not set greater than zero.
Attribute Name Type Description
length int

A length restriction of a load. If the attribute is omitted or set to zero, it will not be considered.

width int

A width restriction of a load. If the attribute is omitted or set to zero, it will not be considered.

height int

A height restriction of a load. If the attribute is omitted or set to zero, it will not be considered.

weight int

A weight restriction of a load. If the attribute is omitted or set to zero, it will not be considered.

LoadingFunction

A loading function to calculate the up- and unloading period at the tour points.
Attribute Name Type Description
id int The unique key to identify the loading function clearly (> 0).
quantityDependentPeriods QuantityDependentPeriods The quantity-dependent loading period at a tour point ([sec / QU], optional). Omitting this attribute means that the quantity-dependent loading period is 0. Currently, a maximum of 10 different values can be defined.
fixedPeriod int The quantity-independent amount of loading period at one tour point ([sec], >= 0).
fixedSitePeriod Integer

The quantity-independent amount of loading period for a set of tour points that share the same site ID. ([sec], >= 0, optional).

exponent Integer

The exponent for non-linear loading functions (optional, >= 0, <= 2).

maxPeriod Integer

The maximum period for this loading function ([sec], >=0, optional).

LogisticPoint

The location-related planning object for tour optimization. The desired logistic point must be specified by the corresponding subclass.
Attribute Name Type Description
id int The unique key to identify the logistic point clearly (> 0). Transport points, depots and even transport orders can use the same keys, but they must be unique within one object type.
description String

An additional field to describe the logistic point (optional); not relevant for tour planning.

location Point The location of the logistic point (required).
openingIntervals Interval[] Spans the opening intervals within all activities at the logistic point must be carried out (optional). Usually this activity is up- and unloading. In case of a transport point the vehicle-independent service is included. If more than one opening interval is defined, the intervals have to be in ascending order and they must not overlap. Omitting this attribute means that the activities at the logistic point can be carried out at any time.
siteId Integer

The unique key to identify the transport points belonging together in a logical way. For example all logistic points in one premises get the same ID (> 0, optional). These logistic points do not need the same location, but usually they are nearby. This ID is relevant for the service period calculation.

extraSitePeriod Integer

Extra service period at the transport point in case of a given SiteId ([sec], >= 0). If there are several consecutive logistic points in a tour referring to logistic points with the same siteId, the extra service period would only be considered at the first logistic point of that row (for example the period for a security check at the gate of the same premises). In case of different extra site periods, the maximum value is relevant for the first logistic point.

uploadingFunctionId Integer

The unique key to identify the related uploading function clearly (> 0, optional). This function calculates the uploading period at this point depending on the pickup quantities. Omitting this attribute means that the uploading period at this point is 0. If there are no pickupQuantities defined, the resulting period will be 0. So even the fixed periods will be omitted.

unloadingFunctionId Integer

The unique key to identify the related unloading function clearly (> 0, optional). This function calculates the unloading period at this point depending on the delivery quantities. Omitting this attribute means that the unloading period at this point is 0. If there are no deliveryQuantities defined, the resulting period will be 0. So even the fixed periods will be omitted.

MaximumTourPeriodRestriction

This class contains tour period restrictions that depend on individual drivers. These settings allow to restrict tour periods taking into account regular commuting times for drivers who can start and end their tour at home.

More information how to use the feature can be found in the use case documentation.

Attribute Name Type Description
maximumNetTourPeriod int

The maximum of the total tour period reduced by the maximum allowable tour period.

This value is considered to be seconds and has to be > 0.

maximumAllowableTourPeriod int

The maximum allowable tour period is the maximum part of the tour period that can be considered as non-working period by the employer.

Usually it represents the employee's driving time to and from the company location. If one of the distances to the first customer or from the last customer is shorter than the distance to the company location, the distance to or from the customer will be used.

This value is considered to be seconds and has to be > 0.

NightTourRestrictions

Defines restrictions for night tours, i.e. when another maximum tour period applies to night tours. These restrictions will be considered in addition to the tour restrictions.
Attribute Name Type Description
nightIntervals Interval[]

Defines which periods are considered as 'night'.

nightTourThreshold int

A tour is called a 'night tour' if the length of the intersection of the tour interval with some night interval exceeds this threshold.

maximumNightTourPeriod int

The maximum period of a 'night tour'. When an input plan exceeds this value, the TourViolation MAX_PERIOD_PER_NIGHT_TOUR will be returned.

maximumNightTourChainPeriod int

The maximum period of a chain containing a 'night tour'. When an input plan exceeds this value, the TourViolation MAX_PERIOD_PER_NIGHT_TOUR will be returned.

OvernightParams

Extends StandardParams

Attributes for overnight tour planning.
Attribute Name Type Description
costPerOvernightStay double

Additional costs for each overnight stay ([MU]).

costPerUnplannedCustomer double

Additional costs for each unplanned order ([MU]). Higher values decrease the number of unplanned orders.

maximumNumberOfAllowedOvernightStays int

The maximum number of subsequent overnight stays. Legal values range from 0 to 6.

overnightStayPattern boolean[]

This boolean array specifies whether the PTV xTour server may plan an overnight stay between two operating intervals. Each array field represents a gap between two operating intervals. If more fields are set than possible gaps exist, the PTV xTour server will ignore superfluous values.

Example: Assume that 4 operating intervals are configured for the given vehicle. The overnightStayPattern [false, true, true] specifies that overnight stays are valid between the operating intervals 2 and 3 and 3 and 4, but not between the intervals 1 and 2. Note that this array can hold a maximum of 6 values, which means that overnight stays for 7 operating intervals can be specified.

Plan

The tour planning by means of chains, tours and tour points. It is used both for the import of the existing tours and for the export of the planned tours. The tour optimization only plans valid tours. A tour is valid if there are no violations of the considered constraints. An invalid tour is not considered at all. All attributes are relevant for the input plan except for result. An input plan must always contain at least one tour point.
Attribute Name Type Description
chains Chain[]

The tour chains of the vehicles performing at least one tour (required). There is one element in the list for every used vehicle.

result PlanResult

The overview of the planned tours in all tour chains. This attribute is not relevant for the import of the existing tours, but it appears in the export case to provide additional information.

PlanResult

Describes the overview of the planned tours in all tour chains.
Attribute Name Type Description
totalTourCount int The number of all planned tours.
totalTourPeriod int The sum of the tour periods for all planned tours ([sec]).
totalTourDrivingPeriod int The sum of the tour driving periods for all planned tours ([sec]).
totalTourDistance int The sum of the tour distances for all planned tours ([m]).
totalTourCosts double The sum of the tour costs for all planned tours ([MU]). The costs per chain will not be included, see attribute totalChainCosts.
totalChainCosts double

The sum of the costs per chain of all planned chains ([MU]). See VehicleCosts.

scheduledOrderIds int[]

The unique key to identify all scheduled transport orders (optional). This attribute does not appear if no transport orders are planned in tours.

unscheduledOrderIds int[] The unique key to identify all unscheduled transport orders (optional). This attribute does not appear if all transport orders are planned in tours.
scheduledVehicleIds int[]

The unique key to identify all scheduled vehicles (optional). This attribute does not appear if no vehicles are planned in tours.

unscheduledVehicleIds int[] The unique key to identify all unscheduled vehicles (optional). This attribute does not appear if all vehicles are planned in tours.
unscheduledOrderAnalysisResults UnscheduledOrderAnalysisResult[]

This Array of UnscheduledOrderAnalysisResult objects represents analysis results for each unscheduled order. The analysis specifies why an order could not be planned. By default this attribute is NULL. The Analysis must be activated by using UnscheduledOrderAnalysisParams or by setting maximumNumberOfUnscheduledOrdersToBeAnalyzed in StandardParams.

PlanningParams

The planning parameters controlling the tour optimization. The desired use case must be specified by the corresponding subclass.
Attribute Name Type Description
restrictions Restrictions Restrictions the resulting tours must fulfill (optional). Omitting this attribute means that there are not restrictions.
loadingFunctions LoadingFunction[] Loading functions to calculate the up- and unloading period at the tour points (optional, maximum: 99). These functions are useful in case of a vehicle-dependent loading period calculation. The vehicle-independent amount of service period at the transport point is in addition to that loading period. Omitting this attribute means that the loading period at the tour points is 0.
distanceMatrixCalculation DistanceMatrixCalculation[] An array of distance matrix parameters each for a different type of vehicle. All instances must be of the same subtype. It is not possible to mix distance matrix calculation by reference or by road.
directVelocity Integer Assumed this speed ([km/h], > 0) for calculating the distances as the crow flies. If this parameter is set, the array of distance matrices will be ignored.
directDistanceFactor Double

This factor is used if directVelocity is set (optional, >= 0). If set to 0.0, the default value from conf/TourOpt.ini is taken.

coDriverTransportPointLoadingFactor Double

Correction factor for loading periods with a co-driver in order to represent a faster loading with a value less than 1, a slower loading with a value greater than 1 or a standard loading with the value 1 (>= 0, optional). Omitting this attribute means that the value 1 for the standard loading is set.

coDriverTransportPointsInSeparateTours boolean

Set this to true if you do not want to mix TransportPoints that require a co-driver with TransportPoints that do not need a co-driver.

regulations RegulationsBase[]

This attribute specifies a set of custom driver regulations. A maximum of 200 different regulations is allowed.

productIncompatibilities ProductIncompatibility[]

An array of product incompatibilities to be considered in the tours.

The consideration of product incompatibilities can be disabled for specific vehicles using the parameter ignoreProductIncompatibilities in the BaseVehicle.

useDirectDistanceFallback boolean

If this parameter is set to true, a fallback mechanism to direct distance is used for distance calculation. That means, if the distance to a location could not be determined on the road, the direct distance multiplied by a constant factor is used instead. This factor is specified as DTF in the conf/TourOpt.ini.

Driving periods are determined accordingly by using the distance and the directVelocity factor which is also specified in conf/TourOpt.ini.

avoidEarlyRecreations boolean

If true, the algorithm avoids early recreations at the beginning of the tour. Early recreations may be inserted by the algorithm to avoid the need of a longer recreation later in the tour. The default is false.

enableMultiCompartmentConstraint boolean

Enables the consideration of multi-compartment constraints at the vehicle. Furthermore it is required to set both the indexOfBlockingQuantity and the indexOfBlockedQuantity.

Blocked quantities can only be loaded or unloaded at a stop if the amount of the blocking quantity does not exceed a vehicle specific threshold at the same stop.

This feature is not available if the fleet contains trains or trailers.

indexOfBlockingQuantity Integer

The 0-based index of the quantity in the array of quantities that is considered as blocking quantity for multi-compartment constraints.

indexOfBlockedQuantity Integer

The 0-based index of the quantity in the array of quantities that is considered as blocked quantity for multi-compartment constraints.

ProductIncompatibility

The incompatibility of two products.
Attribute Name Type Description
productId1 int

The unique key to identify the first product. Must be > 0.

productId2 int

The unique key to identify the second product. Must be > 0.

incompatibilityType ProductIncompatibilityType

The incompatibility type.

Quantities

Different kinds of goods or different units of measurement (for example weight, volume, turnover). Currently, a maximum of 10 different quantities can be defined.
Attribute Name Type Description
quantities int[]

The single quantities ([QU], >= 0, optional).

QuantityDependentPeriods

The quantity-dependent loading period.
Attribute Name Type Description
secondsPerQuantityUnit double[]

Loading period per unit of each quantity ([sec], >= 0).

RegulationsBase

The abstract base for regulations. Due to the dynamic nature of legal requirements, the driver regulations are wrapped.
Attribute Name Type Description
id int

The unique key to identify this regulations object. Requires values greater than 0. Use this ID in DriverSettings to point to this regulations object.

Restrictions

The restrictions which the resulting tours must fulfill.
Attribute Name Type Description
maxTourCount Integer Maximum number of tours (>= 0, optional). Omitting this attribute means unlimited number of tours.
maxTransportPointCountPerTour Integer Maximum number of transport points in one tour (>= 0, optional). Omitting this attribute means unlimited number of transport points.

The parameter mergeTransportPointCountPerSite affects the way how transport points at the same site are counted for this restriction.

mergeTransportPointCountPerSite boolean

Decides if transport points with the same siteID (> 0) are counted as 1 with respect to the maxTransportPointCountPerTour restriction. By default, this parameter is set to false which means that each transport point is counted, without considering its siteID. Transport points at depots are not counted in this case.

If it is set to true, transport points at the same site are counted as single transport point. Furthermore, transport points at depots are also counted as single transport point.

This parameter affects all maxTransportPointCountPerTour restrictions in the request regardless if it is set as global restriction or as a vehicle specific restriction at the fleet (VehicleRestrictions or Train).

tourRestrictions TourRestrictions

The tour-dependent restrictions.

nightTourRestrictions NightTourRestrictions

Defines restrictions for night tours, i.e. when another maximum tour period applies to night tours. These restrictions will be considered in addition to the tour restrictions.

SequencingParams

Extends PlanningParams

Extends the class PlanningParams with params for sequencing requests.
Attribute Name Type Description
fixedStartTransportPoints Integer

The number of transport points AFTER the starting depot that should be kept fixed during calculation. The depot itself is fixed by default. For depot-less tours, this value contains the number of transport points from the start that should be kept fixed. This parameter only considers transport points specified in an input plan.

fixedEndTransportPoints Integer

The number of transport points BEFORE the end depot that should be kept fixed during calculation. The depot itself is fixed by default. For depot-less tours, this value contains the number of transport points from end that should be kept fixed. This parameter only considers transport points specified in an input plan.

availableMachineTime Integer

Limits the available machine time of the tour optimization ([sec], > 0, optional). It is recommended to provide as much machine time as possible. Omitting this attribute means that the tour optimization is executed without time limits.

maximumNumberOfUnscheduledOrdersToBeAnalyzed Integer

This attribute specifies how many unscheduled orders should be analyzed. If set to NULL or 0, no analysis will be done. The maximum is the number of orders.
The result is returned in PlanResult as an array of UnscheduledOrderAnalysisResult

SequencingPlan

The sequencing tour planning by means of a sequencing tour and time events. It is used both for the import of the existing tour and for the export of the planned tours. The tour optimization only plans valid tours. A tour is valid if there are no violations of the considered constraints. An invalid tour is not considered at all. All attributes are relevant for the input plan except for result. An input plan must always contain at least one tour point.
Attribute Name Type Description
tour SequencingTour

The resulting sequencing tour.

result SequencingPlanResult

Overview of the planned tour. This attribute is not relevant for the import of the existing tours, but it appears in the export case to provide additional information.

SequencingPlanResult

Describes the overview of the planned tour.
Attribute Name Type Description
tourEvents TourEvent[]

The tour events of the tour chain in chronological order to get an overview of the time profile without gaps.

remainingPeriods String

The remaining periods caused by the planned tour relevant for the calculation of the first shift of the next tour (optional). Use this value as an input parameter for BaseVehicle->driverSettings to calculate subsequent tours.

scheduledOrderIds int[]

The unique key to identify all scheduled sequencing transport orders (optional). This attribute does not appear if no sequencing transport orders are planned in tours.

unscheduledOrderIds int[]

The IDs of all unscheduled sequencing transport orders (optional). This attribute does not appear if all sequencing transport orders are planned in tours.

unscheduledOrderAnalysisResults UnscheduledOrderAnalysisResult[]

The results of the unscheduled order analysis.

SequencingTour

Extends AbstractTour

The sequencing tour consisting of a sequence of tour points. All attributes are relevant for the input plan except for result.
Attribute Name Type Description
result SequencingTourResult Result of the planned tour. This attribute is not relevant for the import of an existing tour, but it appears in the export case to provide additional information.
tourPoints SequencingTourPoint[]

The list of tour points.

SequencingTourPoint

Extends AbstractTourPoint

Describes a sequencing tour point of a tour. All attributes are relevant for the input plan except for result.
No attributes defined.

SequencingTourResult

Extends AbstractTourResult

Describes the result of the planned sequencing tour.
No attributes defined.

SequencingTransportAB

Extends SequencingTransportOrder

Depot-free attributes to represent the transportation of quantities from one transport point to another. The tours still start and end at a depot.
Attribute Name Type Description
transportPointA TransportPoint Transport point A of the order to pick up the goods from (required).
transportPointB TransportPoint Transport point B of the order to deliver the goods to (required).
quantities Quantities Quantities of the transport order ([QU], >= 0, optional). They are related to the vehicle capacities. These quantities are loaded on the vehicle only between the two transport points. Omitting this attribute means that the quantities will not be considered.
maxTransportPeriod Integer The maximum transport period the goods can stay on the vehicle from leaving the transport point A till arriving at the transport point B ([sec], >= 0, optional). Omitting this attribute means that the goods can stay on the vehicle without time constraints.

SequencingTransportDepot

Extends SequencingTransportOrder

Depot-related attributes to represent the transportation of pickup quantities from a transport point to an end depot and delivery quantities from a start depot to a transport point.
Attribute Name Type Description
transportPoint TransportPoint Transport point of the order to pick up or deliver the goods (required).
pickupQuantities Quantities The Pickup quantities of the transport order ([QU], >= 0, optional). They are related to the vehicle capacities. It is possible to use delivery quantities at the same time. Omitting this attribute means that the quantities will not be considered.
deliveryQuantities Quantities Delivery quantities of the transport order ([QU], >= 0, optional). They are related to the vehicle capacities. It is possible to use pickup quantities at the same time. Omitting this attribute means that the quantities will not be considered.
maxTransportPeriodForDeliveries Integer The maximum transport period the goods can stay on the vehicle from leaving the start depot till arriving at the transport point ([sec], >= 0, optional). Omitting this attribute means that the goods (typically deliveries) can stay on the vehicle without time constraints.
maxTransportPeriodForPickups Integer The maximum transport period the goods can stay on the vehicle from leaving the transport point till arriving at the end depot ([sec], >= 0, optional). Omitting this attribute means that the goods (typically pickups) can stay on the vehicle without time constraints.
depotAvailabilityForDeliveries Integer The earliest time the goods are available at the start depot ([sec] from a reference point in time on, >= 0, optional). Omitting this attribute means that the goods (typically deliveries) are available at the start depot at any time.
depotAvailabilityForPickups Integer The latest time the goods are deliverable to the end depot ([sec] from a reference point in time on, >= 0, optional). Omitting this attribute means that the goods (typically pickups) are deliverable to the end depot at any time.

SequencingTransportOrder

Extends AbstractTransportOrder

Abstract base class for all sequencing orders.
No attributes defined.

SequencingVehicle

Extends BaseVehicle

The vehicle parameters that are considered for sequencing requests.
No attributes defined.

StandardParams

Extends PlanningParams

Standard tour planning attributes. The use case described by this class executes the standard tour optimization without unusual goals or constraints.
Attribute Name Type Description
startSequencingStep Boolean If true, the sequencing step as first step is executed (optional). This step tries to change the sequence of orders in an existing plan. Omitting this attribute means that the sequencing step will be executed when AmendingParams or BalancingParams are applied, for other cases the step is deactivated by default.
constructionStep Boolean If true, the construction step is executed (optional). This step tries to build new tours and to complement existing tours. Usually the integrated heuristic provides a rather good result in a short machine time. Omitting this attribute means that the construction step will be executed. This step is mandatory for planOvernightTours and results in an exception if set to false.
middleSequencingStep Boolean If true, the sequencing step is executed after the construction step (optional). This step tries to change the sequence of orders in an existing plan. Omitting this attribute means that the sequencing step will be executed by default.
tourReductionStep Boolean

If true the tour reduction step is executed (optional). This step tries to reduce the number of tours. All tour points must remain planned. Depending on the problem, this takes some machine time. Omitting this attribute means that the tour reduction step is executed. The restriction of the usage is documented in the inherited classes.

improvementStep Boolean If true, the improvement step is executed (optional). This step tries to change the tour points to another planned tour. Usually the integrated heuristic is used to improve the result of the construction step, but depending on the problem this takes some machine time. Omitting this attribute means that the improvement step will be executed.
endSequencingStep Boolean If true, the sequencing step is executed as last step (optional). This step tries to change the sequence of orders in an existing plan. Omitting this attribute means that the sequencing step will be executed when StandardParams, AreaParams or BalancingParams are applied, for other cases the step is deactivated by default.
availableMachineTime Integer

Limits the available machine time of the tour optimization ([sec], > 0, optional). It is recommended to provide as much machine time as possible. Omitting this attribute means that the tour optimization is executed without time limits.

maximumNumberOfUnscheduledOrdersToBeAnalyzed Integer

This attribute specifies how many unscheduled orders should be analyzed. If set to NULL or 0, no analysis will be done. The maximum is the number of orders.
The result is returned in PlanResult as an array of UnscheduledOrderAnalysisResult.

goalImportance GoalImportance

This optional attribute specifies a set of rankings for different optimization goals.

basicConstructionMethod String

This attribute specifies an internal method. Adjust this value in collaboration with PTV's support only.

improvementMethod String

This attribute specifies an internal method. Adjust this value in collaboration with PTV's support only.

sequencingMethod String

This attribute specifies an internal method. Adjust this value in collaboration with PTV's support only.

TotalCosts

Extends AbstractCosts

Describes the total costs of the tour.
Attribute Name Type Description
costsPerHour double

The costs for one hour tour period ([MU/h]).

totalCosts double

The total costs of the complete tour ([MU]).

Tour

Extends AbstractTour

Describes the tour consisting of a sequence of tour points. The vehicle performing the tour is specified by the related tour chain. All attributes are relevant for the input plan except for result.
Attribute Name Type Description
id int The unique key to identify the tour clearly (> 0).
description String

An additional field to describe the tour (optional); not relevant for tour planning.

trailerId Integer

The unique key to identify the related trailer clearly (> 0). If this attribute is not set, a trailer is not used for this tour. The different tours within a chain can use different trailers, but a specific trailer can occur only within a single chain.

trainId Integer

The unique key to identify the related train clearly (> 0). If this attribute is not set, a trailer is not used for this tour and thus neither a train.

tourPointFixation TourPointFixation The fixation of tour points during the tour optimization.
vehicleFixed boolean If true, the vehicle is fixed during the tour optimization. Otherwise the vehicle can be changed during the tour optimization.
trailerFixed Boolean

If true, the trailer is fixed during the tour optimization. Otherwise the trailer can be changed during the tour optimization.

areaNumber Integer The area number of the tour (> 0, optional). A tour gets the transport order area number of all planned tour points. Thereby only one area number should occur in the tour and this number should match the area number of the vehicle. This number is only considered when using AreaParams. Omitting this attribute means that the tour has no assignment to an area and can only be complemented with transport orders having no area number.
ignoreIntermediatePeriodOfPreviousTour boolean

If true, the intermediate period of the previous tour will be ignored (if in input plan) or has been ignored (if in output plan).

restrictions TourRestrictions

Restrictions of the tour. Contains the same values as the corresponding tour of the input plan. If it is null there, its value will be null. It will also be null if no input plan is given. In output plans these values are informational, only. These values, if present, overwrite those from Restrictions only for this tour.

tourPoints TourPoint[]

Tours points of the tour (required). The sequence of the tour points in the list correspond to the chronology of the tour points. Mainly the tour points refer to transport points, only the first and the last tour point refer to a depot. Every transport point should only occur once in the tours.

result TourResult

Result of the planned tour. This attribute is not relevant for the import of an existing tour, but it appears in the export case to provide additional information.

TourEvent

A tour is divided into a set of TourEvents. Each TourEvent contains a list of descriptions which describe the kind of the event. The attributes startTime and period represent the time interval where the event takes place. A TourEvent may also have a list of violations, for example if a service is performed outside of a given service interval.
Attribute Name Type Description
logisticPointId int

Index of the logistic point at which the event takes place, or -1 if the event takes place on the road.

startTime int

Start time of this event.

period int

Period of this event.

descriptions String[]

An array of TourEventDescriptions for this event. See TourEventDescription for details. This enumeration may be extended without further notice. Client applications must ignore unknown values.

violations String[]

An array of TourEventViolations for this TourEvent. See TourEventViolation for details. This enumeration may be extended without further notice. Client applications must ignore unknown values.

tourIndex int

Index of the tour within the chain starting with 0. Events between two tours that do not belong to a specific tour have index -1.

TourPoint

Extends AbstractTourPoint

The tour points of the tour. A tour point refers to a logistic point reached by the tour. All attributes are relevant for the input plan except for result.
Attribute Name Type Description
tourFixed boolean If true, the tour point is fixed. Otherwise the tour point can be changed to another tour during the tour optimization. This is only relevant in case of no fixation of the tour, otherwise the value true is set for all tour points of the tour.
remainPlanned boolean If true, the tour point must remain planned. Otherwise the tour point can be set unscheduled during the tour optimization.

TourPointResult

Describes the result of the planned tour point.
Attribute Name Type Description
orderId Integer The unique key to identify the related transport order clearly (optional). This attribute only appears in case of a transport point.
arrivalTime int The arrival time at the tour point ([sec] from a reference point in time on).
startServiceTime int The start time of the service period at the tour point ([sec] from a reference point in time on).
endServiceTime int The end time of the service period at the tour point ([sec] from a reference point in time on).
departureTime int The departure time at the tour point ([sec] from a reference point in time on).
drivingPeriod int The driving period from the predecessor of the tour point ([sec]).
waitingPeriod int The span, the vehicle has to wait because the arrival is earlier than the next valid tour point opening interval and no conversion in break, rest or idle period is possible ([sec]).
servicePeriod int The duration of the service period at the tour point ([sec]). Usually the service period consists of up- and unloading period. In case of a transport point the vehicle-independent amount of service period is included.
breakPeriodOnRoad int The break period interrupting driving period ([sec]).
breakPeriodAtTourPoint int The break period interrupting or simultaneous to service period or consisting of converted waiting period ([sec]).
restPeriodOnRoad int The rest period interrupting driving period ([sec]).
restPeriodAtTourPoint int The rest period interrupting or simultaneous to service period or consisting of converted waiting period ([sec]).
earliness int The span between the vehicle arrival and the next valid tour point opening interval ([sec]).
delay int The span the arrival at the tour point exceeds the end of the last tour point opening interval ([sec]).
startDistance int The covered distance from the first tour point ([m]).
drivingDistance int The distance from the predecessor of the tour point ([m]).
currentQuantities Quantities The quantities on the tour after having served the tour point ([QU]).
tourPointViolations String[] The occured tour point violations (optional). This attribute only appears if there are violated constraints. The tour optimization only plans valid tours. A tour is valid if there are no violations of the considered constraints. An invalid tour has to be imported. See  TourViolation for details on single violations. This enumeration may be extended without further notice. Client applications must ignore unknown values.

TourRestrictions

Describes the restrictions of a tour.
Attribute Name Type Description
maxPeriod Integer

The maximum period from the start to the end of a tour ([sec], >= 0, optional). Omitting this attribute means that there is no special restriction for the tour.

maxDrivingPeriod Integer

The maximum driving period between all tour points of a tour ([sec], >= 0, optional). Omitting this attribute means that there is no special restriction for the tour.

maxDistance Integer

The maximum distance between all tour points of a tour ([m], >= 0, optional). Omitting this attribute means that there is no special restriction for the tour.

maxDistanceFromFirstToLastTransportPoint Integer

The maximum distance between the first tour point and the last tour point of a tour ([m], >= 0, optional). In contrast to maxDistance, this value does not comprise the distance from the depot or vehicle location to the first tour point and from the last tour point to the depot or vehicle location. Omitting this attribute means that there is no special restriction for the tour.

maxDistanceBetweenTransportPoints Integer

Maximum distance between two consecutive tour points of a tour ([m], >= 0, optional). Omitting this attribute means that there is no special restriction for the tour.

TourResult

Extends AbstractTourResult

Describes the result of the planned tour.
Attribute Name Type Description
vehicleRequirements int[] Set union of the transport order vehicle requirements of all planned tour points (optional, maximal 512 elements). This attribute only appears in case of at least one transport order with requirements.
vehicleExclusions int[] Set union of the transport order vehicle exclusions of all planned tour points (optional, maximal 512 elements). This attribute only appears in case of at least one transport order with exclusions.
trainDescription String

Additional field to describe the train.

trailerDescription String

Additional field to describe the trailer.

maxLoadingArea LoadingArea

The maximum of all specified maxLoadingAreas of transport orders that are scheduled for the tour.

minLoadingArea LoadingArea

The minimum of all specified minLoadingAreas of transport orders that are scheduled for the current tour.

TourViolations

The violations of an unscheduled order on a single tour.
Attribute Name Type Description
tourId int The unique key to identify the tour.
violations String[]

An array of violations. See TourViolation for details on single violations. This enumeration may be extended without further notice. Client applications must ignore unknown values.

Trailer

Extends AbstractVehicle

Trailers are located at a depot before they perform tours. They may perform several consecutive tours in a so called tour chain but different tours within a chain can use different trailers. A specific trailer can occur only within a single chain.

A trailer does not define any characteristics of the driver as it always depends on a vehicle nor does it define capacities or cost values. The latter will be defined by the Train rules.

Attribute Name Type Description
id int

The unique key to identify the trailer clearly (> 0).

description String

Additional field to describe the trailer (optional). Not relevant for tour planning.

Train

A train defines a rule of a valid combination of vehicles and trailers and some other properties which will take effect whenever a vehicle is combined with a trailer.

Both, vehicles and trailers can occur in different trains, but a specific combination of vehicle and trailer must not.

Attribute Name Type Description
id int

The unique key to identify the train clearly (> 0).

description String

Additional field to describe the train (optional); not relevant for tour planning.

vehicleIds int[]

The unique keys to identify the vehicle allowed in this train rule. The list must contain at least one identifier.

trailerIds int[]

The unique keys to identify the trailer allowed in this train rule. The list must contain at least one identifier.

capacities Capacities Loading capacity of the vehicle ([QU], >= 0, optional). Omitting this attribute means that the train can load goods without a limit.
costs Costs Costs for the train (optional). These costs do not have an impact on the tour optimization. Omitting this attribute means that tour costs will not be calculated.
dimaId Integer

The unique key to identify the distance matrix to be used with this train (see DistanceMatrixCalculation). If the direct velocity is used, this parameter can be left empty.

minLoadingArea LoadingArea

The minimum size and/or weight of a train load. Omitting this attribute means that there is no lower bound.

maxLoadingArea LoadingArea

The maximum size and/or weight of a train load. Omitting this attribute means that there is no upper bound.

category Integer

Category of the train (1 <= x <= 255, optional). Categories are a way to group the trains. They are useful to assign transport orders to trains. Omitting this attribute means that the standard category 1 is set.

drivingPeriodFactor Double

The correction factor for driving periods in order to represent a faster train with a value less than 1, a slower train with a value greater than 1 or a standard train with the value 1 (>= 0, optional). Omitting this attribute means that the value 1 for the standard train is set.

transportEquipments int[]

Available equipment of the train to satisfy transport order requirements (1 <= x <= 512, optional). There are up to 512 different equipment flags possible. Omitting this attribute means that the train has no equipment flags.

maxTransportPointCountPerTour Integer

The maximum number of transport points in a tour of the train (>= 0, optional). Omitting this attribute means unlimited number transport points.

The parameter mergeTransportPointCountPerSite  affects the way how transport points at the same site are counted for this restriction.

TransportAB

Extends TransportOrder

Depot-free attributes to represent the transportation of quantities from one transport point to another. The tours still start and end at a depot.
Attribute Name Type Description
transportPointA TransportPoint Transport point A of the order to pick up the goods from (required).
transportPointB TransportPoint Transport point B of the order to deliver the goods to (required).
quantities Quantities Quantities of the transport order ([QU], >= 0, optional). They are related to the vehicle capacities. These quantities are loaded on the vehicle only between the two transport points. Omitting this attribute means that the quantities will not be considered.
maxTransportPeriod Integer The maximum transport period the goods can stay on the vehicle from leaving the transport point A till arriving at the transport point B ([sec], >= 0, optional). Omitting this attribute means that the goods can stay on the vehicle without time constraints.

TransportDepot

Extends TransportOrder

Depot-related attributes to represent the transportation of pickup quantities from a transport point to an end depot and delivery quantities from a start depot to a transport point.
Attribute Name Type Description
depotIds int[]

The unique keys to identify the related depots clearly (> 0, optional). With one element in the list, the transport order has a fixed assignment to the depot. With more than one element in the list, the tour optimization can choose one of the depots as the fixed depot. In case of delivery quantities this depot is considered as the fixed start depot. The same applies if no quantities are defined. In case of pickup quantities this depot is considered as the fixed end depot. Omitting this attribute means that the transportation can be done with any depot.

transportPoint TransportPoint The transport point of the order to pick up or deliver the goods (required).
pickupQuantities Quantities Pickup quantities of the transport order ([QU], >= 0, optional). They are related to the vehicle capacities. It is possible to use delivery quantities at the same time. Omitting this attribute means that the quantities will not be considered.
deliveryQuantities Quantities Delivery quantities of the transport order ([QU], >= 0, optional). They are related to the vehicle capacities. It is possible to use pickup quantities at the same time. Omitting this attribute means that the quantities will not be considered.
maxTransportPeriodForDeliveries Integer The maximum transport period the goods can stay on the vehicle from leaving the start depot till arriving at the transport point ([sec], >= 0, optional). Omitting this attribute means that the goods (typically deliveries) can stay on the vehicle without time constraints.
maxTransportPeriodForPickups Integer The maximum transport period the goods can stay on the vehicle from leaving the transport point till arriving at the end depot ([sec], >= 0, optional). Omitting this attribute means that the goods (typically pickups) can stay on the vehicle without time constraints.
depotAvailabilityForDeliveries Integer The earliest time the goods are available at the start depot ([sec] from a reference point in time on, >= 0, optional). Omitting this attribute means that the goods (typically deliveries) are available at the start depot at any time.
depotAvailabilityForPickups Integer The latest time the goods are deliverable to the end depot ([sec] from a reference point in time on, >= 0, optional). Omitting this attribute means that the goods (typically pickups) are deliverable to the end depot at any time.

TransportOrder

Extends AbstractTransportOrder

Describes the basic planning object for tour optimization. Every order specifies the transportation of goods between logistic points. The desired order must be specified by the corresponding subclass.
Attribute Name Type Description
vehicleId Integer

The unique key to identify the related vehicle clearly (> 0, optional). The transport order has a fixed assignment to the vehicle. Omitting this attribute means that the transport order can be executed by any vehicle.

vehicleCategories int[]

Valid categories for vehicles driving the transport order (1 <= x <= 255, optional). There are up to 255 different categories possible. They are useful to assign the transport order to a vehicle group. Omitting this attribute means that the transport order can be executed by vehicles of any category.

vehicleRequirements int[]

Requirements of the transport order the vehicle must fulfill with its equipment in case of executing the transport order (1 <= x <= 512, optional). There are up to 512 different requirement flags possible. Omitting this attribute means that the transport order has no requirements.

vehicleExclusions int[]

Exclusions of the transport order the vehicle must not fulfill with its equipment in case of executing the transport order (1 <= x <= 512, optional). There are up to 512 different exclusion flags possible. Omitting this attribute means that the transport order has no exclusions.

areaNumber Integer

Area number of the transport order (> 0, optional). A transport order assigned to an area can only be planned in a tour with transport orders having the same or no area number. Thereby a vehicle with an corresponding area number is necessary. This number is only considered when using AreaParams. Omitting this attribute means that the transport order has no assignment to an area and can be planned in any tour.

minLoadingArea LoadingArea

The minimum size and/or weight of a transport order. Omitting this attribute means that there is no lower bound.

maxLoadingArea LoadingArea

The maximum size and/or weight of a transport order. Omitting this attribute means that there is no upper bound.

trailerLoadingForbidden boolean

If true, transportation on a trailer is disabled. Default is false.

TransportPoint

Extends LogisticPoint

A transport point is an element of a transport order and is usually related to a customer address.
Attribute Name Type Description
tourSection int Position of the transport point in a tour (0 <= tourSection <= 1000). Within a tour the tourSection values != 0 of the transport points will be sorted ascending so that it is possible to pre-order the transport points. Transport points with tourSection 0 will be placed anywhere. TourSection 1 will be the first stop within a tour, and 1000 will be the last stop. There will be not more than one transport points within a tour with tourSection 1 or 1000, respectively.
servicePeriod int The duration of the vehicle-independent amount of service period at the transport point ([sec], >= 0).
useServicePeriodForRecreation boolean If true, the service for the transport point may be used as break or rest.
allowServiceSplit boolean If true, the service for the transport point may be split on two different opening intervals. This is only relevant for opening interval constraint SERVICE and moreover the end of the service is beyond the end of the current opening interval.
openingIntervalConstraint OpeningIntervalConstraint A constraint regarding service period and opening interval.
areaNumberPosition Integer

Area number position of the transport point (> 0, optional). This position is responsible for an ascending order of the transport points in a tour. Thereby several transport points with the same area number could have the same area number position. However a position without an area number is not possible. This position is only considered when using AreaParams. Omitting this attribute means that the transport point has no area number position and can be planned in any position of the tour.

coDriverRequired boolean

If true, a co-driver is required for this TransportPoint. The default is false.

UnscheduledOrderAnalysisParams

Extends CalculationParams

Additional attributes for analyzing unscheduled orders. The attribute unscheduledOrderIdsToBeAnalyzed must contain a subset of the input plan's unscheduledOrderIds. These orders will be analyzed and the result is returned in PlanResult as an array of UnscheduledOrderAnalysisResult.
Attribute Name Type Description
unscheduledOrderIdsToBeAnalyzed int[]

The orders that should be analyzed. Must be a subset of the input plan's unscheduledOrderIds.

UnscheduledOrderAnalysisResult

A single unscheduled order analysis. It contains the orderID, a status, vehicleViolations and tour violations. The violations specify the reasons why this order could not be planned.

If the input plan only contains violated chains (see AbstractTourResult.violations), the stop cannot be inserted at all and analyzing an unscheduled order will not return any further violations.

Attribute Name Type Description
orderId int

The order that was analyzed.

status UnscheduledStopStatus

The analysis status.

vehicleViolations VehicleViolations[]

The violations for vehicles. Each array element represents the violations for a single vehicle.

tourViolations TourViolations[]

The violations for tours. Each array element represents the violations for a single tour.

Vehicle

Extends BaseVehicle

Vehicles are located at a depot before they perform tours. They may perform several consecutive tours in a so called tour chain. A vehicle also represents the characteristics of a dedicated driver.
Attribute Name Type Description
id int The unique key to identify the vehicle clearly (> 0).
description String

Additional field to describe the vehicle (optional); not relevant for tour planning.

category Integer Category of the vehicle (1 <= x <= 255, optional). Categories are a way to group the vehicles. They are useful to assign transport orders to vehicles. Omitting this attribute means that the standard category 1 is set.
transportEquipments int[] Available equipment of the vehicle to satisfy transport order requirements (1 <= x <= 512, optional). There are up to 512 different equipment flags possible. Omitting this attribute means that the vehicle has no equipment flags.
areaNumbers int[] Area numbers of the vehicle (> 0, optional). A vehicle assigned to one or more areas can drive transport orders having the same or no area number. Thereby a vehicle can operate only in one area during one tour. These numbers are only considered when using AreaParams. Omitting this attribute means that the vehicle has no assignment to an area and can only drive transport orders having no area number.
intermediatePeriod Integer

Minimum required period between two consecutive tours ([sec], >= 0). The earliest start time of the successive tour is the end of the preceding tour plus this changeover period.

startLocation Point

If the vehicle is not located at the start depot, its actual start location can be given here. The distance from the start location to the depot will be stated in ChainResult.

endLocation Point

If the vehicle will not be located at the end depot, its actual end location can be given here. The distance from the depot to the end location will be stated in ChainResult.

restrictions VehicleRestrictions

The restrictions of the vehicle regarding tours and chains.

minLoadingArea LoadingArea

The minimum size and/or weight of a vehicle load. Omitting this attribute means that there is no lower bound.

maxLoadingArea LoadingArea

The maximum size and/or weight of a vehicle load. Omitting this attribute means that there is no upper bound.

ignoreIntermediatePeriodBeforeFirstTour boolean

If true, the intermediatePeriod before the first tour is ignored.

VehicleCosts

Extends Costs

Describes the costs of the vehicle in question.
Attribute Name Type Description
costsPerChain double

The costs of each chain ([MU]). These are the costs which arise whenever the vehicle (or the driver, respectively) start a chain. These costs will only be used to reduce the number of vehicles being planned, if possible, but they will not be summed up for the total costs. Instead, they will be listed separately in the response. The costs per chain will not be used with planSequence.

VehicleRestrictions

Describes the restrictions regarding tours and chains valid for this vehicle.
Attribute Name Type Description
maxTransportPointCountPerTour Integer The maximum number of transport points in a tour of the vehicle (>= 0, optional). Omitting this attribute means unlimited number transport points.

The parameter mergeTransportPointCountPerSite  affects the way how transport points at the same site are counted for this restriction.

maxDrivingPeriodPerChain Integer Maximum driving period of all consecutive tours in a tour chain of the vehicle ([sec], >= 0, optional). Omitting this attribute means unlimited driving period.
maxTourCountPerChain Integer Maximum number of consecutive tours in a tour chain of the vehicle (> 0, optional). Omitting this attribute means unlimited tours.
maxDistancePerTour Integer

The maximum distance [m] between all tour points of a tour for this vehicle. Omitting this attribute means that the tour distance is restricted by  TourRestrictions.maxDistance.

VehicleSchedulingParams

Extends PlanningParams

Truck scheduling attributes. The use case described by this class executes a cost based vehicle scheduling based on an existing input tour.
Attribute Name Type Description
availableMachineTime Integer

Limits the available machine time of the tour optimization ([sec], > 0, optional). It is recommended to provide as much machine time as possible. Omitting this attribute means that the tour optimization is executed without time limits.

goal VehicleSchedulingGoal

The goal that describes how to schedule the tours.

optimizeSchedulingQuality Boolean

If true, the best solution is searched. This may take a considerable amount of time.

VehicleViolations

The violations of an unscheduled order on a single vehicle.
Attribute Name Type Description
vehicleId int

The unique key to identify the vehicle.

trailerId int

The unique key to identify the trailer.

trainId int

The unique key to identify the train.

violations String[]

An array of violations. See TourViolation for details on single violations. This enumeration may be extended without further notice. Client applications must ignore unknown values.

WeeklyRestRule

The periods and frequencies needed to obey the weekly rest rules of the European Union.
Attribute Name Type Description
maximumPeriodBetweenWeeklyRests int

Maximum period between the end of a weekly rest period and the beginning of the following weekly rest period.

Remarks: According to EU regulation : 6d (518400s)
maximumWeeklyDrivingPeriod int

Cumulative period of time a driver is allowed to drive within a week.

Remarks: According to EU regulation : 56h (201600s)
maximumBiweeklyDrivingPeriod int

Cumulative period of time a driver is allowed to drive within two weeks.

Remarks: According to EU regulation : 90h (324000s)
weeklyRestPeriod int

Minimum period of time of a weekly rest.

Remarks: According to EU regulation : 45h (162000s)

WorkingRule

Parameters needed to obey the working rules of Germany.
Attribute Name Type Description
breakPeriod int

Minimum duration of required working break.

Remarks: According to German working hours regulation: 30m (1800s)
extendedBreakPeriod int

Minimum duration of extended break if workingPeriod exceeded.

Remarks: According to German working hours regulation: 45m (2700s)
maxWorkingPeriodWithoutBreak int

Maximum duration of uninterrupted working time without having a break.

Remarks: According to German working hours regulation: 6h (21600s)
maxWorkingPeriodWithoutExtendedBreak int

Maximum duration of uninterrupted working time without having an extended break.

Remarks: According to German working hours regulation: 9h (32400s)
minPartialBreakLength int

Minimum duration break part if break is split.

Remarks: According to German working hours regulation: 15m (900s)
maxWorkingPeriodWithoutDailyRest int

Maximum working period after which a daily working rest must be done.

Remarks: According to German working hours regulation: 8h - 10h (28000s - 36000s)
maxWorkingPeriodPerWeek int

Maximum working period in a week.

Remarks: According to German working hours regulation: 48h - 60h (172800s - 216000s)
dailyRestPeriod int

Minimum uninterrupted daily rest period after work.

Remarks: According to German working hours regulation: 11h (39600s)

Enumerations

BalancingGoal

Enumerates the goal to balance the tours.
Enumerator Name Value Description
TOUR_PERIOD 0 Goal to balance the tour period.
QUANTITY 1 Goal to balance the sum of the pickup and delivery quantity number 1 on the tour.

CoDriverStatus

The status of the co-driver.
Enumerator Name Value Description
NEVER None

No co-driver.

ALWAYS None

The co-driver must be present.

IF_REQUIRED None

The co-driver if needed.

ErrorCode

Enumerates the error code.
Enumerator Name Value Description
LICENSE_ERROR 10000 License is not valid or expired.
PROFILESETTINGS_ERROR 10001 Invalid profile settings.
MODULE_ERROR 10002 General error code of the module.
ENGINE_ERROR 10003 General error code of the engines.
REQUIREDPARAMETER_ERROR 10004 Missing a required input parameter.
INVALIDPARAMETER_ERROR 10005 Invalid input parameter.

OpeningIntervalConstraint

A constraint regarding service period and opening interval.
Enumerator Name Value Description
START_OF_SERVICE 0 The beginning of the service period must be included in the opening interval. To make it simple, the vehicle must arrive at the transport point when it is open, but can leave it when it is closed.
COMPLETE_SERVICE 1 The complete service must be done when the transport point is open.

ProductIncompatibilityType

The type of incompatibility of two products.
Enumerator Name Value Description
NOT_ON_SAME_TOUR 0

The two products must not be transported on the same tour.

NOT_AT_SAME_TIME 1

The two products must not be transported at the same time.

TourEventDescription

Enumeration of possible description flags of a TourEvent. Description flags are independent of each other to a large extent. This enumeration may be extended without further notice. Client applications must ignore unknown values.

Some examples:

As explained above, some flags may seem superfluous in the presence of others. We leave it up to the calling client to remove flags and further join events.
Enumerator Name Value Description
DRIVING 1

The driver is driving a vehicle.

SERVICE 2

Some service is provided. The driver is either actively working or waiting for the service to be finished.

WAITING 3

The driver is waiting. He might be recreating himself at the same time.

NOT_OPERATING 4

The event takes place outside of any operating interval. The driver might be recreating himself at the same time.

BREAK 5

The driver is taking a break. Break is a kind of recreation.

DAILY_REST 6

The driver is taking a daily rest. Daily rest is a kind of recreation.

WEEKLY_REST 7

The driver is taking a weekly rest. Weekly rest is a kind of recreation.

IS_IN_SERVICE_INTERVAL 8

The tour event takes place within a service interval.

WORKING 9

The driver is working.

WORKING_BREAK 10

The driver is taking a working break. (WorkingRule)

WORKING_REST 11

The driver is taking a daily working rest. (WorkingRule)

INTERVAL_BREAK 12

The driver is taking a break prescribed by the given break intervals.

INTERMEDIATE 13

Period between two tours in a chain (During intermediate period the driver is not working).

TourEventViolation

Enumerates all violations which can occur within a TourEvent. This enumeration may be extended without further notice. Client applications must ignore unknown values.
Enumerator Name Value Description
OPERATING_INTERVAL_VIOLATION 1

Driving of active service is performed outside of all operating intervals.

SERVICE_INTERVAL_VIOLATION 2

Service is performed although the given service intervals do not allow this.

MAXIMUM_TOUR_PERIOD_VIOLATION 3

The tour period exceeds the allowed tour period.

DISTANCE_OF_SERVICE_VIOLATION 4

Maximum distance of services between two logistic points was exceeded.

TourPointFixation

Enumerates the fixation of tour points of the related tour during the tour optimization.
Enumerator Name Value Description
NONE 0 No fixation of all tour points of the related tour.
NO_TOUR_POINT_OUT 1 All tour points of the related tour must stay in the tour, but additional tour points inserted in the tour are allowed.
NO_TOUR_POINT_IN_AND_OUT 2 All tour points of the related tour must stay in the tour and no additional tour points inserted in the tour are allowed.
COMPLETELY_FIXED 3 All tour points of the related tour must stay in the tour and no additional tour points inserted in the tour are allowed. Moreover the sequence of the tour points must remain unchanged.

TourPointType

Enumerates the types of a tour point
Enumerator Name Value Description
TRANSPORT_POINT 0 Transport point.
DEPOT 1 Depot.

TourPointViolation

Enumerates the different tour point violations.
Enumerator Name Value Description
OPENING_INTERVAL 0 The arrival at the tour point exceeds the related opening intervals.
SERVICE_SPLIT 2 The attribute allowServiceSplit for the related transport point is violated.
MAX_TRANSPORT_PERIOD 3 The transport period the goods of the tour point can stay on the vehicle exceeds the maximum transport period.
TRANSPORT_AB_DIRECTION 5

Transport point in wrong order for the related TransportAB.

TourViolation

Enumerates the different tour violations. This enumeration may be extended without further notice. Client applications must ignore unknown values.
Enumerator Name Value Description
ORDER_VEHICLE_ID 0 The fixed vehicle assignments of the related transport orders are inconsistent with one another or in relation to the vehicle of the tour.
ORDER_VEHICLE_CATEGORY 1 The vehicle categories of the related transport orders are inconsistent with one another or in relation to the vehicle of the tour.
ORDER_VEHICLE_REQUIREMENT 2 The vehicle requirements of the related transport orders are not fulfilled by the vehicle equipment of the tour.
ORDER_VEHICLE_EXCLUSION 3 The vehicle exclusions of the related transport orders are fulfilled by the vehicle equipment of the tour.
ORDER_AREA_NUMBER 4 The area number of at least one related transport order is inconsistent in relation to the area number of the tour.
ORDER_DEPOT_ID 5 The fixed start depot and end depot assignment of at least one related TransportDepot is inconsistent in relation to the start depot and end depot of the tour.
TOUR_POINT_OPENING_INTERVAL 6 The arrival at at least one tour point exceeds the related opening intervals.
TOUR_POINT_SERVICE_SPLIT 8 The attribute allowServiceSplit for at least one related transport point is violated.
TOUR_POINT_MAX_TRANSPORT_PERIOD 9 The transport period the goods of at least one tour point can stay on the vehicle exceeds the maximum transport period.
TOUR_POINT_TOUR_SECTION 10 The attribute tourSection for at least one related tour point is violated.
TOUR_POINT_AREA_NUMBER_POSITION 11 The area number position of at least one related tour point is not in ascending order.
VEHICLE_DEPOT_ID 12 The vehicle start depot and end depot is inconsistent in relation to the start depot and end depot of the tour.
VEHICLE_AREA_NUMBER 13 The vehicle area numbers are inconsistent in relation to the area number of the tour.
VEHICLE_OPERATING_INTERVAL 14 The tour could not be executed within the related operating intervals.
VEHICLE_CAPACITY 15 The maximum quantity on the tour exceeds the loading capacity of the vehicle.
VEHICLE_MAX_TOUR_COUNT_PER_CHAIN 16 The number of consecutive tours in the tour chain of the vehicle exceeds the maximum number. The violation occurs from the first and all following tours on the maximum number is exceeded.
VEHICLE_MAX_DRIVING_PERIOD_PER_CHAIN 17 The driving period of all consecutive tours in the tour chain of the vehicle exceeds the maximum driving period. The violation occurs from the first and all following tours on the maximum driving period is exceeded.
VEHICLE_MAX_TRANSPORT_POINT_COUNT_PER_TOUR 18 The number of related transport points in the tour exceeds the maximum number of the vehicle.
TRAILER_LOADING_VIOLATION 19 The capacity of the vehicle is not sufficient to load all orders that are not allowed on the trailer.
MAX_TRANSPORT_POINT_COUNT_PER_TOUR 20 The number of related transport points in the tour exceeds the maximum number of the limit values.
MAX_PERIOD_PER_TOUR 21 The tour period exceeds the maximum tour period.
MAX_DRIVING_PERIOD_PER_TOUR 22 The tour driving period exceeds the maximum tour driving period.
MAX_DISTANCE_PER_TOUR 25 The tour distance exceeds the maximum tour distance.
MAX_DISTANCE_FROM_FIRST_TO_LAST_TRANSPORT_POINT_PER_TOUR 26

The distance between the first and the last tour point in sum of one tour exceeds the maximum distance.

MAX_DISTANCE_BETWEEN_TRANSPORT_POINTS 27

The distance between two consecutive tour points of one tour exceeds the maximum distance.

FIXED_START_TIME 28 The fixed start time of the tour is inconsistent in relation to the fixed departure time of the vehicle or to the availability of the goods at the start depot.
SINGLE_OPERATION_INTERVAL 29

Not in use anymore.

AVAILABILITY 30

The tour violates the restricted availabilities of the goods.

TRANSPORT_AB_COMPLEMENT 31 Missing transport point of at least one related TransportAB.
TRANSPORT_AB_DIRECTION 32 Transport points in wrong order of at least one related TransportAB.
TOUR_POINT_NO_CODRIVER_VEHICLE 33

Co-driver is needed but tour point is handled by a vehicle without a co-driver.

TOUR_POINT_CODRIVER_NO_SEPARATE_TOUR 34

The tour requires a co-driver but contains also tourpoints which does not need a co-driver.

TOUR_POINT_LOADING_AREA 35

The vehicle does not match all loading areas of the tour points.

TOUR_POINT_FIXATION 36

Tour point fixation prevents operation.

BREAK_AND_REST_REGULATION 37

Break and rest rules are violated due to prescribed arrival or departure times.

INCOMPATIBLE_PRODUCTS 38

At least two types of incompatible products are transported in this tour.

ONLY_ONE_TOUR_PER_VEHICLE_INTERVAL 39

More than one tour has to be scheduled in a vehicle operating interval, which is not allowed for this request.

INTERMEDIATE_PERIOD 40

The intermediate period is violated.

INACCESSIBLE_RELATIONS_USED 41

Some of the relations that were used to plan this tour did not exist in the distance matrix and thus were interpolated.

MAX_PERIOD_PER_NIGHT_TOUR 42

The tour period of a 'night tour' exceeds the maximum night tour or the maximum night tour chain period.

UnscheduledStopStatus

The status for an unscheduled stop.
Enumerator Name Value Description
FEASIBLE 0

The stop is not scheduled in the input plan but it could be scheduled without a violation. The reason why this stop is not scheduled is most likely the fact that the construction step refuses to schedule stops that do not match some general conditions such as the maximum earliness. The improvement stop will schedule the stop then, so please switch on the improvement stop.

UNSCHEDULED_DUE_TO_PLAN 1

The stop was not planned due to the plan. For example there was no suitable tour.

UNSCHEDULED_DUE_TO_VEHICLES 2

The stop was not planned due to the vehicles. For example there was no suitable vehicle or there are already other stops in the tour.

VehicleSchedulingGoal

An enumeration that describes how to schedule the tours.
Enumerator Name Value Description
MINIMUM_CHAIN_COUNT None

Minimizing chain count and cost. In case less trucks are scheduled cost of new tour plan is allowed to be higher.

MINIMUM_COST None

Minimizing costs of the tour plan only.

Exceptions

XTourException

XTourException is thrown on module specific problems such as wrong parameters or engine errors.

Component common

Diagrams

basetypes

opengis-geometry

Exceptions

Asynchronous Requests

Classes

BoundingBox

A bounding box, definded by its left top corner point and right bottom corner point.
Attribute Name Type Description
leftTop Point

The left top corner point.

rightBottom Point

The right bottom corner point.

BulkProgress

Extends JobProgress

Default implementation for bulk jobs.
Attribute Name Type Description
remaining int

Specifies how many requests have still to be calculated.

successful int

The number of successful calculations so far.

failed int

The number of failed computations so far.

ClusterProgress

Extends JobProgress

Implementation of JobProgress for cluster planning.
Attribute Name Type Description
action String

The current action being executed. For more information on progress see About Asynchronous Protocol.

distanceMatrixProgress DistanceMatrixProgress

The progress of the distance matrix calculation, available only if action equals "DistanceMatrix.Calculation".

optimizationProgress OptimizationProgress

The progress of the optimization, available only if action starts with "Optimization.".

DistanceMatrixCalculationProgress

Progress information of the currently active distance matrix calculation
Attribute Name Type Description
dimaId int

The unique key to identify the distance matrix currently being calculated.

currentDimaIndex int

The 1-based index of the distance matrix currently being calculated. Depending on the number of different vehicles in the request the number of distance matrices to be calculated can be greater than

lastDimaIndex int

The index of the last distance matrix to be calculated, that is the total number of distance matrices.

currentDistanceMatrixProgress DistanceMatrixProgress

The progress of the distance matrix currently being processed, available only if action equals "DistanceMatrix.Calculation".

DistanceMatrixProgress

Extends JobProgress

Default implementation for distance matrix calculation jobs.
Attribute Name Type Description
currentRowIndex int

The 1-based index of the current row of the current distance matrix being calculated.

lastRowIndex int

The index of the last row of the current distance matrix to be calculated.

EncodedGeometry

Extends EncodedGeometryBase

The abstract base class for geometry objects used in a geographical PTV xServer. Contains the attributes to represent openGIS conform encodings with a specific coordinate format. The actual representation is defined by the CallerContext ResponseGeometry property (GeometryEncoding) and the CallerContext CoordFormat property (CoordFormat).

Attribute Name Type Description
wkb byte[]

If not null, this attribute contains the well-known binary encoded form of the geometry

wkt String

If not null, this attribute contains the well-known text encoded form of the geometry

kml KML

If not null, this attribute contains the well-known text encoded form of the geometry

EncodedGeometryBase

The abstract base class for geometry objects.
No attributes defined.

GeometryCollection

Extends EncodedGeometry

A geometry collection as specified by the openGIS standard.
Attribute Name Type Description
geometryCollection PlainGeometryCollection

If not null, this attribute contains the explicit form of the geometry

ImprovementProgress

Progress information of the currently active improvement step of the optimization.
Attribute Name Type Description
availableMachineTime int

The available machine time stated in the request in [s]. This value is 0 if available machine time is not set in the request.

usedMachineTime int

The machine time already used in [s].

iterationIndex int

The index of this iteration. Index 0 denotes the initial plan directly after construction or the input plan.

numberOfImprovements int

The number of improvements the algorithm has already achieved. In other words, this is the number of tour plans with a smaller value of costOfObjectiveFunction than the best one at that time.

currentPlan KeyFigures

The key figures characterizing the current tour plan.

bestPlan KeyFigures

The key figures characterizing the currently best tour plan.

initialPlan KeyFigures

The key figures characterizing the initial tour plan. The initial tour plan is the input plan, if available, or the first tour plan after the construction step.

Job

Reference to jobs running in the background.
Attribute Name Type Description
id String

This id references the background job on the server.

status JobStatus

The current status of the job.

progress JobProgress

The current progress of the job. Can be null at the very beginning or very end of the request execution.

elapsedTime int

Elapsed time since this job has been queued.

JobProgress

Abstract base class for progresses. An individual PTV xServer might define its own implementations.
No attributes defined.

KML

Represents a KML geometry.
Attribute Name Type Description
kml String

The KML string itself.

placemarks String[]

The placemarks of the KML. If empty, all placemarks will be used. This will result in a GeometryCollection, if more than one exists.

KeyFigures

These key figures characterize a tour plan.
Attribute Name Type Description
costOfObjectiveFunction int

The optimization aims at minimizing the objective function. This value contains its arithmetical cost.

The significance of this value is not the value itself, but rather if and how fast it decreases during the calculation. The faster the value decreases the better the tour plans become according to the GoalImportance which defines what "better" means, at all.

numberOfScheduledOrders int

The number of orders already being scheduled.

numberOfUnscheduledOrders int

The number of orders not being scheduled, yet. These orders are feasible and can be scheduled during further improvement iterations.

numberOfInfeasibleOrders int

The number of orders not being scheduled. These orders are infeasible and will not be scheduled during further improvement iterations.

numberOfScheduledVehicles int

The number of vehicles being scheduled.

totalTourCount int

The number of all planned tours.

totalTourPeriod int

The sum of the tour periods for all planned tours ([sec]).

totalTourDrivingPeriod int

The sum of the tour driving periods for all planned tours ([sec]).

totalTourWaitingPeriod int

The sum of the tour waiting periods for all planned tours ([sec]).

totalTourDistance int

The sum of the tour distances for all planned tours ([m]).

totalTourCost int

The sum of the tour costs for all planned tours ([MU]). The costs per chain will not be included, see attribute totalChainCosts.

totalChainCost int

The sum of the costs per chain of all planned chains ([MU]). See VehicleCosts.

totalChainPeriod int

The sum of the chain periods of all planned chains ([sec]). The chain period is defined as the period between the start of the first tour and the end of the last tour. This period is greater than the sum of the periods of all tours if two subsequent tours do not start right after the other.

LineString

Extends EncodedGeometry

A line string as specified by the openGIS standard.

See EncodedGeometry for possible representations.

Attribute Name Type Description
lineString PlainLineString

If not null, this attribute contains the explicit form of the geometry.

ATTENTION: Filled with requested EncodedGeometry representation (not necessarily a plain geometry).

LinearRing

Extends EncodedGeometry

A linear ring as specified by the openGIS standard.

See EncodedGeometry for possible representations.

Attribute Name Type Description
linearRing PlainLinearRing

If not null, this attribute contains the explicit form of the geometry.

ATTENTION: Filled with requested EncodedGeometry representation (not necessarily a plain geometry).

MultiLineString

Extends EncodedGeometry

A multi line string as specified by the openGIS standard.

See EncodedGeometry for possible representations.

Attribute Name Type Description
multiLineString PlainMultiLineString

If not null, this attribute contains the explicit form of the geometry.

ATTENTION: Filled with requested EncodedGeometry representation (not necessarily a plain geometry).

MultiPoint

Extends EncodedGeometry

A multi point as specified by the openGIS standard.

See EncodedGeometry for possible representations.

Attribute Name Type Description
multiPoint PlainMultiPoint

If not null, this attribute contains the explicit form of the geometry.

ATTENTION: Filled with requested EncodedGeometry representation (not necessarily a plain geometry).

MultiPolygon

Extends EncodedGeometry

A multi polygon as specified by the openGIS standard.

See EncodedGeometry for possible representations.

Attribute Name Type Description
multiPolygon PlainMultiPolygon

If not null, this attribute contains the explicit form of the geometry.

ATTENTION: Filled with requested EncodedGeometry representation (not necessarily a plain geometry).

OptimizationProgress

The progress information of the currently active step of the optimization.
Attribute Name Type Description
currentLoopIndex int

The index of the current loop being calculated.

lastLoopIndex int

The index of the last loop being calculated. The calculation will automatically be finished by the algorithm before reaching this index when no improvement could be reached, anymore. The total number of loops can be set for the improvement step, only (see Params).

progress int

The progress in % of the current loop being calculated.

PlainGeometryBase

The abstract base class for the structured representation of geometry objects.
No attributes defined.

PlainGeometryCollection

Extends PlainGeometryBase

A plain structured polygon consisting of a set geometries.
Attribute Name Type Description
geometries PlainGeometryBase[]

The set of geometries making up the geometry collection.

PlainLineString

Extends PlainGeometryBase

A plain structured line string consisting of a set of points.

Attribute Name Type Description
points PlainPoint[]

The set of points defining the line string.

PlainLinearRing

Extends PlainGeometryBase

A plain structured linear ring consisting of a set of points

Attribute Name Type Description
points PlainPoint[]

The set of points defining the linear ring.

PlainMultiLineString

Extends PlainGeometryBase

A plain structured polygon consisting of a set of line strings.
Attribute Name Type Description
lineStrings PlainLineString[]

The set of line strings making up the multi line string.

PlainMultiPoint

Extends PlainGeometryBase

A plain structured polygon consisting of a set of points.
Attribute Name Type Description
points PlainPoint[]

The set of points making up the multi point.

PlainMultiPolygon

Extends PlainGeometryBase

A plain structured polygon consisting of a set of polygons.
Attribute Name Type Description
polygons PlainPolygon[]

The set of polygons making up the multi polygon.

PlainPoint

Extends PlainGeometryBase

A plain structured point consisting of two floating point attributes for the coordinates. In contrast to Point it is never transformed.

Attribute Name Type Description
x double

The x coordinate

y double

The y coordinate

z Double

The z coordinate (optional, only if requested)

PlainPolygon

Extends PlainGeometryBase

A plain structured polygon consisting of a set of linear rings.

Attribute Name Type Description
linearRings PlainLinearRing[]

The set of linear rings making up the polygon.

PlanProgress

Extends JobProgress

Implementation of JobProgress for tour planning.
Attribute Name Type Description
action String

The current action being executed. For more information on progress information see About Asynchronous Protocol.

distanceMatrixCalculationProgress DistanceMatrixCalculationProgress

The progress of the distance matrix calculation, available only if action starts with "DistanceMatrix.".

improvementProgress ImprovementProgress

The progress of the improvement step during the tour plan optimization, available only if action equals "Optimization.Improvement".

Point

Extends EncodedGeometry

Represents a single coordinate (point). Do not use this type for other points (e.g. pixel in an image), the coordinates are automatically transformed. Instead use PlainPoint.

See EncodedGeometry for possible representations.

Attribute Name Type Description
point PlainPoint

If not null, this attribute contains the explicit form of the geometry.

ATTENTION: Filled with requested EncodedGeometry representation (not necessarily a plain geometry).

Polygon

Extends EncodedGeometry

A polygon as specified by the openGIS standard.

See EncodedGeometry for possible representations.

Attribute Name Type Description
polygon PlainPolygon

If not null, this attribute contains the explicit form of the geometry.

ATTENTION: Filled with requested EncodedGeometry representation (not necessarily a plain geometry).

RequestOptions

General options for requests

Attribute Name Type Description
coordFormat CoordFormat

The coordinate format used in the request/response.

responseGeometry GeometryEncoding[]

The geometry encoding for the response.

profile String

The name of the parameter profile to be used.

profileXMLSnippet String

For internal use only.

srId String

If the coordFormat equals to 'OG_SRID', this attribute contains the Spatial Reference Identifier as specified by the Open Geospatial Consortium (OGC), otherwise it is null. All codes of the EPSG Geodetic Parameter Dataset V7.9 maintained by the EPSG.

TerritoryProgress

Extends JobProgress

Implementation of JobProgress for territory planning.

Attribute Name Type Description
action String

The current action being executed. For more information on progress with territory planning see the use case documentation.

distanceMatrixProgress DistanceMatrixProgress

The progress of the distance matrix calculation, available only if action equals "DistanceMatrix.Calculation".

optimizationProgress int

The progress of the optimization, available only if action starts with "TerritoryOptimization.".

WatchOptions

This class includes options to control job status and progress updates. All parameters are optional.
Attribute Name Type Description
progressUpdatePeriod Integer

If defined this optional parameter enables additional progress updates with the specified interval. If no new progress update arrives during the specified period, watchJob will wait for and return with the next available progress update. Important updates such as terminal states will always return immediately. The minimum period must be at least 250ms. If no progress waiting period is defined, progress will only be sent as part of status updates.

maximumPollingPeriod Integer

Specifies the timeout after which watchJob will report the last status even if no further updates are available.If not specified a configured default is used.

ZoneLoadingProgress

Extends JobProgress

Attribute Name Type Description
action String

The current action being executed.

optimizationProgress int

The progress of the optimization, available only if action starts with "LoadingSpaceOptimization.".

Enumerations

CoordFormat

The CoordFormat enumeration contains all coordinate types supported by the PTV xServer. All examples represent the same geographic location.

Enumerator Name Value Description
OG_GEODECIMAL None

OpenGIS representation of WGS 84 coordinates. Example x=8.2505556, y=48.7627778.

PTV_MERCATOR None Mercator projection. Example x=917420, y=6227729.
PTV_GEOMINSEC None

PTV representation of coordinates by degree, minute, and second. Example x=815020, y=4845460.

PTV_GEODECIMAL None

PTV representation of WGS 84 coordinates. Example x=825056, y=4876278.

PTV_CONFORM None

PTV representation of conform coordinates. Example x=1672358, y=1620743.

PTV_SUPERCONFORM None

PTV representation of super-conform coordinates. Example x=5072358, y=3320743.

PTV_SMARTUNITS None

PTV internal coordinate format. Example x=4352286, y=5456405.

OG_SRID None

This format is set implicitly, if a Spatial Reference Identifier as specified by the Open Geospatial Consortium (OGC) is set in the CallerContext. All codes of the EPSG Geodetic Parameter Dataset V7.9 maintained by the EPSG..
Note: The coordinate format 'OG_GEODECIMAL' and the SRID code 'EPSG:4326' are equivalent.

ErrorCode

Enumerator Name Value Description
REQUEST_INVALID_WKT 10

The specified WKT in the request is invalid. It should a well-known text representation of a geometry from a string (see the OpenGIS simple features specification).

REQUEST_INVALID_WKB 11

The specified WKB in the request is invalid. It should be a geometry from a byte stream in well-known binary format.

REQUEST_INVALID_KML 12

The specified KML in the request is invalid.

KML_PLACEMARK_NOT_FOUND 13

Thrown, if requested placemark name is not found in the KML

CONVERT_GEOMETRY_OBJECT 20

One or more geometry objects in the request are invalid. There are problems to convert a geometry object to a plain geometry object. Also used for retrieving the plain geometry object from a geometry object.

CONVERT_COORDINATE_FORMAT 21

There are problems to convert a CoordFormat of the request to a coordinate type.

GEOMETRY_ENCODING 22

Geometry objects cannot be encoded.

GeometryEncoding

Defines encoding options for geometry parameters and results.

Plain indicates that geometry objects should be transmitted in plain object form, WKB indicates that openGIS well-known binary format should be used, WKT represents the openGIS well-known text format. KML represents the Keyhole Markup Language.

Enumerator Name Value Description
PLAIN None

Plain geometry encoding using structured objects and according network presentation.

WKB None

Geometry should be represented by well-known binaries.

WKT None

Use well-known texts to encode geometry objects.

KML None

Use Keyhole Markup Language to encode geometry objects.

JobStatus

Specifies different job status values.
Enumerator Name Value Description
QUEUING None

Job has been enqueued.

RUNNING None

Job is currently running.

STOPPING None

Stop has been requested, the job will terminate its calculation as soon as possible.

SUCCEEDED None

Job has completed successfully.

FAILED None

Job has failed with an exception.

DELETED None

The job was deleted by the user.

UNKNOWN None

The job is in an unknown state. For example a given id is unknown or the job has already been fetched and has thus been deleted from the underlying persistent store.

Exceptions

XServiceException

XServiceException is used for all exceptions which can occur in the PTV xServer framework.

SystemException (from package com.ptvag.jabba.core.exception)

This is the base class for all system relevant exceptions. It is thrown for example if a request has timed out or if a request has been rejected.