pub struct Opencage<'a> {
pub parameters: Parameters<'a>,
/* private fields */
}
Expand description
An instance of the Opencage Geocoding service
Fields
parameters: Parameters<'a>
Implementations
sourceimpl<'a> Opencage<'a>
impl<'a> Opencage<'a>
sourcepub fn remaining_calls(&self) -> Option<i32>
pub fn remaining_calls(&self) -> Option<i32>
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.
sourcepub fn reverse_full<T>(
&self,
point: &Point<T>
) -> Result<OpencageResponse<T>, GeocodingError> where
T: Float + DeserializeOwned + Debug,
pub fn reverse_full<T>(
&self,
point: &Point<T>
) -> Result<OpencageResponse<T>, GeocodingError> where
T: Float + DeserializeOwned + Debug,
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"
);
sourcepub fn forward_full<T, U>(
&self,
place: &str,
bounds: U
) -> Result<OpencageResponse<T>, GeocodingError> where
T: Float + DeserializeOwned + Debug,
U: Into<Option<InputBounds<T>>>,
pub fn forward_full<T, U>(
&self,
place: &str,
bounds: U
) -> Result<OpencageResponse<T>, GeocodingError> where
T: Float + DeserializeOwned + Debug,
U: Into<Option<InputBounds<T>>>,
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!(first_result.formatted.contains("UCL, 188 Tottenham Court Road"));
// 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!(
first_result.formatted.contains(
"UCL, 188 Tottenham Court Road"
));
Trait Implementations
sourceimpl<'a, T> Forward<T> for Opencage<'a> where
T: Float + DeserializeOwned + Debug,
impl<'a, T> Forward<T> for Opencage<'a> where
T: Float + DeserializeOwned + Debug,
sourcefn forward(&self, place: &str) -> Result<Vec<Point<T>>, GeocodingError>
fn forward(&self, place: &str) -> Result<Vec<Point<T>>, GeocodingError>
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.
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
sourceimpl<T> BorrowMut<T> for T where
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
const: unstable · sourcefn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
sourceimpl<T> Instrument for T
impl<T> Instrument for T
sourcefn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
sourcefn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
sourceimpl<T> WithSubscriber for T
impl<T> WithSubscriber for T
sourcefn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self> where
S: Into<Dispatch>,
fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self> where
S: Into<Dispatch>,
Attaches the provided Subscriber
to this type, returning a
WithDispatch
wrapper. Read more
sourcefn with_current_subscriber(self) -> WithDispatch<Self>
fn with_current_subscriber(self) -> WithDispatch<Self>
Attaches the current default Subscriber
to this type, returning a
WithDispatch
wrapper. Read more