Skip to Content.
Sympa Menu

freegeocz - RE: [FreeGeoCZ] invalid polygon geometry

freegeocz AT fsv.cvut.cz

Předmět: Svobodná geoinformační infrastruktura

List archive

RE: [FreeGeoCZ] invalid polygon geometry


Chronological Podle vláken 
  • From: <jan.ruzicka AT vsb.cz>
  • To: <freegeocz AT fsv.cvut.cz>
  • Subject: RE: [FreeGeoCZ] invalid polygon geometry
  • Date: Tue, 20 Apr 2010 19:24:09 +0200
  • List-archive: <http://mailman.fsv.cvut.cz/pipermail/freegeocz>
  • List-id: Svobodná geoinformační infrastruktura <freegeocz.fsv.cvut.cz>

Title: RE: [FreeGeoCZ] invalid polygon geometry

Tak ta geometrie vypadá opravdu hodně nepěkně. Tady asi pomůľe jen vybudování topologie, coľ nevím zda by nebylo lepąí pouľít nějaký jiný nástroj neľ PostGIS.

J


-----Původní zpráva-----
Od: freegeocz-bounces AT fsv.cvut.cz za uľivatele Dan Barta
Odesláno: út 20.4.2010 17:01
Komu: Svobodná geoinformační infrastruktura
Předmět: Re: [FreeGeoCZ] invalid polygon geometry

Diky za podnety, pokusim se shrnout:
----------------------------
1) nejjednodussi je proste vadne polygony vyhazet, napr. takto:
----------------------------

TRUNCATE TABLE "polygon";
INSERT INTO "polygon" SELECT * FROM "polygonZaloha" WHERE ST_IsValid(the_geom);


sic ono to vyhaze i ty prvky s relativne snesitelnymi (=pro export
prekonatelnymi) problemy (cca 10% z 1600)

----------------------------
2) vyber jen nekterych chyb podle typu konci padem
----------------------------
SELECT gid, ST_IsValidReason(the_geom) AS invalid from "polygon" where
ST_IsValid(the_geom) <> true;

NOTICE:  Self-intersection at or near point -640685 -1.04412e+06
NOTICE:  Holes are nested at or near point -640810 -1.04419e+06
NOTICE:  Holes are nested at or near point -640778 -1.04425e+06
NOTICE:  Ring Self-intersection at or near point -641245 -1.04472e+06
NOTICE:  Holes are nested at or near point -640974 -1.04437e+06
NOTICE:  Holes are nested at or near point -640722 -1.04436e+06
NOTICE:  IllegalArgumentException: Number of points must be 0 or >3
NOTICE:  IllegalArgumentException: Number of points must be 0 or >3


ERROR:  POSTGIS2GEOS conversion failed

********** Chyba **********

3) pokus o napravu

Mam Ubuntu 9.10 na nem postgis 1.4.0. Ani stabilni 1.5.0 funkci
ST_MakeValid() nema.

V trunk-devel 2.0 uz se neco chysta [1] a da se to zpetne
importovat[2] jako funkce cleaGeometry(), ale na mem vzorku to spadne
stejne jako vyse:

TRUNCATE TABLE "polygon";
INSERT INTO "polygon" SELECT * FROM "polygonZaloha";
UPDATE "polygon" SET the_geom = cleanGeometry(the_geom) WHERE NOT
ST_IsValid(the_geom);



Toz tak jsou realizovane vase postrehy, pokud jsem neco opomnel dejte vedet.

diky a zdravi Dan Barta


[1] http://trac.osgeo.org/postgis/ticket/399
[2] http://www.sogis1.so.ch/sogis/dl/postgis/cleanGeometry.sql




Archivace běží na MHonArc 2.6.19+.

Top of Page