dwilson1988 opened a new pull request, #713: URL: https://github.com/apache/arrow-go/pull/713
### Rationale for this change This PR adds GeoArrow types for one native type (Point) and one encoded type (WKB) with a pattern set for adding all of the others by following the implementation pattern. I've tested integration with a 3rd party geometry library and confirmed it can be done with zero-copy (mostly, depends on the external library) for the underlying data. This is a pretty big PR, but instead of breaking up the native and encoded types, I wanted one of each, with a full set of tests. This PR supercedes https://github.com/apache/arrow-go/pull/545. I think I got all/most of the comments applied there rolled into this implementation. The biggest change was isolating the geoarrow types into a subpackage to keep things neat and tidy. I have a branch that implements for polygons as well and a very rough go-geom integration to demonstate the pattern. - https://github.com/dwilson1988/arrow-go/pull/1 - https://github.com/seerai/geoarrow-go ### What changes are included in this PR? - Addition of various types to support GeoArrow: - `geoarrow.Dimensions` - the x/y/z/m layout of the geometry data - `geoarrow.EdgeInterpolation` - the intended interpolation algorithm for edges in geometries - `geoarrow.CRSType` - the various formats that GeoArrow permits for spatial references - `geoarrow.Metadata` - a type used to store common metadata for all GeoArrow Geometry Types. - `geoarrow.GeoemetryValue` - a basic interface that geometry values must implement. - `geoarrow.GeometryType` - an interface that ties a native/encoded GeoArrow type to a Value format - (unexported) `geoarrow.valueBuilder[V, G]` that implements generic boilerplate for geometry builders - (unexported) `geoarrow.geometryArray` that implements generic boilerplate for geometry arrays - `geoarrow.WKBType` - a type for WKB encoded geometry types - `geoarrow.WKBValue` - represents WKB encoded geometry values - `geoarrow.WKBArray` a type alias for wkb arrays - `geoarrow.WKBBuilder` - a type alias for wkb builders - `geoarrow.PointType` a type for native encoded point geometry types. - `geoarrow.PointValue` a type for native encoded point values. - `geoarrow.PointArray` a type alias for point arrays - `geoarrow.PointBuilder` - a type alias for point builders ### Are these changes tested? Yes - tests implemented for each type following the patterns set by the rest of the extensions. ### Are there any user-facing changes? Yes - the addition of new extension types. Additional disclaimer: I wrote all of the WKB and most of the point implementation by hand, but did use Claude Code to fill out the tests and apply some light uniformity refactors to mirror patterns in this repo. @zeroshade @paleolimbot -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: [email protected] For queries about this service, please contact Infrastructure at: [email protected]
