OptimizeWaypoints
OptimizeWaypoints
calculates the optimal order to travel between a set of
waypoints to minimize either the travel time or the distance travelled during the journey,
based on road network restrictions and the traffic pattern data.
For more information, see Optimize waypoints in the Amazon Location Service Developer Guide.
Request Syntax
POST /optimize-waypoints?key=Key
HTTP/1.1
Content-type: application/json
{
"Avoid": {
"Areas": [
{
"Geometry": {
"BoundingBox": [ number
]
}
}
],
"CarShuttleTrains": boolean
,
"ControlledAccessHighways": boolean
,
"DirtRoads": boolean
,
"Ferries": boolean
,
"TollRoads": boolean
,
"Tunnels": boolean
,
"UTurns": boolean
},
"Clustering": {
"Algorithm": "string
",
"DrivingDistanceOptions": {
"DrivingDistance": number
}
},
"DepartureTime": "string
",
"Destination": [ number
],
"DestinationOptions": {
"AccessHours": {
"From": {
"DayOfWeek": "string
",
"TimeOfDay": "string
"
},
"To": {
"DayOfWeek": "string
",
"TimeOfDay": "string
"
}
},
"AppointmentTime": "string
",
"Heading": number
,
"Id": "string
",
"ServiceDuration": number
,
"SideOfStreet": {
"Position": [ number
],
"UseWith": "string
"
}
},
"Driver": {
"RestCycles": {
"LongCycle": {
"RestDuration": number
,
"WorkDuration": number
},
"ShortCycle": {
"RestDuration": number
,
"WorkDuration": number
}
},
"RestProfile": {
"Profile": "string
"
},
"TreatServiceTimeAs": "string
"
},
"Exclude": {
"Countries": [ "string
" ]
},
"OptimizeSequencingFor": "string
",
"Origin": [ number
],
"OriginOptions": {
"Id": "string
"
},
"Traffic": {
"Usage": "string
"
},
"TravelMode": "string
",
"TravelModeOptions": {
"Pedestrian": {
"Speed": number
},
"Truck": {
"GrossWeight": number
,
"HazardousCargos": [ "string
" ],
"Height": number
,
"Length": number
,
"Trailer": {
"TrailerCount": number
},
"TruckType": "string
",
"TunnelRestrictionCode": "string
",
"WeightPerAxle": number
,
"Width": number
}
},
"Waypoints": [
{
"AccessHours": {
"From": {
"DayOfWeek": "string
",
"TimeOfDay": "string
"
},
"To": {
"DayOfWeek": "string
",
"TimeOfDay": "string
"
}
},
"AppointmentTime": "string
",
"Before": [ number
],
"Heading": number
,
"Id": "string
",
"Position": [ number
],
"ServiceDuration": number
,
"SideOfStreet": {
"Position": [ number
],
"UseWith": "string
"
}
}
]
}
URI Request Parameters
The request uses the following URI parameters.
- Key
-
Optional: The API key to be used for authorization. Either an API key or valid SigV4 signature must be provided when making a request.
Length Constraints: Minimum length of 0. Maximum length of 1000.
Request Body
The request accepts the following data in JSON format.
- Avoid
-
Features that are avoided. Avoidance is on a best-case basis. If an avoidance can't be satisfied for a particular case, this setting is ignored.
Type: WaypointOptimizationAvoidanceOptions object
Required: No
- Clustering
-
Clustering allows you to specify how nearby waypoints can be clustered to improve the optimized sequence.
Type: WaypointOptimizationClusteringOptions object
Required: No
- DepartureTime
-
Departure time from the waypoint.
Time format:
YYYY-MM-DDThh:mm:ss.sssZ | YYYY-MM-DDThh:mm:ss.sss+hh:mm
Examples:
2020-04-22T17:57:24Z
2020-04-22T17:57:24+02:00
Type: String
Pattern:
([1-2][0-9]{3})-(0[1-9]|1[0-2])-(0[1-9]|[12][0-9]|3[01])T([01][0-9]|2[0-3]):([0-5][0-9]):([0-5][0-9]|60)(\.[0-9]{0,9})?(Z|[+-]([01][0-9]|2[0-3]):[0-5][0-9])
Required: No
- Destination
-
The final position for the route in the World Geodetic System (WGS 84) format:
[longitude, latitude]
.Type: Array of doubles
Array Members: Fixed number of 2 items.
Required: No
- DestinationOptions
-
Destination related options.
Type: WaypointOptimizationDestinationOptions object
Required: No
- Driver
-
Driver related options.
Type: WaypointOptimizationDriverOptions object
Required: No
- Exclude
-
Features to be strictly excluded while calculating the route.
Type: WaypointOptimizationExclusionOptions object
Required: No
- OptimizeSequencingFor
-
Specifies the optimization criteria for the calculated sequence.
Default Value:
FastestRoute
.Type: String
Valid Values:
FastestRoute | ShortestRoute
Required: No
- Origin
-
The start position for the route in World Geodetic System (WGS 84) format: [longitude, latitude].
Type: Array of doubles
Array Members: Fixed number of 2 items.
Required: Yes
- OriginOptions
-
Origin related options.
Type: WaypointOptimizationOriginOptions object
Required: No
- Traffic
-
Traffic-related options.
Type: WaypointOptimizationTrafficOptions object
Required: No
- TravelMode
-
Specifies the mode of transport when calculating a route. Used in estimating the speed of travel and road compatibility.
Default Value:
Car
Type: String
Valid Values:
Car | Pedestrian | Scooter | Truck
Required: No
- TravelModeOptions
-
Travel mode related options for the provided travel mode.
Type: WaypointOptimizationTravelModeOptions object
Required: No
- Waypoints
-
List of waypoints between the
Origin
andDestination
.Type: Array of WaypointOptimizationWaypoint objects
Required: No
Response Syntax
HTTP/1.1 200
x-amz-geo-pricing-bucket: PricingBucket
Content-type: application/json
{
"Connections": [
{
"Distance": number,
"From": "string",
"RestDuration": number,
"To": "string",
"TravelDuration": number,
"WaitDuration": number
}
],
"Distance": number,
"Duration": number,
"ImpedingWaypoints": [
{
"FailedConstraints": [
{
"Constraint": "string",
"Reason": "string"
}
],
"Id": "string",
"Position": [ number ]
}
],
"OptimizedWaypoints": [
{
"ArrivalTime": "string",
"ClusterIndex": number,
"DepartureTime": "string",
"Id": "string",
"Position": [ number ]
}
],
"TimeBreakdown": {
"RestDuration": number,
"ServiceDuration": number,
"TravelDuration": number,
"WaitDuration": number
}
}
Response Elements
If the action is successful, the service sends back an HTTP 200 response.
The response returns the following HTTP headers.
- PricingBucket
-
The pricing bucket for which the query is charged at.
The following data is returned in JSON format by the service.
- Connections
-
Details about the connection from one waypoint to the next, within the optimized sequence.
Type: Array of WaypointOptimizationConnection objects
- Distance
-
Overall distance to travel the whole sequence.
Type: Long
Valid Range: Minimum value of 0. Maximum value of 4294967295.
- Duration
-
Overall duration to travel the whole sequence.
Unit:
seconds
Type: Long
Valid Range: Minimum value of 0. Maximum value of 4294967295.
- ImpedingWaypoints
-
Returns waypoints that caused the optimization problem to fail, and the constraints that were unsatisfied leading to the failure.
Type: Array of WaypointOptimizationImpedingWaypoint objects
- OptimizedWaypoints
-
Waypoints in the order of the optimized sequence.
Type: Array of WaypointOptimizationOptimizedWaypoint objects
- TimeBreakdown
-
Time breakdown for the sequence.
Type: WaypointOptimizationTimeBreakdown object
Errors
For information about the errors that are common to all actions, see Common Errors.
- AccessDeniedException
-
You don't have sufficient access to perform this action.
HTTP Status Code: 403
- InternalServerException
-
The request processing has failed because of an unknown error, exception or failure.
HTTP Status Code: 500
- ThrottlingException
-
The request was denied due to request throttling.
HTTP Status Code: 429
- ValidationException
-
The input fails to satisfy the constraints specified by an AWS service.
HTTP Status Code: 400
See Also
For more information about using this API in one of the language-specific AWS SDKs, see the following: