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.
