[][src]Struct geocoding::opencage::Opencage

pub struct Opencage<'a> {
    pub parameters: Parameters<'a>,
    // some fields omitted
}

An instance of the Opencage Geocoding service

Fields

parameters: Parameters<'a>

Implementations

impl<'a> Opencage<'a>[src]

pub fn new(api_key: String) -> Self[src]

Create a new OpenCage geocoding instance

pub fn remaining_calls(&self) -> Option<i32>[src]

Retrieve the remaining API calls in your daily quota

Initially, this value is None. Any OpenCage API call using a "Free Tier" key will update this value to reflect the remaining quota for the API key. See the API docs for details.

pub fn reverse_full<T>(
    &self,
    point: &Point<T>
) -> Result<OpencageResponse<T>, GeocodingError> where
    T: Float + DeserializeOwned
[src]

A reverse lookup of a point, returning an annotated response.

This method passes the no_record parameter to the API.

Examples

 use geocoding::{Opencage, Point};

 let oc = Opencage::new("dcdbf0d783374909b3debee728c7cc10".to_string());
 let p = Point::new(2.12870, 41.40139);
 // a full `OpencageResponse` struct
 let res = oc.reverse_full(&p).unwrap();
 // responses may include multiple results
 let first_result = &res.results[0];
 assert_eq!(
     first_result.components["road"],
     "Carrer de Calatrava"
 );

pub fn forward_full<T, U>(
    &self,
    place: &str,
    bounds: U
) -> Result<OpencageResponse<T>, GeocodingError> where
    T: Float + DeserializeOwned,
    U: Into<Option<InputBounds<T>>>, 
[src]

A forward-geocoding lookup of an address, returning an annotated response.

it is recommended that you restrict the search space by passing a bounding box to search within. If you don't need or want to restrict the search using a bounding box (usually not recommended), you may pass the NOBOX static value instead.

Please see the documentation for details of best practices in order to obtain good-quality results.

This method passes the no_record parameter to the API.

Examples

 use geocoding::{Opencage, InputBounds, Point};

 let oc = Opencage::new("dcdbf0d783374909b3debee728c7cc10".to_string());
 let address = "UCL CASA";
 // Optionally restrict the search space using a bounding box.
 // The first point is the bottom-left corner, the second is the top-right.
 let bbox = InputBounds::new(
     Point::new(-0.13806939125061035, 51.51989264641164),
     Point::new(-0.13427138328552246, 51.52319711775629),
 );
 let res = oc.forward_full(&address, bbox).unwrap();
 let first_result = &res.results[0];
 // the first result is correct
 assert_eq!(first_result.formatted, "UCL, 188 Tottenham Court Road, London W1T 7PQ, United Kingdom");
// You can pass NOBOX if you don't need bounds.
use geocoding::{Opencage, InputBounds, Point};
use geocoding::opencage::{NOBOX};
let oc = Opencage::new("dcdbf0d783374909b3debee728c7cc10".to_string());
let address = "Moabit, Berlin";
let res = oc.forward_full(&address, NOBOX).unwrap();
let first_result = &res.results[0];
assert_eq!(
    first_result.formatted,
    "Moabit, Berlin, Germany"
);
// There are several ways to construct a Point, such as from a tuple
use geocoding::{Opencage, InputBounds, Point};
let oc = Opencage::new("dcdbf0d783374909b3debee728c7cc10".to_string());
let address = "UCL CASA";
let bbox = InputBounds::new(
    (-0.13806939125061035, 51.51989264641164),
    (-0.13427138328552246, 51.52319711775629),
);
let res = oc.forward_full(&address, bbox).unwrap();
let first_result = &res.results[0];
assert_eq!(
    first_result.formatted,
    "UCL, 188 Tottenham Court Road, London W1T 7PQ, United Kingdom"
);

Trait Implementations

impl<'a, T> Forward<T> for Opencage<'a> where
    T: Float + DeserializeOwned
[src]

fn forward(&self, place: &str) -> Result<Vec<Point<T>>, GeocodingError>[src]

A forward-geocoding lookup of an address. Please see the documentation for details of best practices in order to obtain good-quality results.

This method passes the no_annotations and no_record parameters to the API.

impl<'a, T> Reverse<T> for Opencage<'a> where
    T: Float + DeserializeOwned
[src]

fn reverse(&self, point: &Point<T>) -> Result<Option<String>, GeocodingError>[src]

A reverse lookup of a point. More detail on the format of the returned String can be found here

This method passes the no_annotations and no_record parameters to the API.

Auto Trait Implementations

impl<'a> !RefUnwindSafe for Opencage<'a>

impl<'a> Send for Opencage<'a>

impl<'a> Sync for Opencage<'a>

impl<'a> Unpin for Opencage<'a>

impl<'a> !UnwindSafe for Opencage<'a>

Blanket Implementations

impl<T> Any for T where
    T: 'static + ?Sized
[src]

impl<T> Borrow<T> for T where
    T: ?Sized
[src]

impl<T> BorrowMut<T> for T where
    T: ?Sized
[src]

impl<T> From<T> for T[src]

impl<T> Instrument for T[src]

impl<T, U> Into<U> for T where
    U: From<T>, 
[src]

impl<T, U> TryFrom<U> for T where
    U: Into<T>, 
[src]

type Error = Infallible

The type returned in the event of a conversion error.

impl<T, U> TryInto<U> for T where
    U: TryFrom<T>, 
[src]

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.