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