Trait geo::algorithm::area::Area[][src]

pub trait Area<T> where
    T: CoordNum
{ fn signed_area(&self) -> T;
fn unsigned_area(&self) -> T; }

Signed and unsigned planar area of a geometry.

Examples

use geo::polygon;
use geo::algorithm::area::Area;

let mut polygon = polygon![
    (x: 0., y: 0.),
    (x: 5., y: 0.),
    (x: 5., y: 6.),
    (x: 0., y: 6.),
    (x: 0., y: 0.),
];

assert_eq!(polygon.signed_area(), 30.);
assert_eq!(polygon.unsigned_area(), 30.);

polygon.exterior_mut(|line_string| {
    line_string.0.reverse();
});

assert_eq!(polygon.signed_area(), -30.);
assert_eq!(polygon.unsigned_area(), 30.);

Required methods

fn signed_area(&self) -> T[src]

fn unsigned_area(&self) -> T[src]

Loading content...

Implementors

impl<T> Area<T> for Geometry<T> where
    T: CoordFloat
[src]

impl<T> Area<T> for GeometryCollection<T> where
    T: CoordFloat
[src]

impl<T> Area<T> for Line<T> where
    T: CoordNum
[src]

impl<T> Area<T> for LineString<T> where
    T: CoordNum
[src]

impl<T> Area<T> for MultiLineString<T> where
    T: CoordNum
[src]

impl<T> Area<T> for MultiPoint<T> where
    T: CoordNum
[src]

impl<T> Area<T> for MultiPolygon<T> where
    T: CoordFloat
[src]

Note. The implementation is a straight-forward summation of the signed areas of the individual polygons. In particular, unsigned_area is not necessarily the sum of the unsigned_area of the constituent polygons unless they are all oriented the same.

impl<T> Area<T> for Point<T> where
    T: CoordNum
[src]

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

Note. The implementation handles polygons whose holes do not all have the same orientation. The sign of the output is the same as that of the exterior shell.

impl<T> Area<T> for Rect<T> where
    T: CoordNum
[src]

Because a Rect has no winding order, the area will always be positive.

impl<T> Area<T> for Triangle<T> where
    T: CoordFloat
[src]

Loading content...