[−][src]Crate geo_clipper
This crate allows to perform boolean operations on polygons.
It makes use of clipper-sys which is a binding to the C++ version of Clipper.
Example
The following example shows how to compute the intersection of two polygons.
The intersection
method (as well as difference
, union
and xor
) is provided by the Clipper
trait which is implemented for some geo-types.
use geo_types::{Coordinate, LineString, Polygon}; use geo_clipper::Clipper; let subject = Polygon::new( LineString(vec![ Coordinate { x: 180.0, y: 200.0 }, Coordinate { x: 260.0, y: 200.0 }, Coordinate { x: 260.0, y: 150.0 }, Coordinate { x: 180.0, y: 150.0 }, ]), vec![LineString(vec![ Coordinate { x: 215.0, y: 160.0 }, Coordinate { x: 230.0, y: 190.0 }, Coordinate { x: 200.0, y: 190.0 }, ])], ); let clip = Polygon::new( LineString(vec![ Coordinate { x: 190.0, y: 210.0 }, Coordinate { x: 240.0, y: 210.0 }, Coordinate { x: 240.0, y: 130.0 }, Coordinate { x: 190.0, y: 130.0 }, ]), vec![], ); let result = subject.intersection(&clip, 1.0);
Traits
Clipper | This trait defines the boolean operations between polygons. |
ToOwnedPolygon |