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 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95
use crate::types::LatLng;
use crate::places::place_autocomplete::request::Request;
// -----------------------------------------------------------------------------
impl<'a> Request<'a> {
/// Adds the location and radius parameters to the Place API _Place
/// Autocomplete_ query.
///
/// ## Arguments:
///
/// * `location` ‧ The point around which to retrieve place information.
/// Note: When using the Text Search API, the `location` parameter may be
/// overriden if the `query` contains an explicit location such as `Market
/// in Barcelona`.
///
/// * `radius` ‧ Defines the distance (in meters) within which to return
/// place results. You may bias results to a specified circle by passing a
/// `location` and a `radius` parameter. Doing so instructs the Places
/// service to prefer showing results within that circle; results outside of
/// the defined area may still be displayed.
///
/// The radius will automatically be clamped to a maximum value depending on
/// the type of search and other parameters.
///
/// * Autocomplete: 50,000 meters
/// * Nearby Search:
/// * with `keyword` or `name`: 50,000 meters
/// * without `keyword` or `name`
/// * Up to 50,000 meters, adjusted dynamically based on area
/// density, independent of `rankby` parameter.
/// * When using `rankby=distance`, the radius parameter will not be
/// accepted, and will result in an `INVALID_REQUEST`.
/// * Query Autocomplete: 50,000 meters
/// * Text Search: 50,000 meters
pub fn with_location_and_radius(
&'a mut self,
location: LatLng,
radius: u32,
) -> &'a mut Request {
// Set location in Request struct.
self.location = Some(location);
// Set radius in Request struct.
self.radius = Some(radius);
// Return modified Request struct to caller.
self
} // fn
} // impl
// -----------------------------------------------------------------------------
impl<'a> Request<'a> {
/// Adds the location and radius parameters to the Place API _Place
/// Autocomplete_ query.
///
/// ## Arguments:
///
/// * `location` ‧ The point around which to retrieve place information.
/// Note: When using the Text Search API, the `location` parameter may be
/// overriden if the `query` contains an explicit location such as `Market
/// in Barcelona`.
///
/// * `radius` ‧ Defines the distance (in meters) within which to return
/// place results. You may bias results to a specified circle by passing a
/// `location` and a `radius` parameter. Doing so instructs the Places
/// service to prefer showing results within that circle; results outside of
/// the defined area may still be displayed. The radius will automatically
/// be clamped to a maximum value depending on the type of search and other
/// parameters.
///
/// * `strictbounds` ‧ Returns only those places that are strictly within
/// the region defined by `location` and `radius`. This is a restriction,
/// rather than a bias, meaning that results outside this region will not be
/// returned even if they match the user input.
pub fn with_strict_location_and_radius(
&'a mut self,
location: LatLng,
radius: u32,
) -> &'a mut Request {
// Set location in Request struct.
self.location = Some(location);
// Set radius in Request struct.
self.radius = Some(radius);
// Set strictbounds in Request struct:
self.strictbounds = Some(true);
// Return modified Request struct to caller.
self
} // fn
} // impl