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
use crate::client::GoogleMapsClient;
use crate::places::place_search::text_search::request::Request;
// =============================================================================
impl<'a> Request<'a> {
// -------------------------------------------------------------------------
//
/// Initializes the builder pattern for a Places API _Text Search_ query
/// with the required, non-optional parameters.
///
/// ## Arguments:
///
/// * `client` ‧ Your application's Google Maps API client struct.
///
/// * `query` ‧ The text string on which to search, for example:
/// "restaurant" or "123 Main Street". This must a place name, address, or
/// category of establishments. Any other types of input can generate errors
/// and are not guaranteed to return valid results. The Google Places
/// service will return candidate matches based on this string and order the
/// results based on their perceived relevance.
///
/// * `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
/// * Nearby Search: 50,000 meters
pub fn new(
client: &GoogleMapsClient,
query: String,
radius: u32,
) -> Request {
// Instantiate struct and return it to caller:
Request {
// Required parameters:
client,
input: query,
radius,
// Optional parameters:
language: None,
location: None,
maxprice: None,
minprice: None,
opennow: None,
pagetoken: None,
region: None,
place_type: None,
// Internal use only:
query: None,
} // struct
} // fn
} // impl