TimeWindowSequenceOptions Class Reference

Public Member Functions

 TimeWindowSequenceOptions (TimeWindowSequenceMethodType method=TimeWindowSequenceMethodType.Optimize, TimeWindowFormatType timeFormat=TimeWindowFormatType.Hour24, TimeWindowUniqueClusterStrictnessLevel uniqueClusterStrictnessLevel=TimeWindowUniqueClusterStrictnessLevel.Off, TimeWindowHistoricSpeedDay historicSpeedDay=TimeWindowHistoricSpeedDay.Current)
 Initializes a new instance of the TimeWindowSequenceOptions class Initializes with default values or values passed as parameters.

Parameters
methodDefaults to optimization of the sequence.
timeFormatDefaults to 24-hour time format.
uniqueClusterStrictnessLevelDefaults to off.
historicSpeedDayDefaults to current day.
More...
 

Properties

TimeWindowSequenceMethodType Method[get, set]
 Specifies if the process is to optimize the sequence or optimize an already optimized sequence based on the estimated time of arrival. Optional and defaults to optimization of the sequence. More...
 
TimeWindowFormatType TimeFormat[get, set]
 The format of the time in time windows specified per stop. Optional and defaults to the 24-hour format. More...
 
int? MaxClusterCount[get, set]
 The maximum number of clusters of stops allowed to be generated. Optional and defaults to 40 clusters. More...
 
int? MinClusterCount[get, set]
 The minimum number of clusters of stops allowed to be generated. Optional and defaults to 30 clusters. More...
 
int? MaxAirTravelTimeForCluster[get, set]
 The maximum air travel time in seconds that any two stops can be apart from each other and still be allowed to be clustered together. It also determines the maximum air travel time in seconds that is allowed for traveling between all stops in a cluster. Optional and defaults to 180 seconds. More...
 
int? MinAirTravelTimeForCluster[get, set]
 The minimum air travel time in seconds that is allowed for traveling between all stops in a cluster. Optional and defaults to 6 seconds. More...
 
double? MaxAirTravelDistanceForCluster[get, set]
 The maximum air travel distance that is allowed for traveling between all stops in a cluster. Optional and defaults to 100 miles. Use kilometers by setting time window sequence's Route.Options.DistanceUnits. More...
 
double? MaxAirTravelDistanceFromDepot[get, set]
 The maximum air travel distance that is allowed for traveling between any stop and the start and end depots. Optional and defaults to 200 miles. Use kilometers by setting time window sequence's Route.Options.DistanceUnits. More...
 
int? MaxGridsForMatrixCalculation[get, set]
 The maximum number of grid expansions allowed when building a time/distance matrix for sequences and clusters. Optional and defaults to 60. More...
 
double? GeocodingDistanceThreshold[get, set]
 How far off a stop is allowed to be from the original or Geocoded latitude and longitude once snapped to a grid link. Optional and defaults to 0.497097 miles (800 meters). Use kilometers by setting time window sequence's Route.Options.DistanceUnits. More...
 
GeocodeConfidenceLevelGeocodingConfidenceThreshold[get, set]
 A confidence level as to how certain a Geocode search for stops are. Optional and defaults to 2 (good confidence). More...
 
int? MaxWaitTime[get, set]
 The maximum time in seconds a driver is allowed to wait at a stop. Optional and defaults to 1800 seconds. More...
 
int? MaxBreakWaitTime[get, set]
 The maximum time in seconds a driver is allowed to wait at a break stop. Optional and defaults to 7200 seconds. More...
 
int? MaxServiceTimeToClusterStops[get, set]
 The maximum total wait time in seconds allowed for stops in a cluster. Optional and defaults to 2400 seconds. More...
 
int? MaxServiceTimeToClusterLevel0Stops[get, set]
 The maximum total wait time in seconds allowed for stops at service level 0 (pre-10AM stops) in a cluster. Optional and defaults to 600 seconds. More...
 
int? MaxServiceTimeToClusterLevel1Stops[get, set]
 The maximum total wait time in seconds allowed for stops at service level 1 (pre-noon stops) in a cluster. Optional and defaults to 600 seconds. More...
 
