Struct geo::Polygon[][src]

pub struct Polygon<T> where
    T: CoordinateType
{ pub exterior: LineString<T>, pub interiors: Vec<LineString<T>>, }

A representation of an area. Its outer boundary is represented by a LineString that is both closed and simple

It has one exterior ring or shell, and zero or more interior rings, representing holes.

Polygons can be created from collections of Point-like objects, such as arrays or tuples:

use geo_types::{Point, LineString, Polygon};
let poly1 = Polygon::new(vec![[0., 0.], [10., 0.]].into(), vec![]);
let poly2 = Polygon::new(vec![(0., 0.), (10., 0.)].into(), vec![]);

Fields

Methods

impl<T> Polygon<T> where
    T: CoordinateType
[src]

Creates a new polygon.

use geo_types::{Point, LineString, Polygon};

let exterior = LineString(vec![Point::new(0., 0.), Point::new(1., 1.),
                               Point::new(1., 0.), Point::new(0., 0.)]);
let interiors = vec![LineString(vec![Point::new(0.1, 0.1), Point::new(0.9, 0.9),
                                     Point::new(0.9, 0.1), Point::new(0.1, 0.1)])];
let p = Polygon::new(exterior.clone(), interiors.clone());
assert_eq!(p.exterior, exterior);
assert_eq!(p.interiors, interiors);

impl<T> Polygon<T> where
    T: Float + Signed
[src]

Determine whether a Polygon is convex

Trait Implementations

impl<T> Clone for Polygon<T> where
    T: Clone + CoordinateType
[src]

Returns a copy of the value. Read more

Performs copy-assignment from source. Read more

impl<T> Debug for Polygon<T> where
    T: Debug + CoordinateType
[src]

Formats the value using the given formatter. Read more

impl<T> PartialEq<Polygon<T>> for Polygon<T> where
    T: PartialEq<T> + CoordinateType
[src]

This method tests for self and other values to be equal, and is used by ==. Read more

This method tests for !=.

impl<T> From<Polygon<T>> for Geometry<T> where
    T: CoordinateType
[src]

Performs the conversion.

impl<T> Centroid<T> for Polygon<T> where
    T: Float + FromPrimitive
[src]

See: https://en.wikipedia.org/wiki/Centroid Read more

impl<T> Contains<Point<T>> for Polygon<T> where
    T: Float
[src]

Checks if rhs is completely contained within self. Read more

impl<T> Contains<Line<T>> for Polygon<T> where
    T: Float
[src]

Checks if rhs is completely contained within self. Read more

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

Checks if rhs is completely contained within self. Read more

impl<T> Contains<LineString<T>> for Polygon<T> where
    T: Float
[src]

Checks if rhs is completely contained within self. Read more

impl<T> Intersects<Polygon<T>> for Line<T> where
    T: Float
[src]

Checks if the geometry A intersects the geometry B. Read more

impl<T> Intersects<Line<T>> for Polygon<T> where
    T: Float
[src]

Checks if the geometry A intersects the geometry B. Read more

impl<T> Intersects<LineString<T>> for Polygon<T> where
    T: Float
[src]

Checks if the geometry A intersects the geometry B. Read more

impl<T> Intersects<Polygon<T>> for LineString<T> where
    T: Float
[src]

Checks if the geometry A intersects the geometry B. Read more

impl<T> Intersects<Polygon<T>> for Bbox<T> where
    T: Float
[src]

Checks if the geometry A intersects the geometry B. Read more

impl<T> Intersects<Bbox<T>> for Polygon<T> where
    T: Float
[src]

Checks if the geometry A intersects the geometry B. Read more

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

Checks if the geometry A intersects the geometry B. Read more

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

Area of polygon. See: https://en.wikipedia.org/wiki/Polygon Read more

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

Minimum distance from a Point to a Polygon

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

Minimum distance from a Polygon to a Point

impl<T> EuclideanDistance<T, Polygon<T>> for LineString<T> where
    T: Float + FloatConst + Signed + SpadeFloat
[src]

LineString to Polygon

Returns the distance between two geometries Read more

impl<T> EuclideanDistance<T, LineString<T>> for Polygon<T> where
    T: Float + FloatConst + Signed + SpadeFloat
[src]

Polygon to LineString distance

Returns the distance between two geometries Read more

impl<T> EuclideanDistance<T, Polygon<T>> for Line<T> where
    T: Float + Signed + SpadeFloat + FloatConst
[src]

Returns the distance between two geometries Read more

impl<T> EuclideanDistance<T, Line<T>> for Polygon<T> where
    T: Float + FloatConst + Signed + SpadeFloat
[src]

Returns the distance between two geometries Read more

impl<T> EuclideanDistance<T, Polygon<T>> for Polygon<T> where
    T: Float + FloatConst + SpadeFloat
[src]

This implementation has a "fast path" in cases where both input polygons are convex: it switches to an implementation of the "rotating calipers" method described in Pirzadeh (1999), pp24—30, which is approximately an order of magnitude faster than the standard method.

impl<T> BoundingBox<T> for Polygon<T> where
    T: CoordinateType
[src]

Return the BoundingBox for a Polygon

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

Returns the simplified representation of a geometry, using the Ramer–Douglas–Peucker algorithm Read more

impl<T> SimplifyVWPreserve<T> for Polygon<T> where
    T: Float + SpadeFloat
[src]

Returns the simplified representation of a geometry, using a topology-preserving variant of the Visvalingam-Whyatt algorithm. Read more

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

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

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

Returns the convex hull of a Polygon. The hull is always oriented counter-clockwise. Read more

impl<T> Orient<T> for Polygon<T> where
    T: CoordinateType
[src]

Orients a Polygon's exterior and interior rings according to convention Read more

impl<T> ExtremeIndices<T> for Polygon<T> where
    T: Float + Signed
[src]

Find the extreme x and y indices of a convex Polygon Read more

impl<T> Rotate<T> for Polygon<T> where
    T: Float + FromPrimitive
[src]

Rotate the Polygon about its centroid by the given number of degrees

impl<T: CoordinateType, NT: CoordinateType> MapCoords<T, NT> for Polygon<T>
[src]

Apply a function to all the coordinates in a geometric object, returning a new object. Read more

impl<T: CoordinateType, NT: CoordinateType> TryMapCoords<T, NT> for Polygon<T>
[src]

Map a fallible function over all the coordinates in a geometry, returning a Result Read more

impl<T: CoordinateType> MapCoordsInplace<T> for Polygon<T>
[src]

Apply a function to all the coordinates in a geometric object, in place Read more

impl<F: Float> ClosestPoint<F> for Polygon<F>
[src]

Find the closest point between self and p.

Auto Trait Implementations

impl<T> Send for Polygon<T> where
    T: Send

impl<T> Sync for Polygon<T> where
    T: Sync