<div dir="ltr"><div dir="ltr"><br></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Wed, Sep 7, 2022 at 3:18 PM Sandro Santilli <<a href="mailto:strk@kbt.io">strk@kbt.io</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">On Tue, Sep 06, 2022 at 02:37:37PM -0700, Martin Davis wrote:<br>
> I've started to build out operations on Polygonal Coverages in JTS ([1],<br>
> [2]).  <br>
<br>
[...]<br>
<br>
> A key question is how to expose these operations in the GEOS C API.  I see<br>
> two options:<br>
> 1) Model a Polygonal Coverage as an array of simple Polygons (and possibly<br>
> MultiPolygons)<br>
> 2) Provide a Polygonal Coverage datatype (which might contain internal<br>
> topology)<br>
<br>
Could a coverage datatype allow performing operations on PostGIS Topologies<br>
w/out building the polygons for each face ? </blockquote><div><br></div><div>The short answer is "yes, probably, if suitable builders are defined for the coverage datatype".  But that starts getting complex (in particular, it probably requires a concept of a Face, which might also have to be exposed).  This is quite a bit more design than the current work requires.</div><div><br></div><div>The other question is: what operations?  Edge-based operations like simplification (and maybe smoothing) don't really require a coverage at all - they can simply operate on edge linework.  That would be even easier to use from PostGIS Topology, I expect.  In fact, I'm considering factoring out the "Topology-Preserving Line Simplification" part from the CoverageSimplifier, so it can be used standalone.  </div><div> </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">There's an ISO standard<br>
representation of topologies, maybe such representation could be used<br>
to transfer those topologies back and forth with GEOS ?<br></blockquote><div><br></div><div>Not familiar with that representation.  How does it handle identity for Faces of topologies?</div><div><br></div><div>What we need to define is a C-based API for Coverage.  It's not a huge design space, so there would probably be similarities. </div><div><br></div><div> </div></div></div>