Crate valhalla_client

Source
Expand description

§Rust API client for Valhalla

This crate contains the types and functions for interacting with the Valhalla API.

These APIs are implemented:

§Features and usage

We provide two clients:

The second one is behind the (default-enabled) blocking feature, so if you don’t need it, you can disable it via default-features = false.

We also offer the (default-enabled) gpx feature. This enables reading and writing GPX (GPS Exchange Format) files for APIs where we have the needed context.

§Example

// an async version is available at valhalla_client::Valhalla
use valhalla_client::blocking::Valhalla;
use valhalla_client::route::{Location, Manifest};
use valhalla_client::costing::{Costing};

let valhalla = Valhalla::default();

let amsterdam = Location::new(4.9041, 52.3676);
let utrecht = Location::new(5.1214, 52.0907);
let manifest = Manifest::builder()
    .locations([amsterdam, utrecht])
    .costing(Costing::Motorcycle(Default::default()));

let response = valhalla.route(manifest).unwrap();

println!("{:#?}", response);

// If the gpx feature is enabled, you can convert the response to a gpx::Gpx object
// let gpx = response.trip.into();

For further examples, please see the different clients:

Modules§

blocking
synchronous (“blocking”) client implementation
costing
costing model-configuration for different transport modes
elevation
Models connected to the elevation-api
matrix
Models connected to the Time-distance matrix-api
route
Models connected to the Turn-by-turn routeing-api
shapes
Shape decoding support for route and elevation
status
Models connected to the healthcheck via the status-API

Structs§

CodedDescription
A description with a code
DateTime
The local date and time at the location
RemoteError
An error response from the Valhalla API
Valhalla
async Valhalla client

Enums§

Error
An error that can occur when using the Valhalla API
Units
The units used for the response

Type Aliases§

Coordinate
A longitude, latitude coordinate in degrees