pub struct WKBArray<O: OffsetSizeTrait>(/* private fields */);
Expand description

An immutable array of WKB geometries using GeoArrow’s in-memory representation.

This is semantically equivalent to Vec<Option<WKB>> due to the internal validity bitmap.

This array can be used directly for operations, but that will incur costly encoding to and from WKB on every operation. Instead, you usually want to use the WKBArray only for serialization purposes (e.g. to and from GeoParquet) but convert to strongly-typed arrays (such as the PointArray) for computations.

Implementations§

source§

impl<O: OffsetSizeTrait> WKBArray<O>

source

pub fn new(arr: GenericBinaryArray<O>) -> Self

Create a new WKBArray from a BinaryArray

source

pub fn is_empty(&self) -> bool

Returns true if the array is empty

source§

impl<O: OffsetSizeTrait> WKBArray<O>

source

pub fn iter_geo_values(&self) -> impl Iterator<Item = Geometry> + '_

Iterator over geo Geometry objects, not looking at validity

source

pub fn iter_geo( &self ) -> ZipValidity<Geometry, impl Iterator<Item = Geometry> + '_, BitIterator<'_>>

Iterator over geo Geometry objects, taking into account validity

source§

impl<'a, O: OffsetSizeTrait> WKBArray<O>

source

pub fn iter(&'a self) -> WKBArrayIter<'_, O>

Returns an iterator of Option<WKB>

Trait Implementations§

source§

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

source§

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

Apply transform immutably, outputting a new geometry.
source§

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

source§

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

Apply transform immutably, outputting a new geometry.
source§

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

source§

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

source§

fn bounding_rect(&self) -> RectArray

Return the bounding rectangle of a geometry Read more
source§

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

source§

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

source§

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

source§

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

source§

fn clone(&self) -> WKBArray<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 WKBArray<O>

source§

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

source§

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

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

impl<A: OffsetSizeTrait, B: OffsetSizeTrait> From<&GeometryCollectionArray<A>> for WKBArray<B>

source§

fn from(value: &GeometryCollectionArray<A>) -> Self

Converts to this type from the input type.
source§

impl<A: OffsetSizeTrait, B: OffsetSizeTrait> From<&LineStringArray<A>> for WKBArray<B>

source§

fn from(value: &LineStringArray<A>) -> Self

Converts to this type from the input type.
source§

impl<A: OffsetSizeTrait, B: OffsetSizeTrait> From<&MultiLineStringArray<A>> for WKBArray<B>

source§

fn from(value: &MultiLineStringArray<A>) -> Self

Converts to this type from the input type.
source§

impl<A: OffsetSizeTrait, B: OffsetSizeTrait> From<&MultiPointArray<A>> for WKBArray<B>

source§

fn from(value: &MultiPointArray<A>) -> Self

Converts to this type from the input type.
source§

impl<A: OffsetSizeTrait, B: OffsetSizeTrait> From<&MultiPolygonArray<A>> for WKBArray<B>

source§

fn from(value: &MultiPolygonArray<A>) -> Self

Converts to this type from the input type.
source§

impl<O: OffsetSizeTrait> From<&PointArray> for WKBArray<O>

source§

fn from(value: &PointArray) -> Self

Converts to this type from the input type.
source§

impl<A: OffsetSizeTrait, B: OffsetSizeTrait> From<&PolygonArray<A>> for WKBArray<B>

source§

fn from(value: &PolygonArray<A>) -> Self

Converts to this type from the input type.
source§

impl<O: OffsetSizeTrait> From<GenericByteArray<GenericBinaryType<O>>> for WKBArray<O>

source§

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

Converts to this type from the input type.
source§

impl<O: OffsetSizeTrait> From<MutableWKBArray<O>> for WKBArray<O>

source§

fn from(other: MutableWKBArray<O>) -> Self

Converts to this type from the input type.
source§

impl<O: OffsetSizeTrait> From<Vec<'_, Option<Geometry>>> for WKBArray<O>

source§

fn from(other: Vec<'_, Option<Geometry>>) -> Self

Converts to this type from the input type.
source§

impl<O: OffsetSizeTrait> From<Vec<Option<Geometry>>> for WKBArray<O>

source§

fn from(other: Vec<Option<Geometry>>) -> Self

Converts to this type from the input type.
source§

impl From<WKBArray<i32>> for WKBArray<i64>

source§

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

Converts to this type from the input type.
source§

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

§

type Item = WKB<'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 WKBArray<O>

source§

fn geodesic_perimeter(&self) -> Float64Array

Determine the perimeter of a geometry on an ellipsoidal model of the earth. Read more
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_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 WKBArray<O>

source§

fn len(&self) -> usize

Returns the number of geometries in this array

source§

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

Returns the optional validity.

source§

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

Slices this WKBArray in place.

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 WKBArray<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 WKBArray<O>

source§

impl<O: PartialEq + OffsetSizeTrait> PartialEq for WKBArray<O>

source§

fn eq(&self, other: &WKBArray<O>) -> bool

This method tests for self and other values to be equal, and is used by ==.
1.0.0 · source§

fn ne(&self, other: &Rhs) -> bool

This method tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
source§

impl<'a, O: OffsetSizeTrait> RTree<'a> for WKBArray<O>

§

type RTreeObject = CachedEnvelope<WKB<'a, O>>

The object type to store in the RTree.
source§

fn rstar_tree(&'a self) -> RTree<Self::RTreeObject>

Build an RTree spatial index containing this array’s geometries.
source§

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

source§

fn rotate_around_centroid(&self, degrees: &Float64Array) -> WKBArray<O>

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 WKBArray<O>

source§

fn rotate_around_centroid(&self, degrees: &f64) -> WKBArray<O>

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 WKBArray<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> Skew for WKBArray<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 WKBArray<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<&dyn Array> for WKBArray<i32>

§

type Error = GeoArrowError

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

fn try_from(value: &dyn Array) -> Result<Self, Self::Error>

Performs the conversion.
source§

impl TryFrom<&dyn Array> for WKBArray<i64>

§

type Error = GeoArrowError

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

fn try_from(value: &dyn Array) -> 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.
source§

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

§

type Error = GeoArrowError

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

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

Performs the conversion.
source§

impl<O: OffsetSizeTrait> TryFrom<WKBArray<O>> for MultiLineStringArray<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.
source§

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

§

type Error = GeoArrowError

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

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

Performs the conversion.
source§

impl<O: OffsetSizeTrait> TryFrom<WKBArray<O>> for MultiPolygonArray<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.
source§

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

§

type Error = GeoArrowError

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

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

Performs the conversion.
source§

impl<O: OffsetSizeTrait> TryFrom<WKBArray<O>> for MutableMixedGeometryArray<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.
source§

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

§

type Error = GeoArrowError

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

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

Performs the conversion.
source§

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

§

type Error = GeoArrowError

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

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

Performs the conversion.
source§

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

§

type Error = GeoArrowError

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

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

Performs the conversion.
source§

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

§

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.
source§

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

§

type Error = GeoArrowError

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

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

Performs the conversion.
source§

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

§

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.
source§

impl<O: OffsetSizeTrait> TryFrom<WKBArray<O>> for PolygonArray<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.
source§

impl TryFrom<WKBArray<i64>> for WKBArray<i32>

§

type Error = GeoArrowError

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

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

Performs the conversion.
source§

impl<O: OffsetSizeTrait> TypeIds for WKBArray<O>

source§

fn get_type_ids(&self) -> Int8Array

Return the geometry types stored in this array Read more
source§

fn get_unique_type_ids(&self) -> HashSet<i8>

Return the unique geometry types stored in this array Read more
source§

impl<O: OffsetSizeTrait> StructuralPartialEq for WKBArray<O>

Auto Trait Implementations§

§

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

§

impl<O> Send for WKBArray<O>

§

impl<O> Sync for WKBArray<O>

§

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

§

impl<O> UnwindSafe for WKBArray<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,