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 49 50 51 52 53 54 55
use crate::types::Bounds;
use crate::geocoding::forward::ForwardRequest;
// -----------------------------------------------------------------------------
impl<'a> ForwardRequest<'a> {
/// Specifies a bounding box for biasing results.
///
/// ## Arguments:
///
/// * `bounds` - The bounding box of the viewport within which to bias
/// geocode results more prominently. This parameter will only influence,
/// not fully restrict, results from the geocoder.
///
/// ## Description
///
/// [Viewport
/// Biasing](https://developers.google.com/maps/documentation/geocoding/intro#Viewports)
///
/// In a Geocoding request, you can instruct the Geocoding service to prefer
/// results within a given viewport (expressed as a bounding box). You do so
/// within the request URL by setting the `bounds` parameter. Note that
/// biasing only _prefers_ results within the bounds; if more relevant
/// results exist outside of these bounds, they may be included.
///
/// The bounds parameter defines the latitude/longitude coordinates of the
/// southwest and northeast corners of this bounding box.
///
/// For example, a geocode for "Winnetka" generally returns this suburb of
/// Chicago. However, adding a `bounds` argument defining a bounding box for
/// the San Fernando Valley of Los Angeles results in this geocode returning
/// the neighborhood named "Winnetka" in that location.
///
/// ## Example:
///
/// * Specify bounding box for search area:
/// ```
/// .with_bounds(Bounds {
/// southwest: LatLng::try_from_dec(dec!(51.503_111_7), dec!(-0.129_150_3))?,
/// northeast: LatLng::try_from_dec(dec!(51.503_440_5), dec!(-0.126_003_2))?,
/// })
/// ```
pub fn with_bounds(
&'a mut self,
bounds: Bounds
) -> &'a mut ForwardRequest {
// Set bounds in ForwardRequest struct.
self.bounds = Some(bounds);
// Return modified ForwardRequest struct to caller.
self
} // fn
} // impl