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§
Sourcefn frechet_distance(&self, ls_1: &LineString<F>, ls_2: &LineString<F>) -> F
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);