D-P simplification is not going to modify your start/end points. For a bit of reference on the Douglas-Peuker simplification algorithm, see http://en.wikipedia.org/wiki/Ramer%E2%80%93Douglas%E2%80%93Peucker_algorithm
On Fri, Oct 22, 2010 at 11:13 AM, Kevin Neufeld <kneuf...@refractions.net>wrote: > I don't see any pdf posted, but that's ok, I get the idea. > > Isn't that interesting. To me, this looks like a robustness issue with > ST_Simplify. Here, the starting point of the polygon's exterior ring is not > on the corner. > > select > st_astext( > st_simplify( > 'POLYGON (( > 25 300, > 275 300, > 300 300, > 300 275, > 300 25, > 300 0, > 275 0, > 25 0, > 0 0, > 0 25, > 0 275, > 0 300, > 25 300 > ))', 1 > ) > ); > st_astext > -------------------------------------------------- > POLYGON((25 300,300 300,300 0,0 0,0 300,25 300)) > (1 row) > > I don't know why, but I too was expecting to see something like: > POLYGON (( 0 300, 300 300, 300 0, 0 0, 0 300 )) > > You almost could use a function that shifts the ordinates in the exterior > linear ring ... you could probably put something together fairly quickly in > plpgsql (extract the exterior ring, use ST_GetPointN and ST_SetPointN, and > rebuild the polygon). > Once shifted, the starting ordinance would be on the corner and the (25 > 300) vertex would disappear with a rerun of ST_Simplify. > > JTS has the same issue. > > -- Kevin > > > > On 10/22/2010 2:33 AM, lplateandy wrote: > >> Hi Kevin, >> >> Hopefully the attached (hopefully) PDF will help to show what i mean. >> >> In producing the PDF i think i can see why the issue happens. It seems >> that >> the start and end point of the polygon geometery are the node i was hoping >> might be removed during the simplify process. >> >> Not sure if there is a way around this? >> >> I do realise there are ways for a simple rectangle etc to fix this but the >> example is mainly for illustration as the issue is a problem in more >> complex >> geometries. >> >> Thanks >> >> Andy >> >> >> Kevin Neufeld wrote: >> >>> Hi Andy, >>> >>> Can you post a small example? >>> -- Kevin >>> >>> >>> On 10/21/2010 10:02 AM, lplateandy wrote: >>> >>>> Hi, >>>> >>>> I have, in the simplest example, a square polygon of 1 by 1 kilometer >>>> size >>>> with nodes every 25 meters. >>>> >>>> I can use ST_Simplify (the_geom,5) to remove most of the points. >>>> >>>> However, for some reason i end up with the four corner nodes and a fifth >>>> node 25m clockwise from the top left corner. >>>> >>>> In itself, this would be fine - 5 nodes is better than 160. >>>> >>>> However, on some of the polygons, there are more complex boundaries >>>> which >>>> i >>>> wish to smooth out using simplify. I would do this with ST_Simplify >>>> (the_geom,26) example - going over the minimum 25 metres between any >>>> nodes. >>>> >>>> In the example of the square with 5 nodes, the problem i find then is >>>> that >>>> the top left node is removed and the one 25m clockwise remains. The >>>> result >>>> is that i no longer have a 1km square but sloping Western boundary >>>> correctly >>>> going 1km North South but incorrectly veering across 25m to the East. >>>> >>>> Is there a way to remove the stray node so i am more likely to maintain >>>> my >>>> overall polygon shape. I did try st_simplifiypreservetopology but saw no >>>> noticeable difference. >>>> >>>> Hope that makes sense, any help much appreciated >>>> >>>> Andy >>>> >>> _______________________________________________ >>> postgis-users mailing list >>> postgis-users@postgis.refractions.net >>> http://postgis.refractions.net/mailman/listinfo/postgis-users >>> >>> >>> http://old.nabble.com/file/p30027046/ST_simplify_issue.pdf >> ST_simplify_issue.pdf >> > _______________________________________________ > postgis-users mailing list > postgis-users@postgis.refractions.net > http://postgis.refractions.net/mailman/listinfo/postgis-users > -- ************************************ David William Bitner
_______________________________________________ postgis-users mailing list postgis-users@postgis.refractions.net http://postgis.refractions.net/mailman/listinfo/postgis-users