OptimizeWaypoints - Amazon Location Service

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.

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 }, "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

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.

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 and Destination.

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", "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: