Time Window Routing

The /route/optimize POST request performs “Time Window Routing Optimization” on a sequence of stops. Time window optimization groups stops in a logical and efficient order while also taking into account specific, customer convenient time windows for arriving at each stop. WaitTime—the time the driver will spend at the stop—can also be taken into account to further enhance ETA accuracy.

Request URL

POST: https://pcmiler.alk.com/apis/rest/v1.0/Service.svc/route/optimize?region={region}&dataset={dataset}

Request Element

The operation takes a JSON format data in the POST body.

ElementDefinitionRequired
The POST Body Object contains Settings and Route System Object.Y
regionThe data region in which the stops in the sequence are located. Valid values are NA, EU, OC and SA.N
datasetThe regional dataset. Possible value: Current (default), PCM_EU, PCM_OC, PCM_SA, PCM_AF, PCM_AS, PCM_ME, PCM_GT, PCM_WW and PCM_NA.N

Settings

ElementDescriptionData TypeValue/Example
MethodSpecifies 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.
Enum1 - Optimize
2 - ETA
TimeFormatThe format of the time in time windows specified per stop.
Optional and defaults to the 24-hour format.
Enum1 - Hour24
2 - Minutes
3 - Hour12
MaxClusterCountThe maximum number of clusters of stops allowed to be generated. Optional and defaults to 40 clusters.integer
MinClusterCountThe minimum number of clusters of stops allowed to be generated.
Optional and defaults to 30 clusters.
integer
MaxAirTravelTimeForClusterThe 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.
integer
MinAirTravelTimeForClusterThe minimum air travel time in seconds that is allowed for traveling between all stops in a cluster. Optional and defaults to 6 seconds.integer
MaxAirTravelDistanceForClusterThe maximum air travel distance that is allowed for traveling between all stops in a cluster. Optional and defaults to 100 miles.double
MaxAirTravelDistanceFromDepotThe maximum air travel distance that is allowed for traveling between any stop and the start and end depots. Optional and defaults to 200 miles.double
MaxGridsForMatrixCalculationThe maximum number of grid expansions allowed when building a time/distance matrix for sequences and clusters.
Optional and defaults to 60.
integer
GeocodingDistanceThresholdHow 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).
double
GeocodingDistanceThresholdHow 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.
double
GeocodingConfidenceThresholdA confidence level as to how certain a Geocode search for stops are.
Optional and defaults to 2 (good confidence).
integer1 - Exact
2 - Good
3 - Uncertain
4 - Fail
MaxWaitTimeThe maximum time in seconds a driver is allowed to wait at a stop. Optional and defaults to 1800 seconds.integer
MaxBreakWaitTimeThe maximum time in seconds a driver is allowed to wait at a break stop. Optional and defaults to 7200 seconds.integer
MaxServiceTimeToClusterStopsThe maximum total wait time in seconds allowed for stops in a cluster.
Optional and defaults to 2400 seconds.
integer
MaxServiceTimeToClusterLevel0StopsThe maximum amount of combined service time. The stops at service level 0 (pre-10AM stops) inside a cluster are allowed to have. Optional and defaults to 600 seconds.integer
MaxServiceTimeToClusterLevel1StopsThe maximum amount of combined service time. The stops at service level 1 (pre-noon stops) inside a cluster are allowed to have. Optional and defaults to 600 seconds.integer
MaxTravelTimeToBreakClusterThe maximum total travel time in seconds a cluster can reach before being forced to break smaller clusters. Optional and defaults to 300 seconds.integer
AvgTravelTimeToBreakClusterThe 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.integer
AvgTravelTimeRatioToBreakClusterThe ratio of stops over the average time to break a cluster to the stops under the average time. Optional and defaults to 3.integer
MaxTimeBeforeLateInBlockTimeThe 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.integer
UTurnCostThe cost of making a U-turn regardless of vehicle type. This value doesn’t actually match any particular cost or unit of measurement used elsewhere. In theory, 1,000 is roughly 1 mile.
Optional and defaults to a value assigned by vehicle type.
integer
PrioritizePremiumStopsPick 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.boolean
GeocodingUseLocationPlusAddressGeocode stops using latitude, longitude, and an address (if an address is provided) instead of finding the nearest grid link. Optional and defaults to false.boolean
AllowGeocodeMultiMatchWhether or not it’s okay that a Geocode search returns more than one match for a stop. Optional and defaults to true.boolean
RemoveStopIfTimeWindowBeforeStartTimeWhether or not a stop should be removed if its time window occurs before the start depot’s start time. Optional and defaults to true.boolean
UniqueClusterStrictnessSets how unique cluster IDs affect clustering logic. Optional and defaults to 0.Enum0 - Unique cluster IDs will be ignored. (Default)
1 - Unique Cluster IDs are taken into consideration
2 - Normal clustering and re-clustering logic is not used. Stops will be clustered together using unique cluster IDs only.
HistoricSpeedFixedDayOfWeekLive traffic is not used in Time Window routing. This parameter sets which day of the week historical speed data, based on your start time, will be used for routing. Optional and defaults to -1 (Current day).Enum-1 - Current day
0 - Sunday
1 - Monday
2 - Tuesday
3 - Wednesday
4 - Thursday
5 - Friday
6 - Saturday

Route

ElementDescriptionData TypeValue/Example
NameName of the tripstring
OptionsRoute Options Object.
StopsA list of stops that include time window restrictions in which they must be reached.
It consists of Location Object and TimeWindow Object.
The minimum required number of stops is 3.
The maximum required number of stops is 200.

Route Options

ElementDescriptionData TypeValue/Example
VehicleTypeThe type of the vehicle driving the route.
Optional and defaults to default vehicle type 0.
Enum0 - Truck
1 - LightTruck
2 - Auto
RoutingTypeThe type of routing algorithm to use.
Optional and defaults to 0.
Enum0 - Practical
1 - Shortest
2 - Fastest
HighwayOnlyIndicates whether to use highways.
Optional and defaults to false.
boolean
FuelRouteWhether or not a fuel optimized route is desired.
Optional and defaults to false.
This parameter is ignored by time window optimization. If “true” is passed, it is set to “false” and a warning is returned in the response header.
boolean
UseAvoidsAndFavorsWhether or not to use avoids and favors.
Optional and defaults to false.
This parameter is a remnant of legacy code and is only useable by legacy customers. On top of that, time window optimization ignores this parameter. If “true” is passed, it is set to “false” and a warning is returned in the response header.
boolean
ClassOverridesRepresents a route class override to a special network.
Optional and defaults to 0.
boolean0 - None
1 - FiftyThreeFoot
2 - NationalNetwork
3 - FiftyThreeFoot, NationalNetwork
DistanceUnitsRepresents whether to return distances in miles or kilometers.
Optional and defaults to 0.
boolean0 - Miles
1 - Kilometers
TollDiscourageWhether or not tolls should be discouraged on the route.
Optional and defaults to false.
boolean
BordersOpenWether or not borders are open for travel.
Optional and defaults to false.
boolean
OverrideRestrictWhether or not to override truck restrictions.
Optional and defaults to false.
If this property is set to “true”, then it is set to false and a warning is returned in the response header. This affects link costs in PC*MILER and allows differences between it and CoPilot.
boolean
HazMatTypeDefines transported hazardous material type.
Optionals and defaults to 0.
Enum0 - None
1 - General
2 - Caustic
3 - Explosives
4 - Flammable
5 - Inhalants
6 - Radioactive
RouteOptimizationThe method by which to optimize the route stops.
Optional and defaults to 0.
If any value other than “None” is provided, then it is set to 0 and a warning is returned in the response header. Time window optimization requires the start and end depot to be fixed so this value is at ends with the process.
boolean0 - None
1 - Thruall
2 - DestinationFixed
TruckCfgTruckConfig object. Configures truck size and statistics.
Optional.
UnitsSpecifies whether English or metric units describe vehicle dimensions.
Optional and defaults to 0.
Enum0 - English
1 - Metric
HeightRepresents the height of the truck in feet and inches, or meters depending upon the units.
Maximum value is 13’6” or 4.1148 meters.
Optional and defaults to “13’6\“” in all regions except Europe, which is “12’6\“”.
string
LengthRepresents the length of the truck in feet or meters, depending upon the units.
Maximum value is 53’ or 16.1544 meters.
Optional and defaults to “48’” in all regions except Europe, which is “54’1\“”.
string
WidthRepresents the width of the truck in inches or meters, depending upon units.
This value can be 96” and below, 102” and above or 98”.
Optional and defaults to “96\“” for all regions.
string
WeightRepresents the weight of the truck in pounds or kilos, depending upon units.
Acceptable values can be up to 132,000 pounds or 59,874 kilos.
Optional and defaults to “80000”.
string
AxlesThe number of axles on the truck.
Acceptable values are 2 through 14.
Optional and defaults to 5.
integer
LCVIndicates whether the truck is a multi-trailer or longer combination vehicle.
This is used for calculation of toll costs, and only for North American region.
Optional and defaults to false.
boolean
HubRoutingWhether or not to enable hub routing.
Optional and defaults to false.
boolean
AFSetIDsThis represents a collection of set IDs to use with avoid/favors.
Like “UseAvoidsAndFavors” this is only useable by legacy customers and is ignored by time window optimization. If a list is provided, it is emptied, is ignored and a warning is returned in the response header.
List of integers
ElevLimitRepresents elevation limit when generating a route.
Elevation units can be either meters or feet determined by “DistanceUnits”. Miles=feet, Kilometers=meters
Limit will be ignored if: 1.Routing is deemed impractical with the limit. 2.A stop is located at an elevation higher than the limit.
Optional and defaults to 0.
Unsigned Integer
FerryDiscourageWhether or not to avoid ferries while routing.
Optional and defaults to 0.
boolean
HoSOptionsThis is an object used to define a driver’s service times and rule sets.
Optional and defaults to null.
This object is at ends with the entire time window optimization process and should not be defined. However, an warning will only be thrown if “Enabled” is set to “true” and then the object will be set to null.
HoSScheduleType object
EnabledWhether or not to use the defined “HoSScheduleType” object.
Optional and defaults to false.
If this is “true”, an warning will be returned and the parent “HoSScheduleType” object will be set to null.
boolean
SideOfStreetAdherenceHow strict to be in order to avoid the destination being on the opposite side of the street.
Optional and defaults to 0.
Enum0 - Off
1 - Minimal
2 - Moderate
3 - Average
4 - Strict
5 - Adhere
6 - StronglyAdhere
GovernorSpeedLimitMaximum average road speed to use in route calculations that overrides all other road speeds when they are above this value.
Valid value is between 1 and 100 mph.
Optional and default is 0.
integer

