[][src]Struct geo::MultiPoint

pub struct MultiPoint<T>(pub Vec<Point<T>, Global>)
where
    T: CoordinateType
;

A collection of Points. Can be created from a Vec of Points, or from an Iterator which yields Points. Iterating over this object yields the component Points.

Semantics

The interior and the boundary are the union of the interior and the boundary of the constituent points. In particular, the boundary of a MultiPoint is always empty.

Examples

Iterating over a MultiPoint yields the Points inside.

use geo_types::{MultiPoint, Point};
let points: MultiPoint<_> = vec![(0., 0.), (1., 2.)].into();
for point in points {
    println!("Point x = {}, y = {}", point.x(), point.y());
}

Implementations

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

pub fn iter(&self) -> impl Iterator<Item = &Point<T>>[src]

pub fn iter_mut(&mut self) -> impl Iterator<Item = &mut Point<T>>[src]

Trait Implementations

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

impl<T> BoundingRect<T> for MultiPoint<T> where
    T: CoordinateType
[src]

type Output = Option<Rect<T>>

pub fn bounding_rect(&self) -> Self::Output[src]

Return the BoundingRect for a MultiPoint

impl<T> Centroid for MultiPoint<T> where
    T: Float
[src]

use geo::algorithm::centroid::Centroid;
use geo::{MultiPoint, Point};

let empty: Vec<Point<f64>> = Vec::new();
let empty_multi_points: MultiPoint<_> = empty.into();
assert_eq!(empty_multi_points.centroid(), None);

let points: MultiPoint<_> = vec![(5., 1.), (1., 3.), (3., 2.)].into();
assert_eq!(points.centroid(), Some(Point::new(3., 2.)));

type Output = Option<Point<T>>

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

impl<F: Float> ClosestPoint<F, Point<F>> for MultiPoint<F>[src]

impl<T> ConcaveHull for MultiPoint<T> where
    T: Float + RTreeNum + HasKernel, 
[src]

type Scalar = T

impl<G, T> Contains<G> for MultiPoint<T> where
    T: CoordinateType,
    Point<T>: Contains<G>, 
[src]

impl<T> ConvexHull for MultiPoint<T> where
    T: HasKernel, 
[src]

type Scalar = T

impl<T> CoordinatePosition for MultiPoint<T> where
    T: HasKernel, 
[src]

type Scalar = T

impl<'a, T: CoordinateType + 'a> CoordsIter<'a, T> for MultiPoint<T>[src]

type Iter = Flatten<MapCoordsIter<'a, T, Iter<'a, Point<T>>, Point<T>>>

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

impl<T> Eq for MultiPoint<T> where
    T: Eq + CoordinateType
[src]

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

pub fn euclidean_distance(&self, points: &MultiPoint<T>) -> T[src]

Minimum distance from a Point to a MultiPoint

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

pub fn euclidean_distance(&self, point: &Point<T>) -> T[src]

Minimum distance from a MultiPoint to a Point

impl<T> ExtremeIndices for MultiPoint<T> where
    T: Signed + HasKernel, 
[src]

impl<T, IP> From<IP> for MultiPoint<T> where
    IP: Into<Point<T>>,
    T: CoordinateType
[src]

pub fn from(x: IP) -> MultiPoint<T>[src]

Convert a single Point (or something which can be converted to a Point) into a one-member MultiPoint

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

impl<T, IP> From<Vec<IP, Global>> for MultiPoint<T> where
    IP: Into<Point<T>>,
    T: CoordinateType
[src]

pub fn from(v: Vec<IP, Global>) -> MultiPoint<T>[src]

Convert a Vec of Points (or Vec of things which can be converted to a Point) into a MultiPoint.

impl<T, IP> FromIterator<IP> for MultiPoint<T> where
    IP: Into<Point<T>>,
    T: CoordinateType
[src]

pub fn from_iter<I>(iter: I) -> MultiPoint<T> where
    I: IntoIterator<Item = IP>, 
[src]

Collect the results of a Point iterator into a MultiPoint

