Reference documentation and code samples for the Google Maps Route Optimization V1 Client class Vehicle.
Models a vehicle in a shipment problem. Solving a shipment problem will
build a route starting from start_location
and ending at end_location
for this vehicle. A route is a sequence of visits (see ShipmentRoute
).
Generated from protobuf message google.maps.routeoptimization.v1.Vehicle
Namespace
Google \ Maps \ RouteOptimization \ V1Methods
__construct
Constructor.
data
array
Optional. Data for populating the Message object.
↳ display_name
string
The user-defined display name of the vehicle. It can be up to 63 characters long and may use UTF-8 characters.
↳ travel_mode
int
The travel mode which affects the roads usable by the vehicle and its speed. See also travel_duration_multiple
.
↳ route_modifiers
RouteModifiers
A set of conditions to satisfy that affect the way routes are calculated for the given vehicle.
↳ start_location
Google\Type\LatLng
Geographic location where the vehicle starts before picking up any shipments. If not specified, the vehicle starts at its first pickup. If the shipment model has duration and distance matrices, start_location
must not be specified.
↳ start_waypoint
Waypoint
Waypoint representing a geographic location where the vehicle starts before picking up any shipments. If neither start_waypoint
nor start_location
is specified, the vehicle starts at its first pickup. If the shipment model has duration and distance matrices, start_waypoint
must not be specified.
↳ end_location
Google\Type\LatLng
Geographic location where the vehicle ends after it has completed its last VisitRequest
. If not specified the vehicle's ShipmentRoute
ends immediately when it completes its last VisitRequest
. If the shipment model has duration and distance matrices, end_location
must not be specified.
↳ end_waypoint
Waypoint
Waypoint representing a geographic location where the vehicle ends after it has completed its last VisitRequest
. If neither end_waypoint
nor end_location
is specified, the vehicle's ShipmentRoute
ends immediately when it completes its last VisitRequest
. If the shipment model has duration and distance matrices, end_waypoint
must not be specified.
↳ start_tags
array
Specifies tags attached to the start of the vehicle's route. Empty or duplicate strings are not allowed.
↳ end_tags
array
Specifies tags attached to the end of the vehicle's route. Empty or duplicate strings are not allowed.
↳ start_time_windows
array< TimeWindow
>
Time windows during which the vehicle may depart its start location. They must be within the global time limits (see ShipmentModel.global_*
fields). If unspecified, there is no limitation besides those global time limits. Time windows belonging to the same repeated field must be disjoint, i.e. no time window can overlap with or be adjacent to another, and they must be in chronological order. cost_per_hour_after_soft_end_time
and soft_end_time
can only be set if there is a single time window.
↳ end_time_windows
array< TimeWindow
>
Time windows during which the vehicle may arrive at its end location. They must be within the global time limits (see ShipmentModel.global_*
fields). If unspecified, there is no limitation besides those global time limits. Time windows belonging to the same repeated field must be disjoint, i.e. no time window can overlap with or be adjacent to another, and they must be in chronological order. cost_per_hour_after_soft_end_time
and soft_end_time
can only be set if there is a single time window.
↳ travel_duration_multiple
float
Specifies a multiplicative factor that can be used to increase or decrease travel times of this vehicle. For example, setting this to 2.0 means that this vehicle is slower and has travel times that are twice what they are for standard vehicles. This multiple does not affect visit durations. It does affect cost if cost_per_hour
or cost_per_traveled_hour
are specified. This must be in the range [0.001, 1000.0]. If unset, the vehicle is standard, and this multiple is considered 1.0. WARNING: Travel times will be rounded to the nearest second after this multiple is applied but before performing any numerical operations, thus, a small multiple may result in a loss of precision. See also extra_visit_duration_for_visit_type
below.
↳ unloading_policy
int
Unloading policy enforced on the vehicle.
↳ load_limits
array| Google\Protobuf\Internal\MapField
Capacities of the vehicle (weight, volume, # of pallets for example). The keys in the map are the identifiers of the type of load, consistent with the keys of the Shipment.load_demands field. If a given key is absent from this map, the corresponding capacity is considered to be limitless.
↳ cost_per_hour
float
Vehicle costs: all costs add up and must be in the same unit as Shipment.penalty_cost
. Cost per hour of the vehicle route. This cost is applied to the total time taken by the route, and includes travel time, waiting time, and visit time. Using cost_per_hour
instead of just cost_per_traveled_hour
may result in additional latency.
↳ cost_per_traveled_hour
float
Cost per traveled hour of the vehicle route. This cost is applied only to travel time taken by the route (i.e., that reported in ShipmentRoute.transitions ), and excludes waiting time and visit time.
↳ cost_per_kilometer
float
Cost per kilometer of the vehicle route. This cost is applied to the distance reported in the ShipmentRoute.transitions
and does not apply to any distance implicitly traveled from the arrival_location
to the departure_location
of a single VisitRequest
.
↳ fixed_cost
float
Fixed cost applied if this vehicle is used to handle a shipment.
↳ used_if_route_is_empty
bool
This field only applies to vehicles when their route does not serve any shipments. It indicates if the vehicle should be considered as used or not in this case. If true, the vehicle goes from its start to its end location even if it doesn't serve any shipments, and time and distance costs resulting from its start --> end travel are taken into account. Otherwise, it doesn't travel from its start to its end location, and no break_rule
or delay (from TransitionAttributes
) are scheduled for this vehicle. In this case, the vehicle's ShipmentRoute
doesn't contain any information except for the vehicle index and label.
↳ route_duration_limit
Vehicle\DurationLimit
Limit applied to the total duration of the vehicle's route. In a given OptimizeToursResponse
, the route duration of a vehicle is the difference between its vehicle_end_time
and vehicle_start_time
.
↳ travel_duration_limit
Vehicle\DurationLimit
Limit applied to the travel duration of the vehicle's route. In a given OptimizeToursResponse
, the route travel duration is the sum of all its transitions.travel_duration
.
↳ route_distance_limit
DistanceLimit
Limit applied to the total distance of the vehicle's route. In a given OptimizeToursResponse
, the route distance is the sum of all its transitions.travel_distance_meters
.
↳ extra_visit_duration_for_visit_type
array| Google\Protobuf\Internal\MapField
Specifies a map from visit_types strings to durations. The duration is time in addition to VisitRequest.duration
to be taken at visits with the specified visit_types
. This extra visit duration adds cost if cost_per_hour
is specified. Keys (i.e. visit_types
) cannot be empty strings. If a visit request has multiple types, a duration will be added for each type in the map.
↳ break_rule
BreakRule
Describes the break schedule to be enforced on this vehicle. If empty, no breaks will be scheduled for this vehicle.
↳ label
string
Specifies a label for this vehicle. This label is reported in the response as the vehicle_label
of the corresponding ShipmentRoute
.
↳ ignore
bool
If true, used_if_route_is_empty
must be false, and this vehicle will remain unused. If a shipment is performed by an ignored vehicle in injected_first_solution_routes
, it is skipped in the first solution but is free to be performed in the response. If a shipment is performed by an ignored vehicle in injected_solution_constraint
and any related pickup/delivery is constrained to remain on the vehicle (i.e., not relaxed to level RELAX_ALL_AFTER_THRESHOLD
), it is skipped in the response. If a shipment has a non-empty allowed_vehicle_indices
field and all of the allowed vehicles are ignored, it is skipped in the response.
getDisplayName
The user-defined display name of the vehicle.
It can be up to 63 characters long and may use UTF-8 characters.
string
setDisplayName
The user-defined display name of the vehicle.
It can be up to 63 characters long and may use UTF-8 characters.
var
string
$this
getTravelMode
The travel mode which affects the roads usable by the vehicle and its
speed. See also travel_duration_multiple
.
int
setTravelMode
The travel mode which affects the roads usable by the vehicle and its
speed. See also travel_duration_multiple
.
var
int
$this
getRouteModifiers
A set of conditions to satisfy that affect the way routes are calculated for the given vehicle.
hasRouteModifiers
clearRouteModifiers
setRouteModifiers
A set of conditions to satisfy that affect the way routes are calculated for the given vehicle.
$this
getStartLocation
Geographic location where the vehicle starts before picking up any shipments. If not specified, the vehicle starts at its first pickup.
If the shipment model has duration and distance matrices, start_location
must not be specified.
hasStartLocation
clearStartLocation
setStartLocation
Geographic location where the vehicle starts before picking up any shipments. If not specified, the vehicle starts at its first pickup.
If the shipment model has duration and distance matrices, start_location
must not be specified.
$this
getStartWaypoint
Waypoint representing a geographic location where the vehicle starts before
picking up any shipments. If neither start_waypoint
nor start_location
is specified, the vehicle starts at its first pickup.
If the shipment model has duration and distance matrices, start_waypoint
must not be specified.
hasStartWaypoint
clearStartWaypoint
setStartWaypoint
Waypoint representing a geographic location where the vehicle starts before
picking up any shipments. If neither start_waypoint
nor start_location
is specified, the vehicle starts at its first pickup.
If the shipment model has duration and distance matrices, start_waypoint
must not be specified.
$this
getEndLocation
Geographic location where the vehicle ends after it has completed its last VisitRequest
. If not specified the vehicle's ShipmentRoute
ends
immediately when it completes its last VisitRequest
.
If the shipment model has duration and distance matrices, end_location
must not be specified.
hasEndLocation
clearEndLocation
setEndLocation
Geographic location where the vehicle ends after it has completed its last VisitRequest
. If not specified the vehicle's ShipmentRoute
ends
immediately when it completes its last VisitRequest
.
If the shipment model has duration and distance matrices, end_location
must not be specified.
$this
getEndWaypoint
Waypoint representing a geographic location where the vehicle ends after
it has completed its last VisitRequest
. If neither end_waypoint
nor end_location
is specified, the vehicle's ShipmentRoute
ends immediately
when it completes its last VisitRequest
.
If the shipment model has duration and distance matrices, end_waypoint
must not be specified.
hasEndWaypoint
clearEndWaypoint
setEndWaypoint
Waypoint representing a geographic location where the vehicle ends after
it has completed its last VisitRequest
. If neither end_waypoint
nor end_location
is specified, the vehicle's ShipmentRoute
ends immediately
when it completes its last VisitRequest
.
If the shipment model has duration and distance matrices, end_waypoint
must not be specified.
$this
getStartTags
Specifies tags attached to the start of the vehicle's route.
Empty or duplicate strings are not allowed.
setStartTags
Specifies tags attached to the start of the vehicle's route.
Empty or duplicate strings are not allowed.
var
string[]
$this
getEndTags
Specifies tags attached to the end of the vehicle's route.
Empty or duplicate strings are not allowed.
setEndTags
Specifies tags attached to the end of the vehicle's route.
Empty or duplicate strings are not allowed.
var
string[]
$this
getStartTimeWindows
Time windows during which the vehicle may depart its start location.
They must be within the global time limits (see ShipmentModel.global_*
fields). If unspecified, there is no limitation besides those global time
limits.
Time windows belonging to the same repeated field must be disjoint, i.e. no
time window can overlap with or be adjacent to another, and they must be in
chronological order. cost_per_hour_after_soft_end_time
and soft_end_time
can only be set if
there is a single time window.
setStartTimeWindows
Time windows during which the vehicle may depart its start location.
They must be within the global time limits (see ShipmentModel.global_*
fields). If unspecified, there is no limitation besides those global time
limits.
Time windows belonging to the same repeated field must be disjoint, i.e. no
time window can overlap with or be adjacent to another, and they must be in
chronological order. cost_per_hour_after_soft_end_time
and soft_end_time
can only be set if
there is a single time window.
$this
getEndTimeWindows
Time windows during which the vehicle may arrive at its end location.
They must be within the global time limits (see ShipmentModel.global_*
fields). If unspecified, there is no limitation besides those global time
limits.
Time windows belonging to the same repeated field must be disjoint, i.e. no
time window can overlap with or be adjacent to another, and they must be in
chronological order. cost_per_hour_after_soft_end_time
and soft_end_time
can only be set if
there is a single time window.
setEndTimeWindows
Time windows during which the vehicle may arrive at its end location.
They must be within the global time limits (see ShipmentModel.global_*
fields). If unspecified, there is no limitation besides those global time
limits.
Time windows belonging to the same repeated field must be disjoint, i.e. no
time window can overlap with or be adjacent to another, and they must be in
chronological order. cost_per_hour_after_soft_end_time
and soft_end_time
can only be set if
there is a single time window.
$this
getTravelDurationMultiple
Specifies a multiplicative factor that can be used to increase or decrease travel times of this vehicle. For example, setting this to 2.0 means that this vehicle is slower and has travel times that are twice what they are for standard vehicles. This multiple does not affect visit durations.
It does affect cost if cost_per_hour
or cost_per_traveled_hour
are
specified. This must be in the range [0.001, 1000.0]. If unset, the vehicle
is standard, and this multiple is considered 1.0.
WARNING: Travel times will be rounded to the nearest second after this
multiple is applied but before performing any numerical operations, thus,
a small multiple may result in a loss of precision.
See also extra_visit_duration_for_visit_type
below.
float
hasTravelDurationMultiple
clearTravelDurationMultiple
setTravelDurationMultiple
Specifies a multiplicative factor that can be used to increase or decrease travel times of this vehicle. For example, setting this to 2.0 means that this vehicle is slower and has travel times that are twice what they are for standard vehicles. This multiple does not affect visit durations.
It does affect cost if cost_per_hour
or cost_per_traveled_hour
are
specified. This must be in the range [0.001, 1000.0]. If unset, the vehicle
is standard, and this multiple is considered 1.0.
WARNING: Travel times will be rounded to the nearest second after this
multiple is applied but before performing any numerical operations, thus,
a small multiple may result in a loss of precision.
See also extra_visit_duration_for_visit_type
below.
var
float
$this
getUnloadingPolicy
Unloading policy enforced on the vehicle.
int
setUnloadingPolicy
Unloading policy enforced on the vehicle.
var
int
$this
getLoadLimits
Capacities of the vehicle (weight, volume, # of pallets for example).
The keys in the map are the identifiers of the type of load, consistent with the keys of the Shipment.load_demands field. If a given key is absent from this map, the corresponding capacity is considered to be limitless.
setLoadLimits
Capacities of the vehicle (weight, volume, # of pallets for example).
The keys in the map are the identifiers of the type of load, consistent with the keys of the Shipment.load_demands field. If a given key is absent from this map, the corresponding capacity is considered to be limitless.
$this
getCostPerHour
Vehicle costs: all costs add up and must be in the same unit as Shipment.penalty_cost .
Cost per hour of the vehicle route. This cost is applied to the total time
taken by the route, and includes travel time, waiting time, and visit time.
Using cost_per_hour
instead of just cost_per_traveled_hour
may result
in additional latency.
float
setCostPerHour
Vehicle costs: all costs add up and must be in the same unit as Shipment.penalty_cost .
Cost per hour of the vehicle route. This cost is applied to the total time
taken by the route, and includes travel time, waiting time, and visit time.
Using cost_per_hour
instead of just cost_per_traveled_hour
may result
in additional latency.
var
float
$this
getCostPerTraveledHour
Cost per traveled hour of the vehicle route. This cost is applied only to travel time taken by the route (i.e., that reported in ShipmentRoute.transitions ), and excludes waiting time and visit time.
float
setCostPerTraveledHour
Cost per traveled hour of the vehicle route. This cost is applied only to travel time taken by the route (i.e., that reported in ShipmentRoute.transitions ), and excludes waiting time and visit time.
var
float
$this
getCostPerKilometer
Cost per kilometer of the vehicle route. This cost is applied to the
distance reported in the ShipmentRoute.transitions
and does not apply to any distance implicitly traveled from the arrival_location
to the departure_location
of a single VisitRequest
.
float
setCostPerKilometer
Cost per kilometer of the vehicle route. This cost is applied to the
distance reported in the ShipmentRoute.transitions
and does not apply to any distance implicitly traveled from the arrival_location
to the departure_location
of a single VisitRequest
.
var
float
$this
getFixedCost
Fixed cost applied if this vehicle is used to handle a shipment.
float
setFixedCost
Fixed cost applied if this vehicle is used to handle a shipment.
var
float
$this
getUsedIfRouteIsEmpty
This field only applies to vehicles when their route does not serve any shipments. It indicates if the vehicle should be considered as used or not in this case.
If true, the vehicle goes from its start to its end location even if it
doesn't serve any shipments, and time and distance costs resulting from its
start --> end travel are taken into account.
Otherwise, it doesn't travel from its start to its end location, and no break_rule
or delay (from TransitionAttributes
) are scheduled for this
vehicle. In this case, the vehicle's ShipmentRoute
doesn't contain any
information except for the vehicle index and label.
bool
setUsedIfRouteIsEmpty
This field only applies to vehicles when their route does not serve any shipments. It indicates if the vehicle should be considered as used or not in this case.
If true, the vehicle goes from its start to its end location even if it
doesn't serve any shipments, and time and distance costs resulting from its
start --> end travel are taken into account.
Otherwise, it doesn't travel from its start to its end location, and no break_rule
or delay (from TransitionAttributes
) are scheduled for this
vehicle. In this case, the vehicle's ShipmentRoute
doesn't contain any
information except for the vehicle index and label.
var
bool
$this
getRouteDurationLimit
Limit applied to the total duration of the vehicle's route. In a given OptimizeToursResponse
, the route duration of a vehicle is the
difference between its vehicle_end_time
and vehicle_start_time
.
hasRouteDurationLimit
clearRouteDurationLimit
setRouteDurationLimit
Limit applied to the total duration of the vehicle's route. In a given OptimizeToursResponse
, the route duration of a vehicle is the
difference between its vehicle_end_time
and vehicle_start_time
.
$this
getTravelDurationLimit
Limit applied to the travel duration of the vehicle's route. In a given OptimizeToursResponse
, the route travel duration is the sum of all its transitions.travel_duration
.
hasTravelDurationLimit
clearTravelDurationLimit
setTravelDurationLimit
Limit applied to the travel duration of the vehicle's route. In a given OptimizeToursResponse
, the route travel duration is the sum of all its transitions.travel_duration
.
$this
getRouteDistanceLimit
Limit applied to the total distance of the vehicle's route. In a given OptimizeToursResponse
, the route distance is the sum of all its transitions.travel_distance_meters
.
hasRouteDistanceLimit
clearRouteDistanceLimit
setRouteDistanceLimit
Limit applied to the total distance of the vehicle's route. In a given OptimizeToursResponse
, the route distance is the sum of all its transitions.travel_distance_meters
.
$this
getExtraVisitDurationForVisitType
Specifies a map from visit_types strings to durations. The duration is time
in addition to VisitRequest.duration
to be taken at visits with the specified visit_types
. This extra visit
duration adds cost if cost_per_hour
is specified. Keys (i.e.
visit_types
) cannot be empty strings.
If a visit request has multiple types, a duration will be added for each
type in the map.
setExtraVisitDurationForVisitType
Specifies a map from visit_types strings to durations. The duration is time
in addition to VisitRequest.duration
to be taken at visits with the specified visit_types
. This extra visit
duration adds cost if cost_per_hour
is specified. Keys (i.e.
visit_types
) cannot be empty strings.
If a visit request has multiple types, a duration will be added for each
type in the map.
$this
getBreakRule
Describes the break schedule to be enforced on this vehicle.
If empty, no breaks will be scheduled for this vehicle.
hasBreakRule
clearBreakRule
setBreakRule
Describes the break schedule to be enforced on this vehicle.
If empty, no breaks will be scheduled for this vehicle.
$this
getLabel
Specifies a label for this vehicle. This label is reported in the response
as the vehicle_label
of the corresponding ShipmentRoute
.
string
setLabel
Specifies a label for this vehicle. This label is reported in the response
as the vehicle_label
of the corresponding ShipmentRoute
.
var
string
$this
getIgnore
If true, used_if_route_is_empty
must be false, and this vehicle will
remain unused.
If a shipment is performed by an ignored vehicle in injected_first_solution_routes
, it is skipped in the first solution but
is free to be performed in the response.
If a shipment is performed by an ignored vehicle in injected_solution_constraint
and any related pickup/delivery is
constrained to remain on the vehicle (i.e., not relaxed to level RELAX_ALL_AFTER_THRESHOLD
), it is skipped in the response.
If a shipment has a non-empty allowed_vehicle_indices
field and all of
the allowed vehicles are ignored, it is skipped in the response.
bool
setIgnore
If true, used_if_route_is_empty
must be false, and this vehicle will
remain unused.
If a shipment is performed by an ignored vehicle in injected_first_solution_routes
, it is skipped in the first solution but
is free to be performed in the response.
If a shipment is performed by an ignored vehicle in injected_solution_constraint
and any related pickup/delivery is
constrained to remain on the vehicle (i.e., not relaxed to level RELAX_ALL_AFTER_THRESHOLD
), it is skipped in the response.
If a shipment has a non-empty allowed_vehicle_indices
field and all of
the allowed vehicles are ignored, it is skipped in the response.
var
bool
$this