[−][src]Struct geocoding::opencage::Opencage
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]
&self,
point: &Point<T>
) -> Result<OpencageResponse<T>, GeocodingError> where
T: Float + DeserializeOwned,
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]
&self,
place: &str,
bounds: U
) -> Result<OpencageResponse<T>, GeocodingError> where
T: Float + DeserializeOwned,
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_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]
T: Float + DeserializeOwned,
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]
T: Float + DeserializeOwned,
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]
T: 'static + ?Sized,
impl<T> Borrow<T> for T where
T: ?Sized,
[src]
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
[src]
T: ?Sized,
fn borrow_mut(&mut self) -> &mut T
[src]
impl<T> From<T> for T
[src]
impl<T, U> Into<U> for T where
U: From<T>,
[src]
U: From<T>,
impl<T, U> TryFrom<U> for T where
U: Into<T>,
[src]
U: Into<T>,
type Error = Infallible
The type returned in the event of a conversion error.
fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>
[src]
impl<T, U> TryInto<U> for T where
U: TryFrom<T>,
[src]
U: TryFrom<T>,