pub enum GeometryArray<O: OffsetSizeTrait> {
    Point(PointArray),
    LineString(LineStringArray<O>),
    Polygon(PolygonArray<O>),
    MultiPoint(MultiPointArray<O>),
    MultiLineString(MultiLineStringArray<O>),
    MultiPolygon(MultiPolygonArray<O>),
    Rect(RectArray),
}
Expand description

A GeometryArray is an enum over the various underlying zero copy GeoArrow array types.

Notably this does not include WKBArray as a variant, because that is not zero-copy to parse.

Variants§

§

Point(PointArray)

§

LineString(LineStringArray<O>)

§

Polygon(PolygonArray<O>)

§

MultiPoint(MultiPointArray<O>)

§

MultiLineString(MultiLineStringArray<O>)

§

MultiPolygon(MultiPolygonArray<O>)

§

Rect(RectArray)

Trait Implementations§

source§

impl<O: OffsetSizeTrait> AffineOps<AffineTransform> for GeometryArray<O>

source§

fn affine_transform(&self, transform: &AffineTransform) -> Self

Apply transform immutably, outputting a new geometry.
source§

impl<O: OffsetSizeTrait> AffineOps<Vec<AffineTransform>> for GeometryArray<O>

source§

fn affine_transform(&self, transform: &Vec<AffineTransform>) -> Self

Apply transform immutably, outputting a new geometry.
source§

impl<O: OffsetSizeTrait> Area for GeometryArray<O>

source§

impl<O: OffsetSizeTrait> BoundingRect for GeometryArray<O>

source§

fn bounding_rect(&self) -> RectArray

Return the bounding rectangle of a geometry Read more
source§

impl<O: OffsetSizeTrait> Center for GeometryArray<O>

source§

impl<O: OffsetSizeTrait> Centroid for GeometryArray<O>

source§

impl<O: OffsetSizeTrait> ChamberlainDuquetteArea for GeometryArray<O>

source§

impl<O: Clone + OffsetSizeTrait> Clone for GeometryArray<O>

source§

fn clone(&self) -> GeometryArray<O>

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl<O: OffsetSizeTrait> ConvexHull<O> for GeometryArray<O>

source§

impl<O: Debug + OffsetSizeTrait> Debug for GeometryArray<O>

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl From<GeometryArray<i32>> for GeometryArray<i64>

source§

fn from(value: GeometryArray<i32>) -> Self

Converts to this type from the input type.
source§

impl<O: OffsetSizeTrait> From<LineStringArray<O>> for GeometryArray<O>

source§

fn from(value: LineStringArray<O>) -> Self

Converts to this type from the input type.
source§

impl<O: OffsetSizeTrait> From<MultiLineStringArray<O>> for GeometryArray<O>

source§

fn from(value: MultiLineStringArray<O>) -> Self

Converts to this type from the input type.
source§

impl<O: OffsetSizeTrait> From<MultiPointArray<O>> for GeometryArray<O>

source§

fn from(value: MultiPointArray<O>) -> Self

Converts to this type from the input type.
source§

impl<O: OffsetSizeTrait> From<MultiPolygonArray<O>> for GeometryArray<O>

source§

fn from(value: MultiPolygonArray<O>) -> Self

Converts to this type from the input type.
source§

impl<O: OffsetSizeTrait> From<PointArray> for GeometryArray<O>

source§

fn from(value: PointArray) -> Self

Converts to this type from the input type.
source§

impl<O: OffsetSizeTrait> From<PolygonArray<O>> for GeometryArray<O>

source§

fn from(value: PolygonArray<O>) -> Self

Converts to this type from the input type.
source§

impl<'a, O: OffsetSizeTrait> GeoArrayAccessor<'a> for GeometryArray<O>

§

type Item = Geometry<'a, O>

The geoarrow scalar object for this geometry array type.
§

type ItemGeo = Geometry

The geo scalar object for this geometry array type.
source§