int? MaxTravelTimeToBreakCluster[get, set]
 The maximum total travel time in seconds a cluster can reach before being forced to break into smaller clusters. Optional and defaults to 300 seconds. More...
 
int? AvgTravelTimeToBreakCluster[get, set]
 The travel time in seconds that is used for breaking a cluster into smaller clusters if the travel time between any two stops in that cluster exceeds it. Optional and defaults to 180 seconds. More...
 
int? AvgTravelTimeRatioToBreakCluster[get, set]
 The ratio of stops over the average time to break a cluster to the stops under the average time. Will break the cluster if ratio is met. Optional and defaults to 3. More...
 
int? MaxTimeBeforeLateInBlockTime[get, set]
 The max time in seconds into a stop's blocked time window the driver arrives at the stop before it is considered late. Optional and defaults to 900 seconds. More...
 
int? UTurnCost[get, set]
 The cost of making a U-turn regardless of vehicle type. Optional and defaults to a value assigned by vehicle type. Change vehicle type by setting time window sequence's Route.Options.VehicleType. More...
 
bool? PrioritizePremiumStops[get, set]
 Pick a sequence with fewer stops with pre-noon and pre-six PM time windows that are late instead of favoring shorter ETAs or total distance. Optional and defaults to true. More...
 
bool? GeocodingUseLocationPlusAddress[get, set]
 Geocode stops using latitude, longitude, and an address (if an address is provided) instead of finding the nearest grid link. Optional and defaults to false. More...
 
bool? AllowGeocodeMultiMatch[get, set]
 Whether or not it's okay that a Geocode search returns more than one match for a stop. Optional and defaults to true. More...
 
bool? RemoveStopIfTimeWindowBeforeStartTime[get, set]
 Whether or not a stop should be removed if its time window occurs before the start depot's start time. Optional and defaults to true. More...
 
TimeWindowUniqueClusterStrictnessLevel UniqueClusterStrictness[get, set]
 TimeWindowUniqueClusterStrictnessLevel used to determine how to handle TimeWindowStop.UniqueClusterID provided in TimeWindowStops. Optional and defaults to Off. More...
 
TimeWindowHistoricSpeedDayHistoricSpeedFixedDayOfWeek[get, set]
 TimeWindowHistoricSpeedDay Whether or not to use historic speed of a fixed day of the week. -1: use current day of week. 0 - 6: Use Sunday to Saturday's historic speed. Optional and defaults to current (-1). Can only be used if licensed for traffic feature. More...
 
bool? UseSideOfStreet[get, set]
 Whether or not stops should be clustered and sequenced in such a way that the driver will make deliveries on the same side of the street. Optional and defaults to false. More...
 
bool? UseTraffic[get, set]
 Gets or sets a value indicating whether or not to use historic traffic data when sequencing stops. Optional and defaults to true. Can only be used if licensed for traffic feature. More...
 
TimeWindowSequenceRoutePathOptions RoutePathOptions[get, set]
 Object containing options to build a route path out of the optimized sequence. More...
 
FPCGeocodes FPCCode[get, set]
 Sets or gets FPCCode. More...
 
bool? FinalStopIsEndDepot[get, set]
 Whether or not the final stop in the list is an end depot. If true, the final stop will be considered the final stop of the delivery route and will be fixed at the end of the sequence. If false, the final stop will be considered another delivery stop and will not be in a fixed position. Optional and defaults to true. Note: Marking the final stop as static is the same as leaving this setting as true. Note: This has no effect when calculating the ETA defined with Method. More...
 
bool? ApplyStopLocalTimeZones[get, set]
 When true, stops that are in a different time zone from the start depot will take the offset in hours into consideration when creating the optimized sequence and trying to meet time windows in that specific time zone. For instance, when leaving the start depot at 8AM in Central Time to a stop with a time window of 8AM-10AM in Eastern Time, that stop's time window would be 9AM-11AM in Central Time. Optional and defaults to true. Note: It is not recommended to turn this setting off unless the time windows you provide are already offset to take time zone discrepancies into consideration. Otherwise, logic can think a time window has been met where it might actually be early or late because it’s in a different time zone. More...
 

Detailed Description

The options that apply to the entire sequence of stops as a whole.

Constructor & Destructor Documentation

◆ TimeWindowSequenceOptions()

