Struct Valhalla

Source
pub struct Valhalla { /* private fields */ }
Expand description

A synchronous client for the Valhalla API

Implementations§

Source§

impl Valhalla

Source

pub fn new(base_url: Url) -> Self

Create a sync Valhalla client

Source

pub fn route(&self, manifest: Manifest) -> Result<Trip, Error>

Make a turn-by-turn routing request

See https://valhalla.github.io/valhalla/api/turn-by-turn/api-reference for details

§Example:
use valhalla_client::blocking::Valhalla;
use valhalla_client::route::{Location, Manifest,};
use valhalla_client::costing::Costing;

let amsterdam = Location::new(4.9041, 52.3676);
let utrecht = Location::new(5.1214, 52.0907);

let manifest = Manifest::builder()
  .locations([utrecht,amsterdam])
  .alternates(2)
  .costing(Costing::Auto(Default::default()))
  .language("de-De");

let response = Valhalla::default().route(manifest).unwrap();
Source

pub fn matrix(&self, manifest: Manifest) -> Result<Response, Error>

Make a time-distance matrix routing request

See https://valhalla.github.io/valhalla/api/matrix/api-reference for details

§Example:
use valhalla_client::blocking::Valhalla;
use valhalla_client::matrix::{DateTime, Location, Manifest,};
use valhalla_client::costing::Costing;

let amsterdam = Location::new(4.9041, 52.3676);
let utrecht = Location::new(5.1214, 52.0907);
let rotterdam = Location::new(4.4775302894411, 51.92485867761482);
let den_haag = Location::new(4.324908478055228, 52.07934071633195);

let manifest = Manifest::builder()
  .verbose_output(true)
  .sources_to_targets([utrecht],[amsterdam,rotterdam,den_haag])
  .date_time(DateTime::from_departure_time(chrono::Local::now().naive_local()))
  .costing(Costing::Auto(Default::default()));

let response = Valhalla::default()
  .matrix(manifest)
  .unwrap();
Source

pub fn elevation(&self, manifest: Manifest) -> Result<Response, Error>

Make an elevation request

Valhalla’s elevation lookup service provides digital elevation model (DEM) data as the result of a query. The elevation service data has many applications when combined with other routing and navigation data, including computing the steepness of roads and paths or generating an elevation profile chart along a route.

For example, you can get elevation data for a point, a trail, or a trip. You might use the results to consider hills for your bicycle trip, or when estimating battery usage for trips in electric vehicles.

See https://valhalla.github.io/valhalla/api/elevation/api-reference/ for details

§Example:
use valhalla_client::blocking::Valhalla;
use valhalla_client::elevation::Manifest;

let request = Manifest::builder()
  .shape([
    (40.712431, -76.504916),
    (40.712275, -76.605259),
    (40.712122, -76.805694),
    (40.722431, -76.884916),
    (40.812275, -76.905259),
    (40.912122, -76.965694),
  ])
  .include_range();
let response = Valhalla::default()
  .elevation(request).unwrap();
Source

pub fn status(&self, manifest: Manifest) -> Result<Response, Error>

Make a status request

This can be used as a health endpoint for the HTTP API or to toggle features in a frontend.

See https://valhalla.github.io/valhalla/api/status/api-reference/ for details

§Example:
use valhalla_client::blocking::Valhalla;
use valhalla_client::status::Manifest;

let request = Manifest::builder()
  .verbose_output(false);
let response = Valhalla::default()
  .status(request).unwrap();

Trait Implementations§

Source§

impl Clone for Valhalla

Source§

fn clone(&self) -> Valhalla

Returns a copy of the value. Read more
1.0.0 · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Debug for Valhalla

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl Default for Valhalla

Source§

fn default() -> Self

Returns the “default value” for a type. Read more

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T> Instrument for T

Source§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
Source§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

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

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
Source§

impl<T> WithSubscriber for T

Source§

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
Source§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

impl<T> ErasedDestructor for T
where T: 'static,

Source§

impl<T> MaybeSendSync for T