pub struct TransitPreferences { /* private fields */ }Expand description
Preferences for TRANSIT based routes that influence the route that is returned. See https://developers.google.com/maps/documentation/routes/reference/rest/v2/TransitPreferences
Implementations§
Source§impl TransitPreferences
impl TransitPreferences
Sourcepub fn new(
allowed_travel_modes: Option<Vec<TransitTravelMode>>,
routing_preference: Option<TransitRoutingPreference>,
) -> Self
pub fn new( allowed_travel_modes: Option<Vec<TransitTravelMode>>, routing_preference: Option<TransitRoutingPreference>, ) -> Self
Examples found in repository?
examples/route_service.rs (line 46)
23async fn get_route() -> Result<()> {
24 dotenv().ok();
25
26 // api auth
27 let api_key = env::var("API_KEY")?;
28 let mut route_service = RouteService::new_with_api_key(api_key);
29
30 let masks = vec!["routes.duration", "routes.distanceMeters"];
31 let origin = WayPoint::new_from_location(Location::new(37.419734, -122.0827784, None), None)?;
32 let destination = WayPoint::new_from_location(Location::new(35.419734, -100.0827784, None), None)?;
33
34 let mut mid_waypoint_option: HashMap<String, Value> = HashMap::new();
35 mid_waypoint_option.insert("via".to_string(), true.into());
36
37 let mut route_option: HashMap<String, Value> = HashMap::new();
38 // let mid_waypoint = WayPoint::new_from_place_id("ChIJgUbEo8cfqokR5lP9_Wh_DaM", Some(mid_waypoint_option))?;
39 // route_option.insert("intermediates".to_owned(), serde_json::to_value(vec![mid_waypoint.clone()])?);
40 route_option.insert("travelMode".to_owned(), serde_json::to_value(RouteTravelMode::Drive)?);
41 route_option.insert("routingPreference".to_owned(), serde_json::to_value(RoutingPreference::TrafficAwareOptimal)?);
42 // route_option.insert("departureTime".to_owned(), serde_json::to_value(Utc::now() + Duration::seconds(60 * 60 * 24))?);
43 // let route_modifiers = RouteModifiers::new(Some(true), Some(true), Some(true), None, None, None);
44 // route_option.insert("routeModifiers".to_owned(), serde_json::to_value(route_modifiers)?);
45 // route_option.insert("requestedReferenceRoutes".to_owned(), serde_json::to_value(vec![ReferenceRoute::FuelEfficient])?);
46 let transit_preference = TransitPreferences::new(Some(vec![TransitTravelMode::Bus]), None);
47 route_option.insert("transitPreferences".to_owned(), serde_json::to_value(transit_preference)?);
48
49 let response = route_service.get_route(&origin, &destination, Some(masks.clone()), Some(route_option.clone())).await?;
50 println!("response: {}", serde_json::to_string_pretty(&response)?);
51
52
53 // service account auth
54 let filepath: PathBuf = PathBuf::from_str("credentials.json")?;
55 let credentials = ServiceAccountCredentials::from_service_account_file(filepath)?;
56 let mut route_service = RouteService::new_with_credentials(credentials);
57 let response = route_service.get_route(&origin, &destination, Some(masks.clone()), Some(route_option.clone())).await?;
58 println!("response: {}", serde_json::to_string(&response)?);
59
60 Ok(())
61}Trait Implementations§
Source§impl Clone for TransitPreferences
impl Clone for TransitPreferences
Source§fn clone(&self) -> TransitPreferences
fn clone(&self) -> TransitPreferences
Returns a duplicate of the value. Read more
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreSource§impl Debug for TransitPreferences
impl Debug for TransitPreferences
Source§impl<'de> Deserialize<'de> for TransitPreferences
impl<'de> Deserialize<'de> for TransitPreferences
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
Deserialize this value from the given Serde deserializer. Read more
Auto Trait Implementations§
impl Freeze for TransitPreferences
impl RefUnwindSafe for TransitPreferences
impl Send for TransitPreferences
impl Sync for TransitPreferences
impl Unpin for TransitPreferences
impl UnwindSafe for TransitPreferences
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more