unsafe fn value_unchecked(&'a self, index: usize) -> Self::Item

Returns the element at index i Read more
source§

fn value(&'a self, index: usize) -> Self::Item

Returns the element at index i Read more
source§

fn get(&'a self, index: usize) -> Option<Self::Item>

Access the value at slot i as an Arrow scalar, considering validity.
source§

fn value_as_geo(&'a self, i: usize) -> Self::ItemGeo

Access the value at slot i as a geo scalar, not considering validity.
source§

fn get_as_geo(&'a self, i: usize) -> Option<Self::ItemGeo>

Access the value at slot i as a geo scalar, considering validity.
source§

impl<O: OffsetSizeTrait> GeodesicArea for GeometryArray<O>

source§

fn geodesic_area_signed(&self) -> Float64Array

Determine the area of a geometry on an ellipsoidal model of the earth. Read more
source§

fn geodesic_area_unsigned(&self) -> Float64Array

Determine the area of a geometry on an ellipsoidal model of the earth. Supports very large geometries that cover a significant portion of the earth. Read more
source§

fn geodesic_perimeter(&self) -> Float64Array

Determine the perimeter of a geometry on an ellipsoidal model of the earth. Read more
source§

fn geodesic_perimeter_area_signed(&self) -> (Float64Array, Float64Array)

Determine the perimeter and area of a geometry on an ellipsoidal model of the earth, all in one operation. Read more
source§

fn geodesic_perimeter_area_unsigned(&self) -> (Float64Array, Float64Array)

Determine the perimeter and area of a geometry on an ellipsoidal model of the earth, all in one operation. Supports very large geometries that cover a significant portion of the earth. Read more
source§

impl<'a, O: OffsetSizeTrait> GeometryArrayTrait<'a> for GeometryArray<O>

source§

fn len(&self) -> usize

The length of the GeometryArray. Every array has a length corresponding to the number of geometries it contains.

source§

fn validity(&self) -> Option<&NullBuffer>

The validity of the GeometryArray: every array has an optional [Bitmap] that, when available specifies whether the geometry at a given slot is valid or not (null). When the validity is None, all slots are valid.

source§

fn slice(&self, offset: usize, length: usize) -> Self

Slices the GeometryArray in place

Implementation

This operation is O(1) over len, as it amounts to increase two ref counts and moving the struct to the heap.

Panic

This function panics iff offset + length > self.len().

source§

fn as_any(&self) -> &dyn Any

Returns the array as Any so that it can be downcasted to a specific implementation. Read more
source§

fn data_type(&self) -> &GeoDataType

Returns a reference to the DataType of this array. Read more
source§

fn storage_type(&self) -> DataType

Get the logical DataType of this array.
source§

fn extension_field(&self) -> Arc<Field>

Get the extension type of this array, as defined by the GeoArrow specification. Read more
source§

fn extension_name(&self) -> &str

Get the extension name of this array.
source§

fn into_array_ref(self) -> Arc<dyn Array>

Convert this array into an arced arrow array. Read more
source§

fn with_coords(self, coords: CoordBuffer) -> Self

Create a new array with replaced coordinates Read more
source§

fn coord_type(&self) -> CoordType

Get the coordinate type of this geometry array, either interleaved or separated.
source§

fn into_coord_type(self, coord_type: CoordType) -> Self

Cast the coordinate buffer of this geometry array to the given coordinate type.
source§

fn owned_slice(&self, offset: usize, length: usize) -> Self

A slice that fully copies the contents of the underlying buffer
source§

fn is_empty(&self) -> bool

Returns true if the array is empty.
source§

fn nulls(&self) -> Option<&NullBuffer>

source§

fn logical_nulls(&self) -> Option<NullBuffer>

source§

fn null_count(&self) -> usize

The number of null slots in this array. Read more
source§

fn is_null(&self, i: usize) -> bool

Returns whether slot i is null. Read more
source§

fn is_valid(&self, i: usize) -> bool

Returns whether slot i is valid. Read more
source§

impl<O: OffsetSizeTrait> HasDimensions for GeometryArray<O>

source§

fn is_empty(&self) -> BooleanArray

Some geometries, like a MultiPoint, can have zero coordinates - we call these empty. Read more
source§

impl<O: OffsetSizeTrait> IntoArrow for GeometryArray<O>

§

type ArrowArray = Arc<dyn Array>

source§

fn into_arrow(self) -> Self::ArrowArray

source§

impl<O: OffsetSizeTrait> MinimumRotatedRect<i32> for GeometryArray<O>

source§

impl<O: OffsetSizeTrait> RemoveRepeatedPoints for GeometryArray<O>

source§

fn remove_repeated_points(&self) -> Self

Create a new geometry with (consecutive) repeated points removed.
source§

impl<O: OffsetSizeTrait> Rotate<PrimitiveArray<Float64Type>> for GeometryArray<O>

source§

fn rotate_around_centroid(&self, degrees: &Float64Array) -> Self

Rotate a geometry around its centroid by an angle, in degrees Read more
source§

fn rotate_around_center(&self, degrees: &Float64Array) -> Self

Rotate a geometry around the center of its bounding box by an angle, in degrees. Read more
source§

fn rotate_around_point(&self, degrees: &Float64Array, point: Point) -> Self

Rotate a Geometry around an arbitrary point by an angle, given in degrees Read more
source§

impl<O: OffsetSizeTrait> Rotate<f64> for GeometryArray<O>

source§

fn rotate_around_centroid(&self, degrees: &f64) -> Self

Rotate a geometry around its centroid by an angle, in degrees Read more
source§

fn rotate_around_center(&self, degrees: &f64) -> Self

Rotate a geometry around the center of its bounding box by an angle, in degrees. Read more
source§

fn rotate_around_point(&self, degrees: &f64, point: Point) -> Self

Rotate a Geometry around an arbitrary point by an angle, given in degrees Read more
source§

impl<O: OffsetSizeTrait> Scale for GeometryArray<O>

source§

fn scale(&self, scale_factor: BroadcastablePrimitive<Float64Type>) -> Self

Scale geometries from its bounding box center. Read more
source§

fn scale_xy( &self, x_factor: BroadcastablePrimitive<Float64Type>, y_factor: BroadcastablePrimitive<Float64Type> ) -> Self

Scale geometries from its bounding box center, using different values for x_factor and y_factor to distort the geometry’s aspect ratio. Read more
source§

fn scale_around_point( &self, x_factor: BroadcastablePrimitive<Float64Type>, y_factor: BroadcastablePrimitive<Float64Type>, origin: Point ) -> Self

Scale geometries around a point of origin. Read more
source§

impl<O: OffsetSizeTrait> Simplify for GeometryArray<O>

source§

fn simplify(&self, epsilon: &f64) -> Self

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

impl<O: OffsetSizeTrait> SimplifyVw for GeometryArray<O>

source§

fn simplify_vw(&self, epsilon: &f64) -> Self

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

impl<O: OffsetSizeTrait> Skew for GeometryArray<O>

source§

fn skew(&self, scale_factor: BroadcastablePrimitive<Float64Type>) -> Self

An affine transformation which skews a geometry, sheared by a uniform angle along the x and y dimensions. Read more
source§

fn skew_xy( &self, x_factor: BroadcastablePrimitive<Float64Type>, y_factor: BroadcastablePrimitive<Float64Type> ) -> Self

An affine transformation which skews a geometry, sheared by an angle along the x and y dimensions. Read more
source§

fn skew_around_point( &self, x_factor: BroadcastablePrimitive<Float64Type>, y_factor: BroadcastablePrimitive<Float64Type>, origin: Point ) -> Self

An affine transformation which skews a geometry around a point of origin, sheared by an angle along the x and y dimensions. Read more
source§

impl<O: OffsetSizeTrait> Translate for GeometryArray<O>

source§

fn translate( &self, x_offset: BroadcastablePrimitive<Float64Type>, y_offset: BroadcastablePrimitive<Float64Type> ) -> Self

Translate a Geometry along its axes by the given offsets Read more
source§

impl TryFrom<(&Field, &dyn Array)> for GeometryArray<i32>

§

type Error = GeoArrowError

The type returned in the event of a conversion error.
source§

fn try_from((field, array): (&Field, &dyn Array)) -> Result<Self, Self::Error>

Performs the conversion.
source§

impl TryFrom<(&Field, &dyn Array)> for GeometryArray<i64>

§

type Error = GeoArrowError

The type returned in the event of a conversion error.
source§

fn try_from((field, array): (&Field, &dyn Array)) -> Result<Self, Self::Error>

Performs the conversion.
source§

impl TryFrom<GeometryArray<i64>> for GeometryArray<i32>

§

type Error = GeoArrowError

The type returned in the event of a conversion error.
source§

fn try_from(value: GeometryArray<i64>) -> Result<Self, Self::Error>

Performs the conversion.
source§

impl<O: OffsetSizeTrait> TryFrom<WKBArray<O>> for GeometryArray<O>

§

type Error = GeoArrowError

The type returned in the event of a conversion error.
source§

fn try_from(value: WKBArray<O>) -> Result<Self, Self::Error>

Performs the conversion.

Auto Trait Implementations§

§

impl<O> RefUnwindSafe for GeometryArray<O>
where O: RefUnwindSafe,

§

impl<O> Send for GeometryArray<O>

§

impl<O> Sync for GeometryArray<O>

§

impl<O> Unpin for GeometryArray<O>
where O: Unpin,

§

impl<O> UnwindSafe for GeometryArray<O>
where O: UnwindSafe,

Blanket Implementations§

source§

impl<T> Any for T
where T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for T
where T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

source§

impl<T, U> Into<U> for T
where U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

source§

impl<T> ToOwned for T
where T: Clone,

§

type Owned = T

The resulting type after obtaining ownership.
source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

§

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

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
source§

impl<G1, G2> Within<G2> for G1
where G2: Contains<G1>,

source§

fn is_within(&self, b: &G2) -> bool

source§

impl<T> Allocation for T
where T: RefUnwindSafe + Send + Sync,