1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
impl crate::directions::Request<'_> {
/// Specifies whether the waypoint order should be optimized or not.
///
/// ## Arguments
///
/// * `waypoint_optimization` ‧ Specifies whether the waypoints should be
/// rearranged into the most time-efficient order or not.
///
/// ## Description
///
/// [Optimize your waypoints](https://developers.google.com/maps/documentation/directions/intro#OptimizeWaypoints)
/// ----------------------------------------------------------------------------------------
///
/// By default, the Directions service calculates a route through the
/// provided waypoints in their given order. Optionally, you may pass
/// `optimize:true` as the first argument within the `waypoints` parameter
/// to allow the Directions service to optimize the provided route by
/// rearranging the waypoints in a more efficient order. (This optimization
/// is an application of the [traveling salesperson
/// problem](https://en.wikipedia.org/wiki/Travelling_salesman_problem).)
/// Travel time is the primary factor which is optimized, but other factors
/// such as distance, number of turns and many more may be taken into
/// account when deciding which route is the most efficient. All waypoints
/// must be stopovers for the Directions service to optimize their route.
///
/// If you instruct the Directions service to optimize the order of its
/// waypoints, their order will be returned in the `waypoint_order` field
/// within the
/// `[routes](https://developers.google.com/maps/documentation/directions/intro#Routes)`
/// object. The `waypoint_order` field returns values which are zero-based.
///
/// The following example calculates a road journey from Adelaide, South
/// Australia to each of South Australia's main wine regions using route
/// optimization.
///
/// ## Example
///
/// ```rust
/// .with_waypoint_optimization(true)
/// ```
#[must_use] pub fn with_waypoint_optimization(
mut self,
waypoint_optimization: impl Into<bool>
) -> Self {
self.waypoint_optimization = waypoint_optimization.into();
self
} // fn
} // impl