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
DateTime
The local date and time at the location
RemoteError
Valhalla

Enums§

Error
Units

Type Aliases§

Coordinate
A longitude, latitude coordinate in degrees