Randall, Eric wrote:
Hi all,

I'm trying to figure out how to explode a set of polygons to display
them with space between.  In my case they are municipal boundary
polys but could be anything.  So far the only approach I can think of
is using translate such that:

select st_translate(st_translate(poly, -x(st_centroid(poly)),
-y(st_centroid(poly))),x(p2) + (x(p2)- x(p1)), y(p2) + (y(p2) -
y(p1))) from (select st_centroid(st_collect(geom))as p1 from
mypolytable) as s1, (select st_centroid(geom) as p2, geom as poly
from mypolytable) as s2


The problem with this is that small polys (Boroughs, etc) relative
larger ones often don't get their own space until a large enough
multiplier is applied, i.e.   x(p2) + (x(p2)- x(p1))*5, y(p2) +
(y(p2) - y(p1))*5 ,  but then there is too much space around the
larger polys.

Anyone have a suggestion or done this another way?  Thanks.



think i'm gonna splode...,

I'm not sure if it will work, but have you tried doing a buffer with a negative distance.

select st_buffer(the_geom, -100) from table;

where -100 is whatever distance you want the edge to be retracted. This would be in the units of the table.

-Steve
_______________________________________________
postgis-users mailing list
[email protected]
http://postgis.refractions.net/mailman/listinfo/postgis-users

Reply via email to