[c++] Geometry Dataframe [draft] #3201
Draft
+1,213
−14
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This PR adds a C++ implementation for
SOMAGeometryDataFrame
. The implementation differs from otherSOMAArray
derived objects in a few areas:SOMAGeometryDataFrame
requires two schemas to create itself, one schema similar to all other objects and a schema for the spatial axes. The second schema is necessary to create some additional internal dimension to allow indexing for geometry data.SOMAGeometryDataFrame
can transform geometry data from a list of vertices to the on-disk WKB format automatically. Specifically if the array of data contains a list of vertices in the geometry column (opposed to a binary buffer), the WKB buffer as well as any additional index column are generated automatically. This feature allows both R and Python APIs to behave the same and does not require from them additional dependencies to construct the binary buffers. Moreover in case the indexing forSOMAGeometryDataFrame
changes in the future minor changes should be necessary to the R and Python APIs.