<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>