Trait geo::algorithm::simplify_vw::SimplifyVw
source · pub trait SimplifyVw<T, Epsilon = T> {
// Required method
fn simplify_vw(&self, epsilon: &T) -> Self
where T: CoordFloat;
}
Expand description
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.
An epsilon less than or equal to zero will return an unaltered version of the geometry.
Required Methods§
sourcefn simplify_vw(&self, epsilon: &T) -> Selfwhere
T: CoordFloat,
fn simplify_vw(&self, epsilon: &T) -> Selfwhere
T: CoordFloat,
Returns the simplified representation of a geometry, using the Visvalingam-Whyatt algorithm
See here for a graphical explanation
§Note
The tolerance used to remove a point is epsilon
, in keeping with GEOS. JTS uses epsilon ^ 2
.
§Examples
use geo::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.simplify_vw(&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);
Object Safety§
This trait is not object safe.