Initializes a new instance of the TimeWindowSequenceOptions class Initializes with default values or values passed as parameters.

Parameters
methodDefaults to optimization of the sequence.
timeFormatDefaults to 24-hour time format.
uniqueClusterStrictnessLevelDefaults to off.
historicSpeedDayDefaults to current day.

Property Documentation

◆ Method

Specifies if the process is to optimize the sequence or optimize an already optimized sequence based on the estimated time of arrival. Optional and defaults to optimization of the sequence.

◆ TimeFormat

TimeWindowFormatType TimeFormat
getset

The format of the time in time windows specified per stop. Optional and defaults to the 24-hour format.

◆ MaxClusterCount

int? MaxClusterCount
getset

The maximum number of clusters of stops allowed to be generated. Optional and defaults to 40 clusters.

◆ MinClusterCount

int? MinClusterCount
getset

The minimum number of clusters of stops allowed to be generated. Optional and defaults to 30 clusters.

◆ MaxAirTravelTimeForCluster

int? MaxAirTravelTimeForCluster
getset

The maximum air travel time in seconds that any two stops can be apart from each other and still be allowed to be clustered together. It also determines the maximum air travel time in seconds that is allowed for traveling between all stops in a cluster. Optional and defaults to 180 seconds.

◆ MinAirTravelTimeForCluster

int? MinAirTravelTimeForCluster
getset

The minimum air travel time in seconds that is allowed for traveling between all stops in a cluster. Optional and defaults to 6 seconds.

◆ MaxAirTravelDistanceForCluster

double? MaxAirTravelDistanceForCluster
getset

The maximum air travel distance that is allowed for traveling between all stops in a cluster. Optional and defaults to 100 miles. Use kilometers by setting time window sequence's Route.Options.DistanceUnits.

◆ MaxAirTravelDistanceFromDepot

double? MaxAirTravelDistanceFromDepot
getset

The maximum air travel distance that is allowed for traveling between any stop and the start and end depots. Optional and defaults to 200 miles. Use kilometers by setting time window sequence's Route.Options.DistanceUnits.

◆ MaxGridsForMatrixCalculation

int? MaxGridsForMatrixCalculation
getset

The maximum number of grid expansions allowed when building a time/distance matrix for sequences and clusters. Optional and defaults to 60.

◆ GeocodingDistanceThreshold

double? GeocodingDistanceThreshold
getset

How far off a stop is allowed to be from the original or Geocoded latitude and longitude once snapped to a grid link. Optional and defaults to 0.497097 miles (800 meters). Use kilometers by setting time window sequence's Route.Options.DistanceUnits.

◆ GeocodingConfidenceThreshold

GeocodeConfidenceLevel? GeocodingConfidenceThreshold
getset

A confidence level as to how certain a Geocode search for stops are. Optional and defaults to 2 (good confidence).

◆ MaxWaitTime

int? MaxWaitTime
getset

The maximum time in seconds a driver is allowed to wait at a stop. Optional and defaults to 1800 seconds.

◆ MaxBreakWaitTime

int? MaxBreakWaitTime
getset

The maximum time in seconds a driver is allowed to wait at a break stop. Optional and defaults to 7200 seconds.

◆ MaxServiceTimeToClusterStops

int? MaxServiceTimeToClusterStops
getset

The maximum total wait time in seconds allowed for stops in a cluster. Optional and defaults to 2400 seconds.

◆ MaxServiceTimeToClusterLevel0Stops

int? MaxServiceTimeToClusterLevel0Stops
getset

The maximum total wait time in seconds allowed for stops at service level 0 (pre-10AM stops) in a cluster. Optional and defaults to 600 seconds.

◆ MaxServiceTimeToClusterLevel1Stops

int? MaxServiceTimeToClusterLevel1Stops
getset

The maximum total wait time in seconds allowed for stops at service level 1 (pre-noon stops) in a cluster. Optional and defaults to 600 seconds.

◆ MaxTravelTimeToBreakCluster

int? MaxTravelTimeToBreakCluster
getset

The maximum total travel time in seconds a cluster can reach before being forced to break into smaller clusters. Optional and defaults to 300 seconds.

◆ AvgTravelTimeToBreakCluster

int? AvgTravelTimeToBreakCluster
getset