impl<C: CoordinateType> HasDimensions for MultiPoint<C>[src]

impl<T> Hash for MultiPoint<T> where
    T: Hash + CoordinateType
[src]

impl<T, G> Intersects<G> for MultiPoint<T> where
    T: CoordinateType,
    Point<T>: Intersects<G>, 
[src]

impl<T> Intersects<MultiPoint<T>> for Coordinate<T> where
    MultiPoint<T>: Intersects<Coordinate<T>>,
    T: CoordinateType
[src]

impl<T> Intersects<MultiPoint<T>> for Line<T> where
    MultiPoint<T>: Intersects<Line<T>>,
    T: CoordinateType
[src]

impl<T> Intersects<MultiPoint<T>> for Polygon<T> where
    MultiPoint<T>: Intersects<Polygon<T>>,
    T: CoordinateType
[src]

impl<T> Intersects<MultiPoint<T>> for Rect<T> where
    MultiPoint<T>: Intersects<Rect<T>>,
    T: CoordinateType
[src]

impl<'a, T> IntoIterator for &'a mut MultiPoint<T> where
    T: CoordinateType
[src]

type Item = &'a mut Point<T>

The type of the elements being iterated over.

type IntoIter = IterMut<'a, Point<T>>

Which kind of iterator are we turning this into?

impl<T> IntoIterator for MultiPoint<T> where
    T: CoordinateType
[src]

Iterate over the Points in this MultiPoint.

type Item = Point<T>

The type of the elements being iterated over.

type IntoIter = IntoIter<Point<T>, Global>

Which kind of iterator are we turning this into?

impl<'a, T> IntoIterator for &'a MultiPoint<T> where
    T: CoordinateType
[src]

type Item = &'a Point<T>

The type of the elements being iterated over.

type IntoIter = Iter<'a, Point<T>>

Which kind of iterator are we turning this into?

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

type Output = MultiPoint<NT>

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

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

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

pub fn rotate(&self, angle: T) -> Self[src]

Rotate the contained Points about their centroids by the given number of degrees

impl<T> StructuralEq for MultiPoint<T> where
    T: CoordinateType
[src]

impl<T> StructuralPartialEq for MultiPoint<T> where
    T: CoordinateType
[src]

impl<T> TryFrom<Geometry<T>> for MultiPoint<T> where
    T: Float
[src]

type Error = FailedToConvertError

The type returned in the event of a conversion error.

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

type Output = MultiPoint<NT>

Auto Trait Implementations

impl<T> RefUnwindSafe for MultiPoint<T> where
    T: RefUnwindSafe

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

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

impl<T> Unpin for MultiPoint<T> where
    T: Unpin

impl<T> UnwindSafe for MultiPoint<T> where
    T: UnwindSafe

Blanket Implementations

impl<T> Any for T where
    T: 'static + ?Sized
[src]

impl<T> Borrow<T> for T where
    T: ?Sized
[src]

impl<T> BorrowMut<T> for T where
    T: ?Sized
[src]

impl<T, G> ExtremePoints for G where
    G: ConvexHull<Scalar = T> + ExtremeIndices,
    T: Signed + HasKernel, 
[src]

type Scalar = T

impl<T> From<T> for T[src]

impl<T, U> Into<U> for T where
    U: From<T>, 
[src]

impl<T, G> RotatePoint<T> for G where
    G: MapCoords<T, T, Output = G>,
    T: Float
[src]

impl<T> Same<T> for T

type Output = T

Should always be Self

impl<T> ToOwned for T where
    T: Clone
[src]

type Owned = T

The resulting type after obtaining ownership.

impl<T, G> Translate<T> for G where
    G: MapCoords<T, T, Output = G> + MapCoordsInplace<T>,
    T: CoordinateType
[src]

impl<T, U> TryFrom<U> for T where
    U: Into<T>, 
[src]

type Error = Infallible

The type returned in the event of a conversion error.

impl<T, U> TryInto<U> for T where
    U: TryFrom<T>, 
[src]

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.