The drivers object consists of your drivers. Each driver is defined by their start_location
and (optionally) an end_location
.
"drivers": [{
"name": "John Doe",
"start_location": {
"address": "555 west hastings, vancouver bc, canada",
"coords": {
"lat": 49.2847001,
"lng": -123.1141236
}
},
"end_location": {
"address": "555 west hastings, vancouver bc, canada",
"coords": {
"lat": 49.2847001,
"lng": -123.1141236
}
},
"shift_start": "09:00",
"shift_end": "17:00",
"phone_number": "+16042597686",
"speed": 1,
"capacity": 10,
"types": ["a", "b"],
"break": {
"start": "12:00",
"end": "13:00"
}
}]
PROPERTY | TYPE | NOTES | |
---|---|---|---|
name | String | required | The driver's name. |
start_location | Location object | required | The physical location of the driver's start point. |
end_location | Location object | optional | The physical location of the driver's end point. |
shift_start | String ("hh:mm") | optional | The start time of the driver's shift. |
shift_end | String ("hh:mm") | optional | The end time of the driver's shift. |
phone_number | String | optional | The phone number of the driver. |
speed | String(faster, fast, normal(default), slow, very slow, bike) or Number | optional | Not all your drivers are as experienced and may cruise the roads at different speeds. Use this parameter to specify the driver's speed. |
capacity | Number (any unit) | optional | The total capacity that can fit in the vehicle (using the same unit as the load for your visits). |
types | String or Array | optional | If you are using type restrictions on your visits, make sure you also define the same types for your vehicles in the type parameter. |
breaks | Array of Objects | optional |
name
is the name of your driver.
start_location
and end_location
are location
objects that allow you to define the physical location of the driver's start and end points. They both contain the geographic coordinates (lat
and lng
) inside a coords
object. If the coords
are not included in the input, Routific will try to geocode the addresses from the address
field. If coords
are included, the app will use the coords and skip the geocoding process. Only start_location
is required. The end_location
is optional and may be omitted. It may be useful in cases to have open-ended routes in some situations.
shift_start
and shift_end
specify when the driver starts driving and when he/she needs to be finished. If you have an end_location
, then the shift_end
means the latest time that the driver has to arrive there; otherwise it is the latest time that the driver can do their last job. Both parameters are optional. Without a shift_start
, the algorithm will automatically infer the best time to depart, depending on your visits' time-windows.
phone_number
is the phone number of your driver. This field is optional for the API call, but required in the app if you want to dispatch routes to your drivers.
speed
: Not all your drivers are as experienced and may cruise the roads at different speeds. Use this parameter to specify the driver's speed. The default value for speed
is normal or 1. Each step increases or decreases the vehicle speed by 25%, so for example very slow would describe a driver travelling at 50% of a normal driver's speed. For more control over the speed, you can also pass in a (decimal) number from 0.1 to 2. A speed of 0.1 would mean the vehicle is travelling at 10% speed while 2 means the vehicle is travelling at twice the speed.
capacity
is an optional parameter to define the total capacity that can fit in the vehicle (using the same unit as the load
for your visits). The algorithm will make sure that this capacity will not be exceeded.
If you are using type restrictions on your visits, make sure you also define the same types for your vehicles in the type
parameter. This value can be either a String — depicting a single type — or an Array of Strings for multiple types. Vehicles without any type will still be able to serve the visits that have no type restrictions.