pub struct Zollection<'a> { /* private fields */ }Expand description
Equivalent of a geo_types::GeometryCollection except it only contains:
- One multi points
- One multi lines
- One multi polygon
Everything else gets pushed in one of these three types. If the collection contains other collection they all get flatenned to fit in these three types.
Implementations§
Source§impl<'a> Zollection<'a>
impl<'a> Zollection<'a>
Sourcepub fn new(
bounding_box: &'a BoundingBox,
points: ZultiPoints<'a>,
lines: ZultiLines<'a>,
polygons: ZultiPolygons<'a>,
) -> Self
pub fn new( bounding_box: &'a BoundingBox, points: ZultiPoints<'a>, lines: ZultiLines<'a>, polygons: ZultiPolygons<'a>, ) -> Self
Create a Zollection from its bounding box, points, lines and polygons.
If the bounding box doesn’t properly bound the collection all the operations will breaks.
Sourcepub unsafe fn from_bytes(data: &'a [u8]) -> Self
pub unsafe fn from_bytes(data: &'a [u8]) -> Self
§Safety
The data must be generated from the Self::write_from_geometry method and be aligned on 64 bits
Sourcepub fn write_from_geometry(
writer: &mut Vec<u8>,
geometry: &GeometryCollection<f64>,
) -> Result<(), Error>
pub fn write_from_geometry( writer: &mut Vec<u8>, geometry: &GeometryCollection<f64>, ) -> Result<(), Error>
Convert the specified geo_types::GeometryCollection to a valid Zollection slice of bytes in the input buffer.
This is a destructive operation:
- The collection will be flattened as a list of points, lines and polygons
- If the polygons contains an interior, the information will be lost and ignored during operations.
Sourcepub fn bounding_box(&self) -> &'a BoundingBox
pub fn bounding_box(&self) -> &'a BoundingBox
Return the internal bounding box
Sourcepub fn points(&'a self) -> ZultiPoints<'a>
pub fn points(&'a self) -> ZultiPoints<'a>
Return all the points contained in the collection
Sourcepub fn lines(&'a self) -> ZultiLines<'a>
pub fn lines(&'a self) -> ZultiLines<'a>
Return all the lines contained in the collection
Sourcepub fn polygons(&'a self) -> ZultiPolygons<'a>
pub fn polygons(&'a self) -> ZultiPolygons<'a>
Return all the polygons contained in the collection
Sourcepub fn to_geo(&self) -> GeometryCollection<f64>
pub fn to_geo(&self) -> GeometryCollection<f64>
The geometry collection outputted is completely unrelated to the one inputted. It has been flattened and contains three parts:
- The multi-points
- The multi-lines
- The multi-polygons
Trait Implementations§
Source§impl<'a> Clone for Zollection<'a>
impl<'a> Clone for Zollection<'a>
Source§fn clone(&self) -> Zollection<'a>
fn clone(&self) -> Zollection<'a>
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl<'a> Debug for Zollection<'a>
impl<'a> Debug for Zollection<'a>
Source§impl<'a> RelationBetweenShapes<Zerometry<'a>> for Zollection<'a>
impl<'a> RelationBetweenShapes<Zerometry<'a>> for Zollection<'a>
Source§fn relation(
&self,
other: &Zerometry<'a>,
relation: InputRelation,
) -> OutputRelation
fn relation( &self, other: &Zerometry<'a>, relation: InputRelation, ) -> OutputRelation
InputRelation lets you specify the kind of relation you want to retrieve. Read moreSource§fn all_relation(&self, other: &Other) -> OutputRelation
fn all_relation(&self, other: &Other) -> OutputRelation
Source§fn any_relation(&self, other: &Other) -> OutputRelation
fn any_relation(&self, other: &Other) -> OutputRelation
Source§fn strict_contains(&self, other: &Other) -> bool
fn strict_contains(&self, other: &Other) -> bool
true if Self strictly contains Other.Source§fn strict_contained(&self, other: &Other) -> bool
fn strict_contained(&self, other: &Other) -> bool
true if Self is strictly contained in Other.Source§fn intersects(&self, other: &Other) -> bool
fn intersects(&self, other: &Other) -> bool
true if Self intersects with Other.Source§impl<'a> RelationBetweenShapes<Zine<'a>> for Zollection<'a>
impl<'a> RelationBetweenShapes<Zine<'a>> for Zollection<'a>
Source§fn relation(&self, other: &Zine<'a>, relation: InputRelation) -> OutputRelation
fn relation(&self, other: &Zine<'a>, relation: InputRelation) -> OutputRelation
InputRelation lets you specify the kind of relation you want to retrieve. Read moreSource§fn all_relation(&self, other: &Other) -> OutputRelation
fn all_relation(&self, other: &Other) -> OutputRelation
Source§fn any_relation(&self, other: &Other) -> OutputRelation
fn any_relation(&self, other: &Other) -> OutputRelation
Source§fn strict_contains(&self, other: &Other) -> bool
fn strict_contains(&self, other: &Other) -> bool
true if Self strictly contains Other.Source§fn strict_contained(&self, other: &Other) -> bool
fn strict_contained(&self, other: &Other) -> bool
true if Self is strictly contained in Other.Source§fn intersects(&self, other: &Other) -> bool
fn intersects(&self, other: &Other) -> bool
true if Self intersects with Other.Source§impl<'a> RelationBetweenShapes<Zoint<'a>> for Zollection<'a>
impl<'a> RelationBetweenShapes<Zoint<'a>> for Zollection<'a>
Source§fn relation(&self, other: &Zoint<'a>, relation: InputRelation) -> OutputRelation
fn relation(&self, other: &Zoint<'a>, relation: InputRelation) -> OutputRelation
InputRelation lets you specify the kind of relation you want to retrieve. Read moreSource§fn all_relation(&self, other: &Other) -> OutputRelation
fn all_relation(&self, other: &Other) -> OutputRelation
Source§fn any_relation(&self, other: &Other) -> OutputRelation
fn any_relation(&self, other: &Other) -> OutputRelation
Source§fn strict_contains(&self, other: &Other) -> bool
fn strict_contains(&self, other: &Other) -> bool
true if Self strictly contains Other.Source§fn strict_contained(&self, other: &Other) -> bool
fn strict_contained(&self, other: &Other) -> bool
true if Self is strictly contained in Other.Source§fn intersects(&self, other: &Other) -> bool
fn intersects(&self, other: &Other) -> bool
true if Self intersects with Other.Source§impl<'a> RelationBetweenShapes<Zollection<'a>> for Zerometry<'a>
impl<'a> RelationBetweenShapes<Zollection<'a>> for Zerometry<'a>
Source§fn relation(
&self,
other: &Zollection<'_>,
relation: InputRelation,
) -> OutputRelation
fn relation( &self, other: &Zollection<'_>, relation: InputRelation, ) -> OutputRelation
InputRelation lets you specify the kind of relation you want to retrieve. Read moreSource§fn all_relation(&self, other: &Other) -> OutputRelation
fn all_relation(&self, other: &Other) -> OutputRelation
Source§fn any_relation(&self, other: &Other) -> OutputRelation
fn any_relation(&self, other: &Other) -> OutputRelation
Source§fn strict_contains(&self, other: &Other) -> bool
fn strict_contains(&self, other: &Other) -> bool
true if Self strictly contains Other.Source§fn strict_contained(&self, other: &Other) -> bool
fn strict_contained(&self, other: &Other) -> bool
true if Self is strictly contained in Other.Source§fn intersects(&self, other: &Other) -> bool
fn intersects(&self, other: &Other) -> bool
true if Self intersects with Other.Source§impl<'a> RelationBetweenShapes<Zollection<'a>> for Zine<'a>
impl<'a> RelationBetweenShapes<Zollection<'a>> for Zine<'a>
Source§fn relation(
&self,
other: &Zollection<'a>,
relation: InputRelation,
) -> OutputRelation
fn relation( &self, other: &Zollection<'a>, relation: InputRelation, ) -> OutputRelation
InputRelation lets you specify the kind of relation you want to retrieve. Read moreSource§fn all_relation(&self, other: &Other) -> OutputRelation
fn all_relation(&self, other: &Other) -> OutputRelation
Source§fn any_relation(&self, other: &Other) -> OutputRelation
fn any_relation(&self, other: &Other) -> OutputRelation
Source§fn strict_contains(&self, other: &Other) -> bool
fn strict_contains(&self, other: &Other) -> bool
true if Self strictly contains Other.Source§fn strict_contained(&self, other: &Other) -> bool
fn strict_contained(&self, other: &Other) -> bool
true if Self is strictly contained in Other.Source§fn intersects(&self, other: &Other) -> bool
fn intersects(&self, other: &Other) -> bool
true if Self intersects with Other.Source§impl<'a> RelationBetweenShapes<Zollection<'a>> for Zoint<'a>
impl<'a> RelationBetweenShapes<Zollection<'a>> for Zoint<'a>
Source§fn relation(
&self,
other: &Zollection<'a>,
relation: InputRelation,
) -> OutputRelation
fn relation( &self, other: &Zollection<'a>, relation: InputRelation, ) -> OutputRelation
InputRelation lets you specify the kind of relation you want to retrieve. Read moreSource§fn all_relation(&self, other: &Other) -> OutputRelation
fn all_relation(&self, other: &Other) -> OutputRelation
Source§fn any_relation(&self, other: &Other) -> OutputRelation
fn any_relation(&self, other: &Other) -> OutputRelation
Source§fn strict_contains(&self, other: &Other) -> bool
fn strict_contains(&self, other: &Other) -> bool
true if Self strictly contains Other.Source§fn strict_contained(&self, other: &Other) -> bool
fn strict_contained(&self, other: &Other) -> bool
true if Self is strictly contained in Other.Source§fn intersects(&self, other: &Other) -> bool
fn intersects(&self, other: &Other) -> bool
true if Self intersects with Other.Source§impl<'a> RelationBetweenShapes<Zollection<'a>> for Zollection<'a>
impl<'a> RelationBetweenShapes<Zollection<'a>> for Zollection<'a>
Source§fn relation(
&self,
other: &Zollection<'a>,
relation: InputRelation,
) -> OutputRelation
fn relation( &self, other: &Zollection<'a>, relation: InputRelation, ) -> OutputRelation
InputRelation lets you specify the kind of relation you want to retrieve. Read moreSource§fn all_relation(&self, other: &Other) -> OutputRelation
fn all_relation(&self, other: &Other) -> OutputRelation
Source§fn any_relation(&self, other: &Other) -> OutputRelation
fn any_relation(&self, other: &Other) -> OutputRelation
Source§fn strict_contains(&self, other: &Other) -> bool
fn strict_contains(&self, other: &Other) -> bool
true if Self strictly contains Other.Source§fn strict_contained(&self, other: &Other) -> bool
fn strict_contained(&self, other: &Other) -> bool
true if Self is strictly contained in Other.Source§fn intersects(&self, other: &Other) -> bool
fn intersects(&self, other: &Other) -> bool
true if Self intersects with Other.Source§impl<'a> RelationBetweenShapes<Zollection<'a>> for Zolygon<'a>
impl<'a> RelationBetweenShapes<Zollection<'a>> for Zolygon<'a>
Source§fn relation(
&self,
other: &Zollection<'a>,
relation: InputRelation,
) -> OutputRelation
fn relation( &self, other: &Zollection<'a>, relation: InputRelation, ) -> OutputRelation
InputRelation lets you specify the kind of relation you want to retrieve. Read moreSource§fn all_relation(&self, other: &Other) -> OutputRelation
fn all_relation(&self, other: &Other) -> OutputRelation
Source§fn any_relation(&self, other: &Other) -> OutputRelation
fn any_relation(&self, other: &Other) -> OutputRelation
Source§fn strict_contains(&self, other: &Other) -> bool
fn strict_contains(&self, other: &Other) -> bool
true if Self strictly contains Other.Source§fn strict_contained(&self, other: &Other) -> bool
fn strict_contained(&self, other: &Other) -> bool
true if Self is strictly contained in Other.Source§fn intersects(&self, other: &Other) -> bool
fn intersects(&self, other: &Other) -> bool
true if Self intersects with Other.Source§impl<'a> RelationBetweenShapes<Zollection<'a>> for ZultiLines<'a>
impl<'a> RelationBetweenShapes<Zollection<'a>> for ZultiLines<'a>
Source§fn relation(
&self,
other: &Zollection<'a>,
relation: InputRelation,
) -> OutputRelation
fn relation( &self, other: &Zollection<'a>, relation: InputRelation, ) -> OutputRelation
InputRelation lets you specify the kind of relation you want to retrieve. Read moreSource§fn all_relation(&self, other: &Other) -> OutputRelation
fn all_relation(&self, other: &Other) -> OutputRelation
Source§fn any_relation(&self, other: &Other) -> OutputRelation
fn any_relation(&self, other: &Other) -> OutputRelation
Source§fn strict_contains(&self, other: &Other) -> bool
fn strict_contains(&self, other: &Other) -> bool
true if Self strictly contains Other.Source§fn strict_contained(&self, other: &Other) -> bool
fn strict_contained(&self, other: &Other) -> bool
true if Self is strictly contained in Other.Source§fn intersects(&self, other: &Other) -> bool
fn intersects(&self, other: &Other) -> bool
true if Self intersects with Other.Source§impl<'a> RelationBetweenShapes<Zollection<'a>> for ZultiPoints<'a>
impl<'a> RelationBetweenShapes<Zollection<'a>> for ZultiPoints<'a>
Source§fn relation(
&self,
other: &Zollection<'a>,
relation: InputRelation,
) -> OutputRelation
fn relation( &self, other: &Zollection<'a>, relation: InputRelation, ) -> OutputRelation
InputRelation lets you specify the kind of relation you want to retrieve. Read moreSource§fn all_relation(&self, other: &Other) -> OutputRelation
fn all_relation(&self, other: &Other) -> OutputRelation
Source§fn any_relation(&self, other: &Other) -> OutputRelation
fn any_relation(&self, other: &Other) -> OutputRelation
Source§fn strict_contains(&self, other: &Other) -> bool
fn strict_contains(&self, other: &Other) -> bool
true if Self strictly contains Other.Source§fn strict_contained(&self, other: &Other) -> bool
fn strict_contained(&self, other: &Other) -> bool
true if Self is strictly contained in Other.Source§fn intersects(&self, other: &Other) -> bool
fn intersects(&self, other: &Other) -> bool
true if Self intersects with Other.Source§impl<'a> RelationBetweenShapes<Zollection<'a>> for ZultiPolygons<'a>
impl<'a> RelationBetweenShapes<Zollection<'a>> for ZultiPolygons<'a>
Source§fn relation(
&self,
other: &Zollection<'a>,
relation: InputRelation,
) -> OutputRelation
fn relation( &self, other: &Zollection<'a>, relation: InputRelation, ) -> OutputRelation
InputRelation lets you specify the kind of relation you want to retrieve. Read moreSource§fn all_relation(&self, other: &Other) -> OutputRelation
fn all_relation(&self, other: &Other) -> OutputRelation
Source§fn any_relation(&self, other: &Other) -> OutputRelation
fn any_relation(&self, other: &Other) -> OutputRelation
Source§fn strict_contains(&self, other: &Other) -> bool
fn strict_contains(&self, other: &Other) -> bool
true if Self strictly contains Other.Source§fn strict_contained(&self, other: &Other) -> bool
fn strict_contained(&self, other: &Other) -> bool
true if Self is strictly contained in Other.Source§fn intersects(&self, other: &Other) -> bool
fn intersects(&self, other: &Other) -> bool
true if Self intersects with Other.Source§impl<'a> RelationBetweenShapes<Zolygon<'a>> for Zollection<'a>
impl<'a> RelationBetweenShapes<Zolygon<'a>> for Zollection<'a>
Source§fn relation(
&self,
other: &Zolygon<'a>,
relation: InputRelation,
) -> OutputRelation
fn relation( &self, other: &Zolygon<'a>, relation: InputRelation, ) -> OutputRelation
InputRelation lets you specify the kind of relation you want to retrieve. Read moreSource§fn all_relation(&self, other: &Other) -> OutputRelation
fn all_relation(&self, other: &Other) -> OutputRelation
Source§fn any_relation(&self, other: &Other) -> OutputRelation
fn any_relation(&self, other: &Other) -> OutputRelation
Source§fn strict_contains(&self, other: &Other) -> bool
fn strict_contains(&self, other: &Other) -> bool
true if Self strictly contains Other.Source§fn strict_contained(&self, other: &Other) -> bool
fn strict_contained(&self, other: &Other) -> bool
true if Self is strictly contained in Other.Source§fn intersects(&self, other: &Other) -> bool
fn intersects(&self, other: &Other) -> bool
true if Self intersects with Other.Source§impl<'a> RelationBetweenShapes<ZultiLines<'a>> for Zollection<'a>
impl<'a> RelationBetweenShapes<ZultiLines<'a>> for Zollection<'a>
Source§fn relation(
&self,
other: &ZultiLines<'a>,
relation: InputRelation,
) -> OutputRelation
fn relation( &self, other: &ZultiLines<'a>, relation: InputRelation, ) -> OutputRelation
InputRelation lets you specify the kind of relation you want to retrieve. Read moreSource§fn all_relation(&self, other: &Other) -> OutputRelation
fn all_relation(&self, other: &Other) -> OutputRelation
Source§fn any_relation(&self, other: &Other) -> OutputRelation
fn any_relation(&self, other: &Other) -> OutputRelation
Source§fn strict_contains(&self, other: &Other) -> bool
fn strict_contains(&self, other: &Other) -> bool
true if Self strictly contains Other.Source§fn strict_contained(&self, other: &Other) -> bool
fn strict_contained(&self, other: &Other) -> bool
true if Self is strictly contained in Other.Source§fn intersects(&self, other: &Other) -> bool
fn intersects(&self, other: &Other) -> bool
true if Self intersects with Other.Source§impl<'a> RelationBetweenShapes<ZultiPoints<'a>> for Zollection<'a>
impl<'a> RelationBetweenShapes<ZultiPoints<'a>> for Zollection<'a>
Source§fn relation(
&self,
other: &ZultiPoints<'a>,
relation: InputRelation,
) -> OutputRelation
fn relation( &self, other: &ZultiPoints<'a>, relation: InputRelation, ) -> OutputRelation
InputRelation lets you specify the kind of relation you want to retrieve. Read moreSource§fn all_relation(&self, other: &Other) -> OutputRelation
fn all_relation(&self, other: &Other) -> OutputRelation
Source§fn any_relation(&self, other: &Other) -> OutputRelation
fn any_relation(&self, other: &Other) -> OutputRelation
Source§fn strict_contains(&self, other: &Other) -> bool
fn strict_contains(&self, other: &Other) -> bool
true if Self strictly contains Other.Source§fn strict_contained(&self, other: &Other) -> bool
fn strict_contained(&self, other: &Other) -> bool
true if Self is strictly contained in Other.Source§fn intersects(&self, other: &Other) -> bool
fn intersects(&self, other: &Other) -> bool
true if Self intersects with Other.Source§impl<'a> RelationBetweenShapes<ZultiPolygons<'a>> for Zollection<'a>
impl<'a> RelationBetweenShapes<ZultiPolygons<'a>> for Zollection<'a>
Source§fn relation(
&self,
other: &ZultiPolygons<'a>,
relation: InputRelation,
) -> OutputRelation
fn relation( &self, other: &ZultiPolygons<'a>, relation: InputRelation, ) -> OutputRelation
InputRelation lets you specify the kind of relation you want to retrieve. Read moreSource§fn all_relation(&self, other: &Other) -> OutputRelation
fn all_relation(&self, other: &Other) -> OutputRelation
Source§fn any_relation(&self, other: &Other) -> OutputRelation
fn any_relation(&self, other: &Other) -> OutputRelation
Source§fn strict_contains(&self, other: &Other) -> bool
fn strict_contains(&self, other: &Other) -> bool
true if Self strictly contains Other.Source§fn strict_contained(&self, other: &Other) -> bool
fn strict_contained(&self, other: &Other) -> bool
true if Self is strictly contained in Other.Source§fn intersects(&self, other: &Other) -> bool
fn intersects(&self, other: &Other) -> bool
true if Self intersects with Other.impl<'a> Copy for Zollection<'a>
Auto Trait Implementations§
impl<'a> Freeze for Zollection<'a>
impl<'a> RefUnwindSafe for Zollection<'a>
impl<'a> Send for Zollection<'a>
impl<'a> Sync for Zollection<'a>
impl<'a> Unpin for Zollection<'a>
impl<'a> UnwindSafe for Zollection<'a>
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more