pub struct Valhalla { /* private fields */ }
Expand description
A synchronous client for the Valhalla API
Implementations§
Source§impl Valhalla
impl Valhalla
Sourcepub fn route(&self, manifest: Manifest) -> Result<Trip, Error>
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();
Sourcepub fn matrix(&self, manifest: Manifest) -> Result<Response, Error>
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();
Sourcepub fn elevation(&self, manifest: Manifest) -> Result<Response, Error>
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();
Sourcepub fn status(&self, manifest: Manifest) -> Result<Response, Error>
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();