geoarrow_wasm/array/
point.rs1use crate::array::ffi::FFIArrowArray;
2use crate::array::polygon::PolygonArray;
3use crate::array::primitive::BooleanArray;
4use crate::array::primitive::FloatArray;
5use crate::array::CoordBuffer;
6use crate::array::GeometryArray;
7use crate::broadcasting::{BroadcastableAffine, BroadcastableFloat};
8use crate::error::WasmResult;
9use crate::impl_geometry_array;
10use crate::log;
11#[cfg(feature = "geodesy")]
12use crate::reproject::ReprojectDirection;
13use crate::TransformOrigin;
14use arrow2::datatypes::Field;
15use geoarrow::GeometryArrayTrait;
16use wasm_bindgen::prelude::*;
17
18#[wasm_bindgen]
19pub struct PointArray(pub(crate) geoarrow::array::PointArray);
20
21impl_geometry_array!(PointArray);
22
23#[wasm_bindgen]
24impl PointArray {
25 #[wasm_bindgen(constructor)]
26 pub fn new(coords: CoordBuffer, validity: Option<BooleanArray>) -> Self {
27 Self(geoarrow::array::PointArray::new(
28 coords.0,
29 validity.map(|validity| validity.0.values().clone()),
30 ))
31 }
32}
33
34impl From<&PointArray> for geoarrow::array::GeometryArray {
35 fn from(value: &PointArray) -> Self {
36 geoarrow::array::GeometryArray::Point(value.0.clone())
37 }
38}