Chris Hodgson chodgson at refractions.net
Wed Mar 19 14:27:13 EDT 2008

```I think to do this correctly you need to have the concept of a coverage,
and the simplification algorithm needs to work on the coverage. As it
simplifies each edge in the coverage, it would need to be aware that the
edge is part of two faces, and check that it has to maintain the
validity of both polygons as it simplifies. I think this would be a

If your polygons aren't too tricky, you might be able to take a simpler
approach - intersect every polygon with it's neighbors and create a new
dataset of every line, with 2 additional attributes specifying the IDs
of the two polygons (faces) that shared that line (edge). Then simplify
each of these edge lines, and then rebuild your polygons from the
simplified edge lines. The problem being, there is no guarantee that
your polygon's topologies haven't been broken by the simplification.

I don't think your multi-geometry approach will work because I don't
believe that GEOS will treat the geometries inside the multi-geometry
any differently than if they were simplified separately - as you are
already doing. I haven't tried it or read the docs so I may be wrong.

HTH.

Chris

Bill Zissimopoulos wrote:
> Hello, list:
>
> I am looking for a method to correctly simplify adjacent polygons
> without leaving gaps between them or having them intersect after the
> simplification. Currently my simple algorithm iterates over my
> geometries and feeds them to GEOSTopologyPreserveSimplify separately;
>
> Is it possible to correctly simplify adjacent polygons in GEOS? One
> technique I have been thinking about is to construct a multi-geometry
> with all the geometries in my dataset and pass this multi-geometry to
> GEOSTopologySimplify. Even if this worked, I would have to identify the
> individual geometries in the resulting multi-geometry since they
> represent different features in the original dataset. For example, a
> lake polygon and a land polygon next to it would have to be identified
> again after simplification so they can be properly rendered.
>
> The solution here might be to abuse slightly the z coordinate to store
> tagging information about individual polygons. But I wanted to hear any
> comments from the experts on the list before I attempt this.
>