Location

For a valid Location, one of the following must be defined. See details in Sample JSON Request.

  • Address object. It consists of StreetAddress, City, State, County, Country, SPLC and zip.
  • Coords object. It consists of Lat and Lon.

It is also valid to have both defined. As long as one of the above conditions are met, it doesn’t matter what else in “Location” is undefined or partially defined. If neither of the requirements are met, an error is returned for each invalid stop.

TimeWindow

ElementDescriptionData Type
TimeWindowThe window of time in which a stop must be reached.
It contains a string StartTime and string EndTime.
SecondTimeWindowIt represents a second time window in which the stop can be reached.
It contains a string StartTime and string EndTime.
A single stop cannot have this and BlockTimeWindow defined at the same time.
BlockTimeWindowThe window of time in which a stop cannot be reached within a time window.
It contains a string StartTime and string EndTime.
A single stop cannot have this and SecondTimeWindow defined at the same time.
StartTimeThe stop can only be reached on or after this time.
EndTimeThe stop can only be reached on or before this time.
WaitTimeThe period of time in which the driver will be at this stop in seconds.integer
IsBreakWhether or not this stop is actually where the driver takes a break. In this case, the time window represents how long the break is.
Optional and defaults to false.
A single stop cannot be a static stop and a break stop at the same time.
boolean
IsStaticWhether or not this stop is not to change its position in the sequence when an optimized sequence is calculated. Static stops can only
appear at the beginning and the end of a sequence.
Optional and defaults to false.
A single stop cannot be a static stop and a break stop at the same time.
boolean
UniqueClusterIDThis coerces the algorithm to cluster stops together based on these IDs. It never uses only the unique cluster ID by itself and clusters can still break apart during sequencing. However, stops with the same unique cluster ID are more likely to be sequenced together in the end result. Optional and defaults to an empty string.
Set ClusterWithUniqueIDOnly to “true” in order to prioritize clustering by the unique cluster ID more than normal.
string

Sample JSON Post Body

{
   "Settings":{
      "Method":1,
      "TimeFormat":1,
      "MaxClusterCount":40,
      "MinClusterCount":30,
      "MaxAirTravelTimeForCluster":180,
      "MinAirTravelTimeForCluster":6,
      "MaxAirTravelDistanceForCluster":100.0,
      "MaxAirTravelDistanceFromDepot":200.0,
      "MaxGridsForMatrixCalculation":60,
      "GeocodingDistanceThreshold":0.497097,
      "GeocodingConfidenceThreshold":2,
      "MaxWaitTime":1800,
      "MaxBreakWaitTime":7200,
      "MaxServiceTimeToClusterStops":2400,
      "MaxServiceTimeToClusterLevel0Stops":600,
      "MaxServiceTimeToClusterLevel1Stops":600,
      "MaxTravelTimeToBreakCluster":300,
      "AvgTravelTimeToBreakCluster":180,
      "AvgTravelTimeRatioToBreakCluster":3,
      "MaxTimeBeforeLateInBlockTime":900,
      "UTurnCost":-2,
      "PrioritizePremiumStops":true,
      "GeocodingUseLocationPlusAddress":false,
      "AllowGeocodeMultiMatch":true,
      "RemoveStopIfTimeWindowBeforeStartTime":true,
      "UniqueClusterStrictness":0      // trunk only
   },
   "Route":{
      "Name":"",
      "Options":{
         "VehicleType":0,
         "RoutingType":0,
         "HighwayOnly":false,
         "FuelRoute":false,
         "UseAvoidsAndFavors":false,
         "ClassOverrides":0,
         "DistanceUnits":0,
         "TollDiscourage":false,
         "BordersOpen":true,
         "OverrideRestrict":false,
         "HazMatType":0,
         "RouteOptimization":0,
         "TruckCfg":{
            "Units":0,
            "Height":"13'6\"",
            "Length":"48'",
            "Width":"96\"",
            "Weight":"80000",
            "Axles":5,
            "LCV":false
         },
         "HubRouting":false,
         "AFSetIDs":[
         ],
         "ElevLimit":0,
         "FerryDiscourage":false,
         "HoSOptions":{
            "Enabled":false,
            "RemainingDriveTimeUntilBreak":0.0,
            "RemainingDriveTime":0.0,
            "RemainingOnDutyTime":0.0,
            "HoSRuleType":0,
            "RemainingCycleDutyTime":0.0
         },
         "SideOfStreetAdherence":0,
         "GovernorSpeedLimit":0,
         "CustomRoadSpeeds":[
            {
             "RoadCategory":1,
             "Speed":55
            },
            {
              "RoadCategory":10,
               "Speed":65
            },
            {
              "RoadCategory":3,
              "Speed":31
            },
            {
              "RoadCategory":12,
              "Speed":45
            },
            {
              "RoadCategory":4,
              "Speed":25
            },
            {
              "RoadCategory":13,
              "Speed":30
            },
            {
              "RoadCategory":6,
              "Speed":16
            },
            {
              "RoadCategory":15,
              "Speed":25
            },
            {
              "RoadCategory":8,
              "Speed":12
            },
            {
              "RoadCategory":17,
              "Speed":18
            }
      ]
      },
      "Stops":[
         {
            "Location":{
               "Address":{
                  "StreetAddress":"",
                  "City":"",
                  "State":"",
                  "Zip":"",
                  "County":"",
                  "Country":"",
                  "SPLC":"",
                  "CountryPostalFilter":0,
                  "AbbreviationFormat":0
               },
               "Coords":{
                  "Lat":"0.000000",
                  "Lon":"0.000000"
               },
               "Region":4,
               "Label":"",
               "PlaceName":""
            },
            "TimeWindow":{
               "StartTime":"00:00",
               "EndTime":"11:59"
            },
            "SecondTimeWindow":{
               "StartTime":"00:00",
               "EndTime":"11:59"
            },
            "BlockTimeWindow":{
               "StartTime":"00:00",
               "EndTime":"11:59"
            },
            "WaitTime":0,
            "IsBreak":false,
            "IsStatic":false,
            "UniqueClusterID":""
         }
      ]
   }
}

Sample Response

