Before visiting any feature how-to guide, we recommend you complete the get started with vehicle routing tutorial.
Features available with vehicle routing can be found on the following table.
| Feature | Description | Nextmv Routing App | Platform |
|---|---|---|---|
| Alternate stops | Specify a set of alternate stops per vehicle for which only one should be serviced. | ✅ | ✅ |
| Compatibility attributes | Specify which stops are compatible with which vehicles. | ✅ | ✅ |
| Capacity | Set capacities for vehicles and quantities (demanded or offered) at stops. | ✅ | ✅ |
| Cluster constraint | Enforce the creation of clustered routes. | ✅ | ✅ |
| Cluster objective | Incentivize the creation of clustered routes. | ✅ | ✅ |
| Custom constraints | Implement custom constraints with Nextmv SDK. | ➖ | ✅ |
| Custom data | Add custom data that is preserved in the output. | ✅ | ✅ |
| Custom matrices | Use custom matrices to achieve more precise drive time. | ➖ | ✅ |
| Custom objectives | Implement custom objectives with Nextmv SDK. | ➖ | ✅ |
| Custom operators | Implement custom operators with Nextmv SDK. | ➖ | ✅ |
| Custom output | Create a custom output for your app. | ➖ | ✅ |
| Distance matrix | Specify a distance matrix in the input that provides the distance of going from location A to B. | ✅ | ✅ |
| Duration matrix | Specify a duration matrix in the input that provides the duration of going from location A to B. | ✅ | ✅ |
| Duration groups | Specify a duration that is added every time a stop in the group is approached from a stop outside of the group. | ✅ | ✅ |
| Early arrival time penalty | Specify a penalty that is added to the objective when arriving before a stop's target arrival time. | ✅ | ✅ |
| Late arrival time penalty | Specify a penalty that is added to the objective when arriving after a stop's target arrival time. | ✅ | ✅ |
Calculates duration and distance matrices using a hosted OSRM map service when running on Nextmv Cloud. Note that map data is a paid feature. | ✅ | ✅ | |
| Maximum route distance | Specify the maximum distance that a vehicle can travel. | ✅ | ✅ |
| Maximum route duration | Specify the maximum duration that a vehicle can travel for. | ✅ | ✅ |
| Maximum route stops | Specify the maximum stops that a vehicle can visit. | ✅ | ✅ |
| Maximum wait time | Specify the maximum time a vehicle can wait when arriving before the start time window opens at a stop. | ✅ | ✅ |
| Minimum route stops | Specify the minimum stops that a vehicle should visit (applying a penalty). | ✅ | ✅ |
| Nextcheck | Check which stops can be planned or why stops have been unplanned. | ✅ | ✅ |
| Precedence | Add pickups and deliveries or specify multiple pickups before deliveries and vice versa. | ✅ | ✅ |
| Stop duration | Specify the time it takes to service a stop. | ✅ | ✅ |
| Stop duration multiplier | Specify a multiplier on time it takes a vehicle to service a stop. | ✅ | ✅ |
| Stop groups | Specify stops that must be assigned together on the same route, with no further requirements. | ✅ | ✅ |
| Stop mixing | Specify properties of stops which can not be on the vehicle at the same time. | ✅ | ✅ |
| Time windows | Specify the time window in which a stop must start service. | ✅ | ✅ |
| Unplanned penalty | Specify a penalty that is added to the objective to leave a stop unplanned when all constraints cannot be fulfilled. | ✅ | ✅ |
| Vehicle activation penalty | Specify a penalty that is added to the objective for activating (using) a vehicle. | ✅ | ✅ |
| Vehicle initial stops | Specify initial stops planned on a vehicle. | ✅ | ✅ |
| Vehicle start/end location | Specify optional starting and ending locations for vehicles. | ✅ | ✅ |
| Vehicle start/end time | Specify optional starting and ending time for a vehicle. | ✅ | ✅ |