<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=Windows-1252">
</head>
<body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; color: rgb(0, 0, 0); font-family: Calibri, sans-serif; ">
<div>
<div>
<div>Dear All,</div>
<div><br>
</div>
<div>We are trying to generalise our polygon layers which contain sets of polygons that are perfect partitions of higher level polygons (think of counties in states which form together a country – a typical case of administrative hierarchies). The generalisation
 is only doen for a "view" geometry, we keep on doing our computations on the original geometries.</div>
<div><br>
</div>
<div>The reason is to make a more responsive JS based user interface with OpenLayers based map interaciton, including brushing etc.</div>
<div><font face="Calibri,Verdana,Helvetica,Arial">
<div><br>
</div>
<div>The problem we are facing is that the ST_SimplifyPreserveTopology, while meant for Polygons, does not assure that the partition is preserved, and we end up with overlaps between the generalised polygons. What we currently do is:</div>
<div><br>
</div>
</font>
<div><font face="Calibri,Verdana,Helvetica,Arial"><span class="Apple-style-span" style="font-family: Calibri, sans-serif; ">
<div>SELECT DropGeometryColumn('public','mytable','view_geom');</div>
<div>SELECT AddGeometryColumn ('public','mytable','view_geom',4283,'GEOMETRY',2);</div>
<div>UPDATE mytable SET view_geom = ST_SimplifyPreserveTopology(wkb_geometry,0.1); </div>
<div><br>
</div>
<div>What is the best way to deal with this? I am sure many of you have faced this problem. Is there a way to detect the intersections of boudnaries of adjacent polygons and specify them as strict (immovable) vertices?</div>
<div><br>
</div>
<div>My other ideas include:</div>
<div>- Break the polygons into lines, so that the endpoints at intersections are immutable, and simplify and rebuild the polygons</div>
<div>- maybe try some tricks using the Postgis2.0 planar topology functions</div>
<div><br>
</div>
<div><br>
</div>
<div>Thanks,</div>
<div>Martin</div>
</span></font></div>
</div>
</div>
</div>
</body>
</html>