<html><head><meta http-equiv="content-type" content="text/html; charset=utf-8"></head><body style="overflow-wrap: break-word; -webkit-nbsp-mode: space; line-break: after-white-space;">We appear to have talked about this before…<div><br></div><div><div style="display: inline-block;"><span style="-webkit-user-select: none;"><a class="linkPlaceholder" href="https://github.com/libgeos/geos/pull/866">https://github.com/libgeos/geos/pull/866</a></span></div><br id="lineBreakAtBeginningOfMessage"><div><br><blockquote type="cite"><div>On May 29, 2025, at 11:36 AM, Paul Ramsey <pramsey@cleverelephant.ca> wrote:</div><br class="Apple-interchange-newline"><div><div>I am wondering the geometry argument for coverage cleaning… my current white board API looks like this<br><br><br>typedef struct {<br>    double snappingDistance;<br>    int    overlapMergeStrategy;<br>    double gapMaximumWidth<br>} GEOSCoverageCleanParams;<br><br><br>GEOSCoverageCleanerParams*<br>GEOSCoverageCleanParams_create();<br><br>void<br>GEOSCoverageCleanParams_destroy(<br>    GEOSCoverageCleanerParams* params);<br><br>int<br>GEOSCoverageCleanParams_setSnappingDistance(<br>    GEOSCoverageCleanerParams* params, <br>    double snappingDistance);<br><br>int<br>GEOSCoverageCleanParams_setGapMaximumWidth(<br>    GEOSCoverageCleanerParams* params, <br>    double gapMaximumWidth);<br><br>int<br>GEOSCoverageCleanParams_setOverlapMergeStrategy(<br>    GEOSCoverageCleanerParams* params, <br>    int overlapMergeStrategy);<br><br>GEOSGeometry **<br>GEOSCoverageCleanWithParams(<br>    GEOSCoverageCleanerParams* params,<br>    GEOSGeometry** cov,<br>    int covSize);<br><br>GEOSGeometry **<br>GEOSCoverageClean(<br>    GEOSGeometry ** cov, <br>    int covSize);<br><br>But I just noticed that the API for coverage simplification is this:<br><br>extern GEOSGeometry GEOS_DLL * GEOSCoverageSimplifyVW(<br>    const GEOSGeometry* input,<br>    double tolerance,<br>    int preserveBoundary);<br><br>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.<br><br>P<br><br></div></div></blockquote></div><br></div></body></html>