[][src]Trait geo::algorithm::simplifyvw::SimplifyVW

pub trait SimplifyVW<T, Epsilon = T> {
    fn simplifyvw(&self, epsilon: &T) -> Self
    where
        T: Float
; }

Simplifies a geometry.

Polygons are simplified by running the algorithm on all their constituent rings. This may result in invalid Polygons, and has no guarantee of preserving topology. Multi* objects are simplified by simplifying all their constituent geometries individually.

Required methods

fn simplifyvw(&self, epsilon: &T) -> Self where
    T: Float

Returns the simplified representation of a geometry, using the Visvalingam-Whyatt algorithm

See here for a graphical explanation

Examples

use geo::algorithm::simplifyvw::SimplifyVW;
use geo::line_string;

let line_string = line_string![
    (x: 5.0, y: 2.0),
    (x: 3.0, y: 8.0),
    (x: 6.0, y: 20.0),
    (x: 7.0, y: 25.0),
    (x: 10.0, y: 10.0),
];

let simplified = line_string.simplifyvw(&30.0);

let expected = line_string![
    (x: 5.0, y: 2.0),
    (x: 7.0, y: 25.0),
    (x: 10.0, y: 10.0),
];

assert_eq!(expected, simplified);
Loading content...

Implementors

impl<T> SimplifyVW<T, T> for LineString<T> where
    T: Float
[src]

impl<T> SimplifyVW<T, T> for MultiLineString<T> where
    T: Float
[src]

impl<T> SimplifyVW<T, T> for MultiPolygon<T> where
    T: Float
[src]

impl<T> SimplifyVW<T, T> for Polygon<T> where
    T: Float
[src]

Loading content...