{
    "TotalETA": "811",
    "TotalDistance": "48.19",
    "Stops": [
        {
            "Location": {
                "Address": null,
                "Coords": {
                    "Lat": "51.042587",
                    "Lon": "13.587582"
                },
                "Region": 3,
                "Label": "StartDepot",
                "PlaceName": "StartDepot"
            },
            "OriginalPosition": 0,
            "ETA": "490",
            "Distance": "0.00",
            "TimeWindowMet": true,
            "SlackTime": 0,
            "TimeWindow": {
                "StartTime": "490",
                "EndTime": "490"
            },
            "BlockTimeWindow": {
                "StartTime": "0",
                "EndTime": "0"
            },
            "WaitTime": 0,
            "UniqueClusterID": ""
        },
        {
            "Location": {
                "Address": null,
                "Coords": {
                    "Lat": "51.079969",
                    "Lon": "13.714122"
                },
                "Region": 3,
                "Label": "Stop 60: LINEK",
                "PlaceName": "Stop 60: LINEK"
            },
            "OriginalPosition": 60,
            "ETA": "502",
            "Distance": "13.88",
            "TimeWindowMet": true,
            "SlackTime": 0,
            "TimeWindow": {
                "StartTime": "60",
                "EndTime": "1380"
            },
            "BlockTimeWindow": {
                "StartTime": "0",
                "EndTime": "0"
            },
            "WaitTime": 165,
            "UniqueClusterID": "01127BU"
        },
        {
            "Location": {
                "Address": null,
                "Coords": {
                    "Lat": "51.078120",
                    "Lon": "13.715630"
                },
                "Region": 3,
                "Label": "Stop 58: Biebrach Werkzeughandel",
                "PlaceName": "Stop 58: Biebrach Werkzeughandel"
            },
            "OriginalPosition": 58,
            "ETA": "505",
            "Distance": "0.23",
            "TimeWindowMet": true,
            "SlackTime": 0,
            "TimeWindow": {
                "StartTime": "60",
                "EndTime": "1380"
            },
            "BlockTimeWindow": {
                "StartTime": "0",
                "EndTime": "0"
            },
            "WaitTime": 165,
            "UniqueClusterID": "01127BU"
        },
        {
            "Location": {
                "Address": null,
                "Coords": {
                    "Lat": "51.077640",
                    "Lon": "13.716520"
                },
                "Region": 3,
                "Label": "Stop 55: SGHG",
                "PlaceName": "Stop 55: SGHG"
            },
            "OriginalPosition": 55,
            "ETA": "508",
            "Distance": "0.08",
            "TimeWindowMet": true,
            "SlackTime": 0,
            "TimeWindow": {
                "StartTime": "60",
                "EndTime": "1380"
            },
            "BlockTimeWindow": {
                "StartTime": "0",
                "EndTime": "0"
            },
            "WaitTime": 165,
            "UniqueClusterID": "01127BU"
        },
        {
            "Location": {
                "Address": null,
                "Coords": {
                    "Lat": "51.077166",
                    "Lon": "13.717594"
                },
                "Region": 3,
                "Label": "Stop 56: TOLKSDORF",
                "PlaceName": "Stop 56: TOLKSDORF"
            },
            "OriginalPosition": 56,
            "ETA": "511",
            "Distance": "0.09",
            "TimeWindowMet": true,
            "SlackTime": 0,
            "TimeWindow": {
                "StartTime": "60",
                "EndTime": "1380"
            },
            "BlockTimeWindow": {
                "StartTime": "0",
                "EndTime": "0"
            },
            "WaitTime": 165,
            "UniqueClusterID": "01127BU"
        },
        {
            "Location": {
                "Address": null,
                "Coords": {
                    "Lat": "51.077475",
                    "Lon": "13.716910"
                },
                "Region": 3,
                "Label": "Stop 57: CLEUTJENS",
                "PlaceName": "Stop 57: CLEUTJENS"
            },
            "OriginalPosition": 57,
            "ETA": "514",
            "Distance": "0.06",
            "TimeWindowMet": true,
            "SlackTime": 0,
            "TimeWindow": {
                "StartTime": "60",
                "EndTime": "1380"
            },
            "BlockTimeWindow": {
                "StartTime": "0",
                "EndTime": "0"
            },
            "WaitTime": 165,
            "UniqueClusterID": "01127BU"
        },
        {
            "Location": {
                "Address": null,
                "Coords": {
                    "Lat": "51.078133",
                    "Lon": "13.715342"
                },
                "Region": 3,
                "Label": "Stop 59: Tankstelle",
                "PlaceName": "Stop 59: Tankstelle"
            },
            "OriginalPosition": 59,
            "ETA": "517",
            "Distance": "0.13",
            "TimeWindowMet": true,
            "SlackTime": 0,
            "TimeWindow": {
                "StartTime": "60",
                "EndTime": "1380"
            },
            "BlockTimeWindow": {
                "StartTime": "0",
                "EndTime": "0"
            },
            "WaitTime": 165,
            "UniqueClusterID": "01127BU"
        },
        {
            "Location": {
                "Address": null,
                "Coords": {
                    "Lat": "51.080456",
                    "Lon": "13.714018"
                },
                "Region": 3,
                "Label": "Stop 1: Trache Blumenhandel",
                "PlaceName": "Stop 1: Trache Blumenhandel"
            },
            "OriginalPosition": 1,
            "ETA": "520",
            "Distance": "0.27",
            "TimeWindowMet": true,
            "SlackTime": 0,
            "TimeWindow": {
                "StartTime": "60",
                "EndTime": "1380"
            },
            "BlockTimeWindow": {
                "StartTime": "0",
                "EndTime": "0"
            },
            "WaitTime": 165,
            "UniqueClusterID": "01127BU"
        },
        {
            "Location": {
                "Address": null,
                "Coords": {
                    "Lat": "51.079449",
                    "Lon": "13.716146"
                },
                "Region": 3,
                "Label": "Stop 61: FRANKE",
                "PlaceName": "Stop 61: FRANKE"
            },
            "OriginalPosition": 61,
            "ETA": "524",
            "Distance": "0.43",
            "TimeWindowMet": true,
            "SlackTime": 0,
            "TimeWindow": {
                "StartTime": "60",
                "EndTime": "1380"
            },
            "BlockTimeWindow": {
                "StartTime": "0",
                "EndTime": "0"
            },
            "WaitTime": 165,
            "UniqueClusterID": "01127BU"
        },
        {
            "Location": {
                "Address": null,
                "Coords": {
                    "Lat": "51.079487",
                    "Lon": "13.716417"
                },
                "Region": 3,
                "Label": "Stop 62: HACHENBERGER",
                "PlaceName": "Stop 62: HACHENBERGER"
            },
            "OriginalPosition": 62,
            "ETA": "527",
            "Distance": "0.02",
            "TimeWindowMet": true,
            "SlackTime": 0,
            "TimeWindow": {
                "StartTime": "60",
                "EndTime": "1380"
            },
            "BlockTimeWindow": {
                "StartTime": "0",
                "EndTime": "0"
            },
            "WaitTime": 165,
            "UniqueClusterID": "01127BU"
        },
        {
            "Location": {
                "Address": null,
                "Coords": {
                    "Lat": "51.079600",
                    "Lon": "13.717230"
                },
                "Region": 3,
                "Label": "Stop 2: UHLIG",
                "PlaceName": "Stop 2: UHLIG"
            },
            "OriginalPosition": 2,
            "ETA": "530",
            "Distance": "0.06",
            "TimeWindowMet": true,
            "SlackTime": 0,
            "TimeWindow": {
                "StartTime": "60",
                "EndTime": "1380"
            },
            "BlockTimeWindow": {
                "StartTime": "0",
                "EndTime": "0"
            },
            "WaitTime": 165,
            "UniqueClusterID": "01127AR"
        },
        {
            "Location": {
                "Address": null,
                "Coords": {
                    "Lat": "51.078000",
                    "Lon": "13.717620"
                },
                "Region": 3,
                "Label": "Stop 3: DINNBIER",
                "PlaceName": "Stop 3: DINNBIER"
            },
            "OriginalPosition": 3,
            "ETA": "533",
            "Distance": "0.19",
            "TimeWindowMet": true,
            "SlackTime": 0,
            "TimeWindow": {
                "StartTime": "60",
                "EndTime": "1380"
            },
            "BlockTimeWindow": {
                "StartTime": "0",
                "EndTime": "0"
            },
            "WaitTime": 165,
            "UniqueClusterID": "01127AR"
        },
        {
            "Location": {
                "Address": null,
                "Coords": {
                    "Lat": "51.078760",
                    "Lon": "13.719810"
                },
                "Region": 3,
                "Label": "Stop 4: ZIESCHANG",
                "PlaceName": "Stop 4: ZIESCHANG"
            },
            "OriginalPosition": 4,
            "ETA": "536",
            "Distance": "0.17",
            "TimeWindowMet": true,
            "SlackTime": 0,
            "TimeWindow": {
                "StartTime": "60",
                "EndTime": "1380"
            },
            "BlockTimeWindow": {
                "StartTime": "0",
                "EndTime": "0"
            },
            "WaitTime": 165,
            "UniqueClusterID": "01127AR"
        },
        {
            "Location": {
                "Address": null,
                "Coords": {
                    "Lat": "51.079882",
                    "Lon": "13.719368"
                },
                "Region": 3,
                "Label": "Stop 6: KISKE",
                "PlaceName": "Stop 6: KISKE"
            },
            "OriginalPosition": 6,
            "ETA": "539",
            "Distance": "0.18",
            "TimeWindowMet": true,
            "SlackTime": 0,
            "TimeWindow": {
                "StartTime": "60",
                "EndTime": "1380"
            },
            "BlockTimeWindow": {
                "StartTime": "0",
                "EndTime": "0"
            },
            "WaitTime": 165,
            "UniqueClusterID": "01127AR"
        },
        {
            "Location": {
                "Address": null,
                "Coords": {
                    "Lat": "51.079934",
                    "Lon": "13.719796"
                },
                "Region": 3,
                "Label": "Stop 7: HAAK",
                "PlaceName": "Stop 7: HAAK"
            },
            "OriginalPosition": 7,
            "ETA": "542",
            "Distance": "0.03",
            "TimeWindowMet": true,
            "SlackTime": 0,
            "TimeWindow": {
                "StartTime": "60",
                "EndTime": "1380"
            },
            "BlockTimeWindow": {
                "StartTime": "0",
                "EndTime": "0"
            },
            "WaitTime": 165,
            "UniqueClusterID": "01127AR"
        },
        {
            "Location": {
                "Address": null,
                "Coords": {
                    "Lat": "51.080365",
                    "Lon": "13.722523"
                },
                "Region": 3,
                "Label": "Stop 9: NADLER",
                "PlaceName": "Stop 9: NADLER"
            },
            "OriginalPosition": 9,
            "ETA": "545",
            "Distance": "0.20",
            "TimeWindowMet": true,
            "SlackTime": 0,
            "TimeWindow": {
                "StartTime": "60",
                "EndTime": "1380"
            },
            "BlockTimeWindow": {
                "StartTime": "0",
                "EndTime": "0"
            },
            "WaitTime": 165,
            "UniqueClusterID": "01127AR"
        },
        {
            "Location": {
                "Address": null,
                "Coords": {
                    "Lat": "51.080365",
                    "Lon": "13.722523"
                },
                "Region": 3,
                "Label": "Stop 13: UHLIG",
                "PlaceName": "Stop 13: UHLIG"
            },
            "OriginalPosition": 13,
            "ETA": "548",
            "Distance": "0.00",
            "TimeWindowMet": true,
            "SlackTime": 0,
            "TimeWindow": {
                "StartTime": "60",
                "EndTime": "1380"
            },
            "BlockTimeWindow": {
                "StartTime": "0",
                "EndTime": "0"
            },
            "WaitTime": 165,
            "UniqueClusterID": "01127AM"
        },
        {
            "Location": {
                "Address": null,
                "Coords": {
                    "Lat": "51.080407",
                    "Lon": "13.722690"
                },
                "Region": 3,
                "Label": "Stop 10: WENDROCK",
                "PlaceName": "Stop 10: WENDROCK"
            },
            "OriginalPosition": 10,
            "ETA": "551",
            "Distance": "0.01",
            "TimeWindowMet": true,
            "SlackTime": 0,
            "TimeWindow": {
                "StartTime": "60",
                "EndTime": "1380"
            },
            "BlockTimeWindow": {
                "StartTime": "0",
                "EndTime": "0"
            },
            "WaitTime": 165,
            "UniqueClusterID": "01127AR"
        },
        {
            "Location": {
                "Address": null,
                "Coords": {
                    "Lat": "51.080000",
                    "Lon": "13.720340"
                },
                "Region": 3,
                "Label": "Stop 5: Pflegeheim",
                "PlaceName": "Stop 5: Pflegeheim"
            },
            "OriginalPosition": 5,
            "ETA": "554",
            "Distance": "0.17",
            "TimeWindowMet": true,
            "SlackTime": 0,
            "TimeWindow": {
                "StartTime": "60",
                "EndTime": "1380"
            },
            "BlockTimeWindow": {
                "StartTime": "0",
                "EndTime": "0"
            },
            "WaitTime": 165,
            "UniqueClusterID": "01127AR"
        },
        {
            "Location": {
                "Address": null,
                "Coords": {
                    "Lat": "51.080532",
                    "Lon": "13.720303"
                },
                "Region": 3,
                "Label": "Stop 19: KiTa",
                "PlaceName": "Stop 19: KiTa"
            },
            "OriginalPosition": 19,
            "ETA": "557",
            "Distance": "0.09",
            "TimeWindowMet": true,
            "SlackTime": 0,
            "TimeWindow": {
                "StartTime": "60",
                "EndTime": "1380"
            },
            "BlockTimeWindow": {
                "StartTime": "0",
                "EndTime": "0"
            },
            "WaitTime": 165,
            "UniqueClusterID": "01127AR"
        },
        {
            "Location": {
                "Address": null,
                "Coords": {
                    "Lat": "51.080970",
                    "Lon": "13.719532"
                },
                "Region": 3,
                "Label": "Stop 8: Heizhaus Architektenbuero",
                "PlaceName": "Stop 8: Heizhaus Architektenbuero"
            },
            "OriginalPosition": 8,
            "ETA": "560",
            "Distance": "0.13",
            "TimeWindowMet": true,
            "SlackTime": 0,
            "TimeWindow": {
                "StartTime": "60",
                "EndTime": "1380"
            },
            "BlockTimeWindow": {
                "StartTime": "0",
                "EndTime": "0"
            },
            "WaitTime": 165,
            "UniqueClusterID": "01127AO"
        },
        {
            "Location": {
                "Address": null,
                "Coords": {
                    "Lat": "51.081394",
                    "Lon": "13.722745"
                },
                "Region": 3,
                "Label": "Stop 21: Pilz",
                "PlaceName": "Stop 21: Pilz"
            },
            "OriginalPosition": 21,
            "ETA": "563",
            "Distance": "0.23",
            "TimeWindowMet": true,
            "SlackTime": 0,
            "TimeWindow": {
                "StartTime": "60",
                "EndTime": "1380"
            },
            "BlockTimeWindow": {
                "StartTime": "0",
                "EndTime": "0"
            },
            "WaitTime": 165,
            "UniqueClusterID": "01127AO"
        },
        {
            "Location": {
                "Address": null,
                "Coords": {
                    "Lat": "51.081394",
                    "Lon": "13.722745"
                },
                "Region": 3,
                "Label": "Stop 22: Ullrich",
                "PlaceName": "Stop 22: Ullrich"
            },
            "OriginalPosition": 22,
            "ETA": "566",
            "Distance": "0.00",
            "TimeWindowMet": true,
            "SlackTime": 0,
            "TimeWindow": {
                "StartTime": "60",
                "EndTime": "1380"
            },
            "BlockTimeWindow": {
                "StartTime": "0",
                "EndTime": "0"
            },
            "WaitTime": 165,
            "UniqueClusterID": "01127AO"
        },
        {
            "Location": {
                "Address": null,
                "Coords": {
                    "Lat": "51.081292",
                    "Lon": "13.720234"
                },
                "Region": 3,
                "Label": "Stop 20: HAZUBSKI",
                "PlaceName": "Stop 20: HAZUBSKI"
            },
            "OriginalPosition": 20,
            "ETA": "569",
            "Distance": "0.19",
            "TimeWindowMet": true,
            "SlackTime": 0,
            "TimeWindow": {
                "StartTime": "60",
                "EndTime": "1380"
            },
            "BlockTimeWindow": {
                "StartTime": "0",
                "EndTime": "0"
            },
            "WaitTime": 165,
            "UniqueClusterID": "01127AL"
        },
        {
            "Location": {
                "Address": null,
                "Coords": {
                    "Lat": "51.081446",
                    "Lon": "13.723089"
                },
                "Region": 3,
                "Label": "Stop 18: SZABO",
                "PlaceName": "Stop 18: SZABO"
            },
            "OriginalPosition": 18,
            "ETA": "572",
            "Distance": "0.22",
            "TimeWindowMet": true,
            "SlackTime": 0,
            "TimeWindow": {
                "StartTime": "60",
                "EndTime": "1380"
            },
            "BlockTimeWindow": {
                "StartTime": "0",
                "EndTime": "0"
            },
            "WaitTime": 165,
            "UniqueClusterID": "01127AL"
        },
        {
            "Location": {
                "Address": null,
                "Coords": {
                    "Lat": "51.080740",
                    "Lon": "13.724030"
                },
                "Region": 3,
                "Label": "Stop 17: MITTAU",
                "PlaceName": "Stop 17: MITTAU"
            },
            "OriginalPosition": 17,
            "ETA": "575",
            "Distance": "0.10",
            "TimeWindowMet": true,
            "SlackTime": 0,
            "TimeWindow": {
                "StartTime": "60",
                "EndTime": "1380"
            },
            "BlockTimeWindow": {
                "StartTime": "0",
                "EndTime": "0"
            },
            "WaitTime": 165,
            "UniqueClusterID": "01127AL"
        },
        {
            "Location": {
                "Address": null,
                "Coords": {
                    "Lat": "51.079246",
                    "Lon": "13.722429"
                },
                "Region": 3,
                "Label": "Stop 11: AUGUSTIN",
                "PlaceName": "Stop 11: AUGUSTIN"
            },
            "OriginalPosition": 11,
            "ETA": "578",
            "Distance": "0.31",
            "TimeWindowMet": true,
            "SlackTime": 0,
            "TimeWindow": {
                "StartTime": "60",
                "EndTime": "1380"
            },
            "BlockTimeWindow": {
                "StartTime": "0",
                "EndTime": "0"
            },
            "WaitTime": 165,
            "UniqueClusterID": "01127AM"
        },
        {
            "Location": {
                "Address": null,
                "Coords": {
                    "Lat": "51.079104",
                    "Lon": "13.721666"
                },
                "Region": 3,
                "Label": "Stop 12: BOERNGEN",
                "PlaceName": "Stop 12: BOERNGEN"
            },
            "OriginalPosition": 12,
            "ETA": "581",
            "Distance": "0.06",
            "TimeWindowMet": true,
            "SlackTime": 0,
            "TimeWindow": {
                "StartTime": "60",
                "EndTime": "1380"
            },
            "BlockTimeWindow": {
                "StartTime": "0",
                "EndTime": "0"
            },
            "WaitTime": 165,
            "UniqueClusterID": "01127AM"
        },
        {
            "Location": {
                "Address": null,
                "Coords": {
                    "Lat": "51.078087",
                    "Lon": "13.727365"
                },
                "Region": 3,
                "Label": "Stop 14: SEIDEL",
                "PlaceName": "Stop 14: SEIDEL"
            },
            "OriginalPosition": 14,
            "ETA": "585",
            "Distance": "0.55",
            "TimeWindowMet": true,
            "SlackTime": 0,
            "TimeWindow": {
                "StartTime": "60",
                "EndTime": "1380"
            },
            "BlockTimeWindow": {
                "StartTime": "0",
                "EndTime": "0"
            },
            "WaitTime": 165,
            "UniqueClusterID": "01127AM"
        },
        {
            "Location": {
                "Address": null,
                "Coords": {
                    "Lat": "51.076904",
                    "Lon": "13.727155"
                },
                "Region": 3,
                "Label": "Stop 15: SUWALD",
                "PlaceName": "Stop 15: SUWALD"
            },
            "OriginalPosition": 15,
            "ETA": "588",
            "Distance": "0.14",
            "TimeWindowMet": true,
            "SlackTime": 0,
            "TimeWindow": {
                "StartTime": "60",
                "EndTime": "1380"
            },
            "BlockTimeWindow": {
                "StartTime": "0",
                "EndTime": "0"
            },
            "WaitTime": 165,
            "UniqueClusterID": "01127AM"
        },
        {
            "Location": {
                "Address": null,
                "Coords": {
                    "Lat": "51.076670",
                    "Lon": "13.727060"
                },
                "Region": 3,
                "Label": "Stop 16: STROBEL",
                "PlaceName": "Stop 16: STROBEL"
            },
            "OriginalPosition": 16,
            "ETA": "591",
            "Distance": "0.03",
            "TimeWindowMet": true,
            "SlackTime": 0,
            "TimeWindow": {
                "StartTime": "60",
                "EndTime": "1380"
            },
            "BlockTimeWindow": {
                "StartTime": "0",
                "EndTime": "0"
            },
            "WaitTime": 165,
            "UniqueClusterID": "01127AM"
        },
        {
            "Location": {
                "Address": null,
                "Coords": {
                    "Lat": "51.076465",
                    "Lon": "13.728317"
                },
                "Region": 3,
                "Label": "Stop 25: ALBER",
                "PlaceName": "Stop 25: ALBER"
            },
            "OriginalPosition": 25,
            "ETA": "594",
            "Distance": "0.09",
            "TimeWindowMet": true,
            "SlackTime": 0,
            "TimeWindow": {
                "StartTime": "60",
                "EndTime": "1380"
            },
            "BlockTimeWindow": {
                "StartTime": "0",
                "EndTime": "0"
            },
            "WaitTime": 165,
            "UniqueClusterID": "01127BT"
        },
        {
            "Location": {
                "Address": null,
                "Coords": {
                    "Lat": "51.076688",
                    "Lon": "13.726954"
                },
                "Region": 3,
                "Label": "Stop 24: ASMUS",
                "PlaceName": "Stop 24: ASMUS"
            },
            "OriginalPosition": 24,
            "ETA": "597",
            "Distance": "0.10",
            "TimeWindowMet": true,
            "SlackTime": 0,
            "TimeWindow": {
                "StartTime": "60",
                "EndTime": "1380"
            },
            "BlockTimeWindow": {
                "StartTime": "0",
                "EndTime": "0"
            },
            "WaitTime": 165,
            "UniqueClusterID": "01127BT"
        },
        {
            "Location": {
                "Address": null,
                "Coords": {
                    "Lat": "51.077217",
                    "Lon": "13.723026"
                },
                "Region": 3,
                "Label": "Stop 49: Nähstübchen",
                "PlaceName": "Stop 49: Nähstübchen"
            },
            "OriginalPosition": 49,
            "ETA": "600",
            "Distance": "0.28",
            "TimeWindowMet": true,
            "SlackTime": 0,
            "TimeWindow": {
                "StartTime": "60",
                "EndTime": "1380"
            },
            "BlockTimeWindow": {
                "StartTime": "0",
                "EndTime": "0"
            },
            "WaitTime": 165,
            "UniqueClusterID": "01127BT"
        },
        {
            "Location": {
                "Address": null,
                "Coords": {
                    "Lat": "51.077340",
                    "Lon": "13.723360"
                },
                "Region": 3,
                "Label": "Stop 48: STRICKER",
                "PlaceName": "Stop 48: STRICKER"
            },
            "OriginalPosition": 48,
            "ETA": "603",
            "Distance": "0.02",
            "TimeWindowMet": true,
            "SlackTime": 0,
            "TimeWindow": {
                "StartTime": "60",
                "EndTime": "1380"
            },
            "BlockTimeWindow": {
                "StartTime": "0",
                "EndTime": "0"
            },
            "WaitTime": 165,
            "UniqueClusterID": "01127BR"
        },
        {
            "Location": {
                "Address": null,
                "Coords": {
                    "Lat": "51.077010",
                    "Lon": "13.725030"
                },
                "Region": 3,
                "Label": "Stop 47: SPIEGEL",
                "PlaceName": "Stop 47: SPIEGEL"
            },
            "OriginalPosition": 47,
            "ETA": "606",
            "Distance": "0.12",
            "TimeWindowMet": true,
            "SlackTime": 0,
            "TimeWindow": {
                "StartTime": "60",
                "EndTime": "1380"
            },
            "BlockTimeWindow": {
                "StartTime": "0",
                "EndTime": "0"
            },
            "WaitTime": 165,
            "UniqueClusterID": "01127BR"
        },
        {
            "Location": {
                "Address": null,
                "Coords": {
                    "Lat": "51.078472",
                    "Lon": "13.719759"
                },
                "Region": 3,
                "Label": "Stop 51: GLAENZEL",
                "PlaceName": "Stop 51: GLAENZEL"
            },
            "OriginalPosition": 51,
            "ETA": "610",
            "Distance": "0.51",
            "TimeWindowMet": true,
            "SlackTime": 0,
            "TimeWindow": {
                "StartTime": "60",
                "EndTime": "1380"
            },
            "BlockTimeWindow": {
                "StartTime": "0",
                "EndTime": "0"
            },
            "WaitTime": 165,
            "UniqueClusterID": "01127BR"
        },
        {
            "Location": {
                "Address": null,
                "Coords": {
                    "Lat": "51.076593",
                    "Lon": "13.719270"
                },
                "Region": 3,
                "Label": "Stop 52: HAEHNE",
                "PlaceName": "Stop 52: HAEHNE"
            },
            "OriginalPosition": 52,
            "ETA": "613",
            "Distance": "0.21",
            "TimeWindowMet": true,
            "SlackTime": 0,
            "TimeWindow": {
                "StartTime": "60",
                "EndTime": "1380"
            },
            "BlockTimeWindow": {
                "StartTime": "0",
                "EndTime": "0"
            },
            "WaitTime": 165,
            "UniqueClusterID": "01127BR"
        },
        {
            "Location": {
                "Address": null,
                "Coords": {
                    "Lat": "51.076460",
                    "Lon": "13.719220"
                },
                "Region": 3,
                "Label": "Stop 53: GRUNDEY",
                "PlaceName": "Stop 53: GRUNDEY"
            },
            "OriginalPosition": 53,
            "ETA": "616",
            "Distance": "0.01",
            "TimeWindowMet": true,
            "SlackTime": 0,
            "TimeWindow": {
                "StartTime": "60",
                "EndTime": "1380"
            },
            "BlockTimeWindow": {
                "StartTime": "0",
                "EndTime": "0"
            },
            "WaitTime": 165,
            "UniqueClusterID": "01127BR"
        },
        {
            "Location": {
                "Address": null,
                "Coords": {
                    "Lat": "51.075588",
                    "Lon": "13.721150"
                },
                "Region": 3,
                "Label": "Stop 46: PEZUS",
                "PlaceName": "Stop 46: PEZUS"
            },
            "OriginalPosition": 46,
            "ETA": "619",
            "Distance": "0.17",
            "TimeWindowMet": true,
            "SlackTime": 0,
            "TimeWindow": {
                "StartTime": "60",
                "EndTime": "1380"
            },
            "BlockTimeWindow": {
                "StartTime": "0",
                "EndTime": "0"
            },
            "WaitTime": 165,
            "UniqueClusterID": "01127BR"
        },
        {
            "Location": {
                "Address": null,
                "Coords": {
                    "Lat": "51.074369",
                    "Lon": "13.723243"
                },
                "Region": 3,
                "Label": "Stop 50: STUECKWERK",
                "PlaceName": "Stop 50: STUECKWERK"
            },
            "OriginalPosition": 50,
            "ETA": "622",
            "Distance": "0.20",
            "TimeWindowMet": true,
            "SlackTime": 0,
            "TimeWindow": {
                "StartTime": "60",
                "EndTime": "1380"
            },
            "BlockTimeWindow": {
                "StartTime": "0",
                "EndTime": "0"
            },
            "WaitTime": 165,
            "UniqueClusterID": "01127BR"
        },
        {
            "Location": {
                "Address": null,
                "Coords": {
                    "Lat": "51.074050",
                    "Lon": "13.726438"
                },
                "Region": 3,
                "Label": "Stop 44: W&F",
                "PlaceName": "Stop 44: W&F"
            },
            "OriginalPosition": 44,
            "ETA": "625",
            "Distance": "0.32",
            "TimeWindowMet": true,
            "SlackTime": 0,
            "TimeWindow": {
                "StartTime": "60",
                "EndTime": "1380"
            },
            "BlockTimeWindow": {
                "StartTime": "0",
                "EndTime": "0"
            },
            "WaitTime": 165,
            "UniqueClusterID": "01127BR"
        },
        {
            "Location": {
                "Address": null,
                "Coords": {
                    "Lat": "51.074812",
                    "Lon": "13.727244"
                },
                "Region": 3,
                "Label": "Stop 45: TAPE CONNECTION",
                "PlaceName": "Stop 45: TAPE CONNECTION"
            },
            "OriginalPosition": 45,
            "ETA": "628",
            "Distance": "0.10",
            "TimeWindowMet": true,
            "SlackTime": 0,
            "TimeWindow": {
                "StartTime": "60",
                "EndTime": "1380"
            },
            "BlockTimeWindow": {
                "StartTime": "0",
                "EndTime": "0"
            },
            "WaitTime": 165,
            "UniqueClusterID": "01127BO"
        },
        {
            "Location": {
                "Address": null,
                "Coords": {
                    "Lat": "51.077700",
                    "Lon": "13.716715"
                },
                "Region": 3,
                "Label": "Stop 54: Blumengeschäft",
                "PlaceName": "Stop 54: Blumengeschäft"
            },
            "OriginalPosition": 54,
            "ETA": "633",
            "Distance": "1.01",
            "TimeWindowMet": true,
            "SlackTime": 0,
            "TimeWindow": {
                "StartTime": "60",
                "EndTime": "1380"
            },
            "BlockTimeWindow": {
                "StartTime": "0",
                "EndTime": "0"
            },
            "WaitTime": 165,
            "UniqueClusterID": "01127BO"
        },
        {
            "Location": {
                "Address": null,
                "Coords": {
                    "Lat": "51.074920",
                    "Lon": "13.722727"
                },
                "Region": 3,
                "Label": "Stop 23: Küchler",
                "PlaceName": "Stop 23: Küchler"
            },
            "OriginalPosition": 23,
            "ETA": "636",
            "Distance": "0.52",
            "TimeWindowMet": true,
            "SlackTime": 0,
            "TimeWindow": {
                "StartTime": "60",
                "EndTime": "1380"
            },
            "BlockTimeWindow": {
                "StartTime": "0",
                "EndTime": "0"
            },
            "WaitTime": 165,
            "UniqueClusterID": "01127BO"
        },
        {
            "Location": {
                "Address": null,
                "Coords": {
                    "Lat": "51.072361",
                    "Lon": "13.725965"
                },
                "Region": 3,
                "Label": "Stop 43: OTTO",
                "PlaceName": "Stop 43: OTTO"
            },
            "OriginalPosition": 43,
            "ETA": "640",
            "Distance": "0.36",
            "TimeWindowMet": true,
            "SlackTime": 0,
            "TimeWindow": {
                "StartTime": "60",
                "EndTime": "1380"
            },
            "BlockTimeWindow": {
                "StartTime": "0",
                "EndTime": "0"
            },
            "WaitTime": 165,
            "UniqueClusterID": "01127BO"
        },
        {
            "Location": {
                "Address": null,
                "Coords": {
                    "Lat": "51.071957",
                    "Lon": "13.726959"
                },
                "Region": 3,
                "Label": "Stop 40: Forum",
                "PlaceName": "Stop 40: Forum"
            },
            "OriginalPosition": 40,
            "ETA": "642",
            "Distance": "0.08",
            "TimeWindowMet": true,
            "SlackTime": 0,
            "TimeWindow": {
                "StartTime": "60",
                "EndTime": "1380"
            },
            "BlockTimeWindow": {
                "StartTime": "0",
                "EndTime": "0"
            },
            "WaitTime": 165,
            "UniqueClusterID": "01127BO"
        },
        {
            "Location": {
                "Address": null,
                "Coords": {
                    "Lat": "51.071957",
                    "Lon": "13.726959"
                },
                "Region": 3,
                "Label": "Stop 41: Apotheke",
                "PlaceName": "Stop 41: Apotheke"
            },
            "OriginalPosition": 41,
            "ETA": "645",
            "Distance": "0.00",
            "TimeWindowMet": true,
            "SlackTime": 0,
            "TimeWindow": {
                "StartTime": "60",
                "EndTime": "1380"
            },
            "BlockTimeWindow": {
                "StartTime": "0",
                "EndTime": "0"
            },
            "WaitTime": 165,
            "UniqueClusterID": "01127BO"
        },
        {
            "Location": {
                "Address": null,
                "Coords": {
                    "Lat": "51.071957",
                    "Lon": "13.726959"
                },
                "Region": 3,
                "Label": "Stop 42: Liebscher",
                "PlaceName": "Stop 42: Liebscher"
            },
            "OriginalPosition": 42,
            "ETA": "648",
            "Distance": "0.00",
            "TimeWindowMet": true,
            "SlackTime": 0,
            "TimeWindow": {
                "StartTime": "60",
                "EndTime": "1380"
            },
            "BlockTimeWindow": {
                "StartTime": "0",
                "EndTime": "0"
            },
            "WaitTime": 165,
            "UniqueClusterID": "01127BO"
        },
        {
            "Location": {
                "Address": null,
                "Coords": {
                    "Lat": "51.071087",
                    "Lon": "13.728508"
                },
                "Region": 3,
                "Label": "Stop 39: Tauchschule",
                "PlaceName": "Stop 39: Tauchschule"
            },
            "OriginalPosition": 39,
            "ETA": "651",
            "Distance": "0.14",
            "TimeWindowMet": true,
            "SlackTime": 0,
            "TimeWindow": {
                "StartTime": "360",
                "EndTime": "1080"
            },
            "BlockTimeWindow": {
                "StartTime": "0",
                "EndTime": "0"
            },
            "WaitTime": 165,
            "UniqueClusterID": "01127BO"
        },
        {
            "Location": {
                "Address": null,
                "Coords": {
                    "Lat": "51.072120",
                    "Lon": "13.727864"
                },
                "Region": 3,
                "Label": "Stop 32: AUSTE",
                "PlaceName": "Stop 32: AUSTE"
            },
            "OriginalPosition": 32,
            "ETA": "654",
            "Distance": "0.20",
            "TimeWindowMet": true,
            "SlackTime": 0,
            "TimeWindow": {
                "StartTime": "60",
                "EndTime": "1380"
            },
            "BlockTimeWindow": {
                "StartTime": "0",
                "EndTime": "0"
            },
            "WaitTime": 165,
            "UniqueClusterID": "01127BQ"
        },
        {
            "Location": {
                "Address": null,
                "Coords": {
                    "Lat": "51.072570",
                    "Lon": "13.728970"
                },
                "Region": 3,
                "Label": "Stop 33: CRAMER",
                "PlaceName": "Stop 33: CRAMER"
            },
            "OriginalPosition": 33,
            "ETA": "657",
            "Distance": "0.09",
            "TimeWindowMet": true,
            "SlackTime": 0,
            "TimeWindow": {
                "StartTime": "60",
                "EndTime": "1380"
            },
            "BlockTimeWindow": {
                "StartTime": "0",
                "EndTime": "0"
            },
            "WaitTime": 165,
            "UniqueClusterID": "01127BS"
        },
        {
            "Location": {
                "Address": null,
                "Coords": {
                    "Lat": "51.072570",
                    "Lon": "13.728970"
                },
                "Region": 3,
                "Label": "Stop 34: EHRLICH",
                "PlaceName": "Stop 34: EHRLICH"
            },
            "OriginalPosition": 34,
            "ETA": "660",
            "Distance": "0.00",
            "TimeWindowMet": true,
            "SlackTime": 0,
            "TimeWindow": {
                "StartTime": "60",
                "EndTime": "1380"
            },
            "BlockTimeWindow": {
                "StartTime": "0",
                "EndTime": "0"
            },
            "WaitTime": 165,
            "UniqueClusterID": "01127BS"
        },
        {
            "Location": {
                "Address": null,
                "Coords": {
                    "Lat": "51.073686",
                    "Lon": "13.729330"
                },
                "Region": 3,
                "Label": "Stop 31: DRECHSLER",
                "PlaceName": "Stop 31: DRECHSLER"
            },
            "OriginalPosition": 31,
            "ETA": "663",
            "Distance": "0.31",
            "TimeWindowMet": true,
            "SlackTime": 0,
            "TimeWindow": {
                "StartTime": "60",
                "EndTime": "1380"
            },
            "BlockTimeWindow": {
                "StartTime": "0",
                "EndTime": "0"
            },
            "WaitTime": 165,
            "UniqueClusterID": "01127BS"
        },
        {
            "Location": {
                "Address": null,
                "Coords": {
                    "Lat": "51.071087",
                    "Lon": "13.729411"
                },
                "Region": 3,
                "Label": "Stop 35: NOVY",
                "PlaceName": "Stop 35: NOVY"
            },
            "OriginalPosition": 35,
            "ETA": "667",
            "Distance": "0.48",
            "TimeWindowMet": true,
            "SlackTime": 0,
            "TimeWindow": {
                "StartTime": "60",
                "EndTime": "1380"
            },
            "BlockTimeWindow": {
                "StartTime": "0",
                "EndTime": "0"
            },
            "WaitTime": 165,
            "UniqueClusterID": "01127BS"
        },
        {
            "Location": {
                "Address": null,
                "Coords": {
                    "Lat": "51.072310",
                    "Lon": "13.734160"
                },
                "Region": 3,
                "Label": "Stop 37: ZUEBLIN",
                "PlaceName": "Stop 37: ZUEBLIN"
            },
            "OriginalPosition": 37,
            "ETA": "671",
            "Distance": "0.45",
            "TimeWindowMet": true,
            "SlackTime": 0,
            "TimeWindow": {
                "StartTime": "60",
                "EndTime": "1380"
            },
            "BlockTimeWindow": {
                "StartTime": "0",
                "EndTime": "0"
            },
            "WaitTime": 165,
            "UniqueClusterID": "01127AS"
        },
        {
            "Location": {
                "Address": null,
                "Coords": {
                    "Lat": "51.072230",
                    "Lon": "13.734297"
                },
                "Region": 3,
                "Label": "Stop 38: Fleigeno",
                "PlaceName": "Stop 38: Fleigeno"
            },
            "OriginalPosition": 38,
            "ETA": "673",
            "Distance": "0.00",
            "TimeWindowMet": true,
            "SlackTime": 0,
            "TimeWindow": {
                "StartTime": "60",
                "EndTime": "1380"
            },
            "BlockTimeWindow": {
                "StartTime": "0",
                "EndTime": "0"
            },
            "WaitTime": 165,
            "UniqueClusterID": "01127BP"
        },
        {
            "Location": {
                "Address": null,
                "Coords": {
                    "Lat": "51.071180",
                    "Lon": "13.731340"
                },
                "Region": 3,
                "Label": "Stop 36: Dathe Autoservice",
                "PlaceName": "Stop 36: Dathe Autoservice"
            },
            "OriginalPosition": 36,
            "ETA": "677",
            "Distance": "0.23",
            "TimeWindowMet": true,
            "SlackTime": 0,
            "TimeWindow": {
                "StartTime": "60",
                "EndTime": "1380"
            },
            "BlockTimeWindow": {
                "StartTime": "0",
                "EndTime": "0"
            },
            "WaitTime": 165,
            "UniqueClusterID": "01127BP"
        },
        {
            "Location": {
                "Address": null,
                "Coords": {
                    "Lat": "51.075256",
                    "Lon": "13.732418"
                },
                "Region": 3,
                "Label": "Stop 27: Wagner",
                "PlaceName": "Stop 27: Wagner"
            },
            "OriginalPosition": 27,
            "ETA": "681",
            "Distance": "0.98",
            "TimeWindowMet": true,
            "SlackTime": 0,
            "TimeWindow": {
                "StartTime": "60",
                "EndTime": "1380"
            },
            "BlockTimeWindow": {
                "StartTime": "0",
                "EndTime": "0"
            },
            "WaitTime": 165,
            "UniqueClusterID": "01127AX"
        },
        {
            "Location": {
                "Address": null,
                "Coords": {
                    "Lat": "51.075901",
                    "Lon": "13.733500"
                },
                "Region": 3,
                "Label": "Stop 28: TTM",
                "PlaceName": "Stop 28: TTM"
            },
            "OriginalPosition": 28,
            "ETA": "684",
            "Distance": "0.17",
            "TimeWindowMet": true,
            "SlackTime": 0,
            "TimeWindow": {
                "StartTime": "60",
                "EndTime": "1380"
            },
            "BlockTimeWindow": {
                "StartTime": "0",
                "EndTime": "0"
            },
            "WaitTime": 165,
            "UniqueClusterID": "01127AX"
        },
        {
            "Location": {
                "Address": null,
                "Coords": {
                    "Lat": "51.076410",
                    "Lon": "13.733310"
                },
                "Region": 3,
                "Label": "Stop 67: Mobile Energie-Tankst. Trachenberge",
                "PlaceName": "Stop 67: Mobile Energie-Tankst. Trachenberge"
            },
            "OriginalPosition": 67,
            "ETA": "687",
            "Distance": "0.06",
            "TimeWindowMet": true,
            "SlackTime": 0,
            "TimeWindow": {
                "StartTime": "360",
                "EndTime": "1320"
            },
            "BlockTimeWindow": {
                "StartTime": "0",
                "EndTime": "0"
            },
            "WaitTime": 150,
            "UniqueClusterID": ""
        },
        {
            "Location": {
                "Address": null,
                "Coords": {
                    "Lat": "51.089710",
                    "Lon": "13.748860"
                },
                "Region": 3,
                "Label": "Stop 69: Justizvollzugsanstalt Dresden",
                "PlaceName": "Stop 69: Justizvollzugsanstalt Dresden"
            },
            "OriginalPosition": 69,
            "ETA": "694",
            "Distance": "2.39",
            "TimeWindowMet": true,
            "SlackTime": 26,
            "TimeWindow": {
                "StartTime": "720",
                "EndTime": "870"
            },
            "BlockTimeWindow": {
                "StartTime": "0",
                "EndTime": "0"
            },
            "WaitTime": 150,
            "UniqueClusterID": ""
        },
        {
            "Location": {
                "Address": null,
                "Coords": {
                    "Lat": "51.077780",
                    "Lon": "13.733250"
                },
                "Region": 3,
                "Label": "Stop 30: SCHULDESHOSA",
                "PlaceName": "Stop 30: SCHULDESHOSA"
            },
            "OriginalPosition": 30,
            "ETA": "728",
            "Distance": "3.12",
            "TimeWindowMet": true,
            "SlackTime": 0,
            "TimeWindow": {
                "StartTime": "60",
                "EndTime": "1380"
            },
            "BlockTimeWindow": {
                "StartTime": "0",
                "EndTime": "0"
            },
            "WaitTime": 165,
            "UniqueClusterID": "01127BZ"
        },
        {
            "Location": {
                "Address": null,
                "Coords": {
                    "Lat": "51.075380",
                    "Lon": "13.733710"
                },
                "Region": 3,
                "Label": "Stop 26: BAUMGAERTEL",
                "PlaceName": "Stop 26: BAUMGAERTEL"
            },
            "OriginalPosition": 26,
            "ETA": "732",
            "Distance": "0.37",
            "TimeWindowMet": true,
            "SlackTime": 0,
            "TimeWindow": {
                "StartTime": "60",
                "EndTime": "1380"
            },
            "BlockTimeWindow": {
                "StartTime": "0",
                "EndTime": "0"
            },
            "WaitTime": 165,
            "UniqueClusterID": "01127BZ"
        },
        {
            "Location": {
                "Address": null,
                "Coords": {
                    "Lat": "51.076640",
                    "Lon": "13.733080"
                },
                "Region": 3,
                "Label": "Stop 70: Mobile Energie-Tankst.Trachenberge",
                "PlaceName": "Stop 70: Mobile Energie-Tankst.Trachenberge"
            },
            "OriginalPosition": 70,
            "ETA": "735",
            "Distance": "0.15",
            "TimeWindowMet": true,
            "SlackTime": 45,
            "TimeWindow": {
                "StartTime": "780",
                "EndTime": "1020"
            },
            "BlockTimeWindow": {
                "StartTime": "0",
                "EndTime": "0"
            },
            "WaitTime": 150,
            "UniqueClusterID": ""
        },
        {
            "Location": {
                "Address": null,
                "Coords": {
                    "Lat": "51.076640",
                    "Lon": "13.733080"
                },
                "Region": 3,
                "Label": "Stop 29: Mobile Energie-Tankst. Trachenberge",
                "PlaceName": "Stop 29: Mobile Energie-Tankst. Trachenberge"
            },
            "OriginalPosition": 29,
            "ETA": "783",
            "Distance": "0.00",
            "TimeWindowMet": true,
            "SlackTime": 0,
            "TimeWindow": {
                "StartTime": "60",
                "EndTime": "1380"
            },
            "BlockTimeWindow": {
                "StartTime": "0",
                "EndTime": "0"
            },
            "WaitTime": 165,
            "UniqueClusterID": "01127BZ"
        },
        {
            "Location": {
                "Address": null,
                "Coords": {
                    "Lat": "51.076770",
                    "Lon": "13.724830"
                },
                "Region": 3,
                "Label": "Stop 66: Modelleisenbahnen-Jako",
                "PlaceName": "Stop 66: Modelleisenbahnen-Jako"
            },
            "OriginalPosition": 66,
            "ETA": "787",
            "Distance": "0.81",
            "TimeWindowMet": true,
            "SlackTime": 0,
            "TimeWindow": {
                "StartTime": "780",
                "EndTime": "1020"
            },
            "BlockTimeWindow": {
                "StartTime": "0",
                "EndTime": "0"
            },
            "WaitTime": 150,
            "UniqueClusterID": ""
        },
        {
            "Location": {
                "Address": null,
                "Coords": {
                    "Lat": "51.075150",
                    "Lon": "13.723320"
                },
                "Region": 3,
                "Label": "Stop 63: Adventure Sports",
                "PlaceName": "Stop 63: Adventure Sports"
            },
            "OriginalPosition": 63,
            "ETA": "790",
            "Distance": "0.21",
            "TimeWindowMet": true,
            "SlackTime": 0,
            "TimeWindow": {
                "StartTime": "780",
                "EndTime": "1020"
            },
            "BlockTimeWindow": {
                "StartTime": "0",
                "EndTime": "0"
            },
            "WaitTime": 150,
            "UniqueClusterID": ""
        },
        {
            "Location": {
                "Address": null,
                "Coords": {
                    "Lat": "51.077400",
                    "Lon": "13.720530"
                },
                "Region": 3,
                "Label": "Stop 64: FEGA Grosshandel",
                "PlaceName": "Stop 64: FEGA Grosshandel"
            },
            "OriginalPosition": 64,
            "ETA": "793",
            "Distance": "0.56",
            "TimeWindowMet": true,
            "SlackTime": 0,
            "TimeWindow": {
                "StartTime": "780",
                "EndTime": "1020"
            },
            "BlockTimeWindow": {
                "StartTime": "0",
                "EndTime": "0"
            },
            "WaitTime": 150,
            "UniqueClusterID": ""
        },
        {
            "Location": {
                "Address": null,
                "Coords": {
                    "Lat": "51.077270",
                    "Lon": "13.717360"
                },
                "Region": 3,
                "Label": "Stop 65: Media Fuxer",
                "PlaceName": "Stop 65: Media Fuxer"
            },
            "OriginalPosition": 65,
            "ETA": "796",
            "Distance": "0.33",
            "TimeWindowMet": true,
            "SlackTime": 0,
            "TimeWindow": {
                "StartTime": "780",
                "EndTime": "840"
            },
            "BlockTimeWindow": {
                "StartTime": "0",
                "EndTime": "0"
            },
            "WaitTime": 150,
            "UniqueClusterID": ""
        },
        {
            "Location": {
                "Address": null,
                "Coords": {
                    "Lat": "51.042587",
                    "Lon": "13.587582"
                },
                "Region": 3,
                "Label": "EndDepot",
                "PlaceName": "EndDepot"
            },
            "OriginalPosition": 71,
            "ETA": "811",
            "Distance": "14.77",
            "TimeWindowMet": true,
            "SlackTime": 0,
            "TimeWindow": {
                "StartTime": "0",
                "EndTime": "1440"
            },
            "BlockTimeWindow": {
                "StartTime": "0",
                "EndTime": "0"
            },
            "WaitTime": 0,
            "UniqueClusterID": ""
        }
    ],
    "RemovedStops": [
        {
            "Location": {
                "Address": {
                    "StreetAddress": "",
                    "City": "",
                    "State": null,
                    "Zip": "",
                    "County": null,
                    "Country": "DE",
                    "SPLC": null,
                    "CountryPostalFilter": 0,
                    "AbbreviationFormat": 1,
                    "StateName": null,
                    "StateAbbreviation": null,
                    "CountryAbbreviation": null
                },
                "Coords": {
                    "Lat": "00000000",
                    "Lon": "00000000"
                },
                "Region": 3,
                "Label": "Stop 68: <Pause>",
                "PlaceName": null
            },
            "OriginalPosition": 68,
            "Error": "Geocode",
            "TimeWindow": {
                "StartTime": "60",
                "EndTime": "1380"
            },
            "BlockTimeWindow": {
                "StartTime": "0",
                "EndTime": "0"
            },
            "WaitTime": 1800,
            "UniqueClusterID": ""
        }
    ]
}

