CoverageClean in CAPI
Paul Ramsey
pramsey at cleverelephant.ca
Thu May 29 11:36:50 PDT 2025
I am wondering the geometry argument for coverage cleaning… my current white board API looks like this
typedef struct {
double snappingDistance;
int overlapMergeStrategy;
double gapMaximumWidth
} GEOSCoverageCleanParams;
GEOSCoverageCleanerParams*
GEOSCoverageCleanParams_create();
void
GEOSCoverageCleanParams_destroy(
GEOSCoverageCleanerParams* params);
int
GEOSCoverageCleanParams_setSnappingDistance(
GEOSCoverageCleanerParams* params,
double snappingDistance);
int
GEOSCoverageCleanParams_setGapMaximumWidth(
GEOSCoverageCleanerParams* params,
double gapMaximumWidth);
int
GEOSCoverageCleanParams_setOverlapMergeStrategy(
GEOSCoverageCleanerParams* params,
int overlapMergeStrategy);
GEOSGeometry **
GEOSCoverageCleanWithParams(
GEOSCoverageCleanerParams* params,
GEOSGeometry** cov,
int covSize);
GEOSGeometry **
GEOSCoverageClean(
GEOSGeometry ** cov,
int covSize);
But I just noticed that the API for coverage simplification is this:
extern GEOSGeometry GEOS_DLL * GEOSCoverageSimplifyVW(
const GEOSGeometry* input,
double tolerance,
int preserveBoundary);
So using a collection on input and output. There’s a little extra overhead in marshalling it together but not a lot. One aspect of coverage cleaning is that polygons could entirely disappear… right now they’d come out as nulls in the geometry list, but I guess we could return them as empties? I feel like maybe we already talked this over for the simplification API.
P
More information about the geos-devel
mailing list