geoarrow_array/geozero/export/array/
point.rs

1use geozero::{GeomProcessor, GeozeroGeometry};
2
3use crate::array::PointArray;
4use crate::geozero::export::scalar::process_point;
5use crate::{GeoArrowArray, GeoArrowArrayAccessor};
6
7impl GeozeroGeometry for PointArray {
8    fn process_geom<P: GeomProcessor>(&self, processor: &mut P) -> geozero::error::Result<()>
9    where
10        Self: Sized,
11    {
12        let num_geometries = self.len();
13        processor.geometrycollection_begin(num_geometries, 0)?;
14
15        for idx in 0..num_geometries {
16            process_point(&self.value(idx).unwrap(), idx, processor)?;
17        }
18
19        processor.geometrycollection_end(num_geometries)?;
20        Ok(())
21    }
22}