[geos-devel] Simplifying adjacent polygons

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 
pretty significant development task.

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;
> obviously this is inadequate.
> 
> 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.
> 
> Your comments will be very much appreciated.
> 
> Bill
> _______________________________________________
> geos-devel mailing list
> geos-devel at lists.osgeo.org
> http://lists.osgeo.org/mailman/listinfo/geos-devel



More information about the geos-devel mailing list