FrechetDistance

Trait FrechetDistance 

Source
pub trait FrechetDistance<F: CoordFloat>: Distance<F, Point<F>, Point<F>> {
    // Required method
    fn frechet_distance(&self, ls_1: &LineString<F>, ls_2: &LineString<F>) -> F;
}
Expand description

Determine the similarity between two LineStrings using the Frechet distance.

Based on Computing Discrete Frechet Distance by T. Eiter and H. Mannila.

Required Methods§

Source

fn frechet_distance(&self, ls_1: &LineString<F>, ls_2: &LineString<F>) -> F

Returns the Fréchet distance between two LineStrings.

See specific implementations for details.

§Examples
use geo::line_measures::FrechetDistance;
use geo::{Haversine, Euclidean, LineString, HaversineMeasure};
use geo::line_string;

let line_1 = line_string![
    (x: 0., y: 0.),
    (x: 1., y: 1.)
];
let line_2 = line_string![
    (x: 0., y: 1.),
    (x: 1., y: 2.)
];

// Using Euclidean distance
let euclidean_distance = Euclidean.frechet_distance(&line_1, &line_2);

// Using Haversine distance for geographic coordinates
let haversine_distance = Haversine.frechet_distance(&line_1, &line_2);

// Using parameterized Haversine for different planetary bodies
let mars_measure = HaversineMeasure::new(3389.5); // Mars radius in km
let mars_distance = mars_measure.frechet_distance(&line_1, &line_2);

Implementors§

Source§

impl<F, MetricSpace> FrechetDistance<F> for MetricSpace
where F: CoordFloat, MetricSpace: Distance<F, Point<F>, Point<F>>,