The travel time in seconds that is used for breaking a cluster into smaller clusters if the travel time between any two stops in that cluster exceeds it. Optional and defaults to 180 seconds.

◆ AvgTravelTimeRatioToBreakCluster

int? AvgTravelTimeRatioToBreakCluster
getset

The ratio of stops over the average time to break a cluster to the stops under the average time. Will break the cluster if ratio is met. Optional and defaults to 3.

◆ MaxTimeBeforeLateInBlockTime

int? MaxTimeBeforeLateInBlockTime
getset

The max time in seconds into a stop's blocked time window the driver arrives at the stop before it is considered late. Optional and defaults to 900 seconds.

◆ UTurnCost

int? UTurnCost
getset

The cost of making a U-turn regardless of vehicle type. Optional and defaults to a value assigned by vehicle type. Change vehicle type by setting time window sequence's Route.Options.VehicleType.

◆ PrioritizePremiumStops

bool? PrioritizePremiumStops
getset

Pick a sequence with fewer stops with pre-noon and pre-six PM time windows that are late instead of favoring shorter ETAs or total distance. Optional and defaults to true.

◆ GeocodingUseLocationPlusAddress

bool? GeocodingUseLocationPlusAddress
getset

Geocode stops using latitude, longitude, and an address (if an address is provided) instead of finding the nearest grid link. Optional and defaults to false.

◆ AllowGeocodeMultiMatch

bool? AllowGeocodeMultiMatch
getset

Whether or not it's okay that a Geocode search returns more than one match for a stop. Optional and defaults to true.

◆ RemoveStopIfTimeWindowBeforeStartTime

bool? RemoveStopIfTimeWindowBeforeStartTime
getset

Whether or not a stop should be removed if its time window occurs before the start depot's start time. Optional and defaults to true.

◆ UniqueClusterStrictness

TimeWindowUniqueClusterStrictnessLevel UniqueClusterStrictness
getset

TimeWindowUniqueClusterStrictnessLevel used to determine how to handle TimeWindowStop.UniqueClusterID provided in TimeWindowStops. Optional and defaults to Off.

◆ HistoricSpeedFixedDayOfWeek

TimeWindowHistoricSpeedDay? HistoricSpeedFixedDayOfWeek
getset

TimeWindowHistoricSpeedDay Whether or not to use historic speed of a fixed day of the week. -1: use current day of week. 0 - 6: Use Sunday to Saturday's historic speed. Optional and defaults to current (-1). Can only be used if licensed for traffic feature.

◆ UseSideOfStreet

bool? UseSideOfStreet
getset

Whether or not stops should be clustered and sequenced in such a way that the driver will make deliveries on the same side of the street. Optional and defaults to false.

◆ UseTraffic

bool? UseTraffic
getset

Gets or sets a value indicating whether or not to use historic traffic data when sequencing stops. Optional and defaults to true. Can only be used if licensed for traffic feature.

◆ RoutePathOptions

TimeWindowSequenceRoutePathOptions RoutePathOptions
getset

Object containing options to build a route path out of the optimized sequence.

◆ FPCCode

FPCGeocodes FPCCode
getset

Sets or gets FPCCode.

◆ FinalStopIsEndDepot

bool? FinalStopIsEndDepot
getset

Whether or not the final stop in the list is an end depot. If true, the final stop will be considered the final stop of the delivery route and will be fixed at the end of the sequence. If false, the final stop will be considered another delivery stop and will not be in a fixed position. Optional and defaults to true. Note: Marking the final stop as static is the same as leaving this setting as true. Note: This has no effect when calculating the ETA defined with Method.

◆ ApplyStopLocalTimeZones

bool? ApplyStopLocalTimeZones
getset

When true, stops that are in a different time zone from the start depot will take the offset in hours into consideration when creating the optimized sequence and trying to meet time windows in that specific time zone. For instance, when leaving the start depot at 8AM in Central Time to a stop with a time window of 8AM-10AM in Eastern Time, that stop's time window would be 9AM-11AM in Central Time. Optional and defaults to true. Note: It is not recommended to turn this setting off unless the time windows you provide are already offset to take time zone discrepancies into consideration. Otherwise, logic can think a time window has been met where it might actually be early or late because it’s in a different time zone.