We appear to have talked about this before…

https://github.com/libgeos/geos/pull/866

> On May 29, 2025, at 11:36 AM, Paul Ramsey <pram...@cleverelephant.ca> wrote:
> 
> 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
> 

Reply via email to