Cool, that's very useful feedback. This would be worth capturing in
the PG wiki...
Andi Vajda wrote:
On Sep 24, 2008, at 8:45, Martin Davis <[EMAIL PROTECTED]> wrote:
Wow! It's great that this works for you - and I'm happy that you are
able to use the word "fast" as well!
I would have expected that say 3 levels of buffering would have been
sufficient. Did you try that first, and found you had to move to
more levels?
I first went with two levels: 0.0001 and 0.1. While it worked, it took
several minutes for some shapes. Inserting the 0.001 and 0.01 levels
made it all much much faster. I could then update all 2654 shapes in
question in about a
minute or two.
Andi..
Martin
Andi Vajda wrote:
On Fri, 12 Sep 2008, Martin Davis wrote:
This is an example of a known issue with GEOS/JTS buffering. The
problem occurs when using a relatively large buffer distance on
geometries which have a large number of vertices which are
relatively dense (i.e. the distance between adjacent vertices is
much smaller than the requested buffer distance).
A couple of ways to avoid this problem are:
- simplify the input geometry using a tolerance which gets rid of
most of the very dense vertices (use a tolerance of say from 1% to
10% of the buffer distance)
- buffer the geometry mulitple times, starting with a very small
buffer distance and gradually increasing it
Thanks, with your tip, I defined the following function which made
it work (and fast) for all the shapes in my db:
CREATE OR REPLACE FUNCTION gix_make_shell(geometry)
RETURNS geometry AS $$
SELECT
ST_Simplify(ST_Buffer(ST_Simplify(ST_Buffer(ST_Simplify(ST_Buffer(ST_Simplify(ST_Buffer($1,
0.0001), 0.0001), 0.001), 0.001), 0.01), 0.01), 0.1), 0.1)
$$ LANGUAGE SQL STABLE;
Andi..
--
Martin Davis
Senior Technical Architect
Refractions Research, Inc.
(250) 383-3022
--
Martin Davis
Senior Technical Architect
Refractions Research, Inc.
(250) 383-3022
_______________________________________________
postgis-users mailing list
[email protected]
http://postgis.refractions.net/mailman/listinfo/postgis-users