Version 4 (modified by 5 years ago) ( diff ) | ,
---|
GEOS RFC 8: Improve Coordinate Sequence API (WIP)
RFC 7: | Improve Coordinate Sequence API |
Author: | Martin Davis |
Contact: | martin-dot-davis at crunchydata.com |
Status: |
This document proposes to modify the Coordinate Sequence API to improve performance and adaptiveness. These improvements are (likely to be) breaking changes to the C++ API. These may require extensions to the C API to be externally available, but should not result in breaking the current C API.
Background
The Coordinate Sequence API as it stands imposes a large cost on clients.
- It requires copying coordinate list structures one or more times
- It imposes the cost of a Z ordinate even if not required by the client
- (related) It is necessary to construct a full Geometry object just to pass a simple Point (e.g. for Point0In-Polygon)
- (related) Geometry objects for Point and MultiPoint are very inefficient due to Point overhead
The API also has some functional limitations:
- it does not support M values
Goals
- Allow using external coordinate list structures with no copying (except as needed by GEOS algorithms, e.g. removing repeated points)
- Prevent mutating of external coordinate structures
- Support XY, XYM, XYZ, XYZM efficiently
Note:
See TracWiki
for help on using the wiki.