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