Errors and Warnings

Validation

Any errors or warnings that occur here happen when validating the incoming request JSON. Errors will cause a failure but warnings will allow the request to continue and be returned in the response header. Time window routing shares the same validations as other requests for requests, route options and stop locations. The following are unique to time window routing:

Warnings

  1. Settings property not provided. Using default values.
    Occurs when no Settings property provided.

  2. Method property not found in Settings. The value will be set to 1.
    Occurs when Settings is provided but Method is not.

  3. TimeFormat property not found in ‘Settings’. The value will be set to 1.
    Occurs when Settings is provided but TimeFormat is not.

  4. RouteOptions property not found in Route. Using default values.
    Occurs when Options is not provided in Route.

  5. Fuel optimization requested, but time window routing cannot use FuelOptions. This property will be ignored.
    Occurs when FuelRoute is provided and set to true in RouteOptions.

  6. Fastest routing type uses historical data. RoutingType will be changed to 0. Occurs when RoutingType is provided and set to 2 in RouteOptions.

  7. Time window routing cannot use RouteOptimization property. It requires its start and end depots to be fixed.
    Occurs when RouteOptimization is provided and set to any value other than 0 in RouteOptions.

  8. Time window routing cannot use HoSOptions property. Work time and schedule is implied by the optimized sequence’s results. Use break stops to mark breaks for the driver in the sequence.
    Occurs when HoSOptions is provided and “Enabled” is set to true in RouteOptions.

  9. Time window routing cannot use OverrideRestrict property. It impacts OverrideRestrictthe sequence.
    Occurs when OverrideRestrict is provided and set to true in RouteOptions.

  10. Stop #0: is a starting depot and does not need a valid EndTime value. Just provide the same value as StartTime.
    Occurs when the first stop in Stops list is provided an EndTime with a different value than its StartTime.

  11. Stop #[index]: is a ending depot and does not need a valid time window StartTime. Any value over 0 will be ignored.
    Occurs when the last stop in Stops list is given a StartTime with a value other than midnight.

  12. Stop #[index]: is a ending depot and does not need a valid time window EndTime. Any value over 0 will be ignored.
    Occurs when the last stop in Stops list is given a EndTime with a value other than midnight.

  13. Stop #[index]: is a depot and can never be a break stop. Explicitly marking IsBreak false is unnecessary.
    Occurs when either the first or last stop in Stops list has IsBreak set to false.

  14. Stop #[index]: is a depot and is static by default. Explicitly marking IsStatic true is unnecessary.
    Occurs when either the first or last stop in Stops list has “IsStatic” set to true.

  15. Stop #[index]: is a depot and does not need to wait. Any WaitTime above 0 will be ignored.
    Either the first or last stop in Stops list has WaitTime provided with a value greater than 0.

  16. Stop #[index]: SPLC provided but cannot be used by time window routing. This property will be ignored.
    Stop’s Location property has SPLC provided with a valid StreetAddress, City, State/Country and Zip.

  17. Stop #[index]: SPLC provided but time window routing requires StreetAddress, City, State/Country It cannot use this property.
    Stop’s Location property has SPLC provided with a valid StreetAddress, City, State/Country and Zip.

  18. Stop #[index]: Location property must have either valid address (complete with StreetAddress, City, State/Country) or valid latitude and longitude coordinates in order to be geocoded successfully.
    Stop’s Location property does not have valid Coords or StreetAddress, City, State/Country and Zip. This is only a warning because the stop will be removed with a geocode error.