On Dec 4, 2008, at 10:53 AM, Kevin Neufeld wrote:

Correct. I assumed in your case that the rings do not need to be noded against eachother (that's what st_union is for), they just need to be sorted to determine the outer and inner rings (that's a task for BuildArea).
Glad it works.
-- Kevin

William Kyngesburye wrote:
That works. It looks essentially the same as what's in the cleangeometry function from the wiki, but much simpler. There's st_union and st_multi in there betwen the buildarea and boundary functions, probably to handle other invalid stuff.
On Dec 4, 2008, at 1:02 AM, Kevin Neufeld wrote:
Have you tried updating the geometry with a new polygonized polygon constructed from the linework?

UPDATE swbd
SET wkb_geometry = ST_BuildArea(ST_Boundary(wkb_geometry))
WHERE cell = 145018 AND wb = 353;

Cheers,
-- Kevin



I wonder if there is a way for a postgres function to see what the actual kind of validity error is (it just comes up as a NOTICE: in the sql output)? I ran thru the whole database to see how many invalid polys there are (10700 of 625000) and what they are (and how long it will take just to test validity... 5m, not bad), and I see more than just this one case I first ran into (hole outside shell):

NOTICE: Hole lies outside shell at or near point x y [not many of these]
NOTICE:  Nested shells at or near point x y  [lots of these]
NOTICE:  Holes are nested at or near point x y  [lots of these]
NOTICE:  Self-intersection at or near point x y
NOTICE:  Ring Self-intersection at or near point x y
NOTICE:  Interior is disconnected at or near point x y  [a few of these]

It would be nice if the cleangeometry function could use the right combination of geometry operations depending on the type of geometry error.

-----
William Kyngesburye <kyngchaos*at*kyngchaos*dot*com>
http://www.kyngchaos.com/

"Those people who most want to rule people are, ipso-facto, those least suited to do it."

- A rule of the universe, from the HitchHiker's Guide to the Galaxy


_______________________________________________
postgis-users mailing list
postgis-users@postgis.refractions.net
http://postgis.refractions.net/mailman/listinfo/postgis-users

Reply via email to