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]

Reply via email to