freegeocz AT fsv.cvut.cz
Předmět: Svobodná geoinformační infrastruktura
List archive
- From: Dan Barta <ehanoj AT gmail.com>
- To: Svobodná geoinformační infrastruktura <freegeocz AT fsv.cvut.cz>
- Subject: Re: [FreeGeoCZ] invalid polygon geometry
- Date: Tue, 20 Apr 2010 17:01:24 +0200
- Domainkey-signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :content-type; b=klj7+kZkae3SOHXFEro5JS1GjMZAN6xzcSY73KYvkPdz2/GZqDpL4YSCenZDzpCzs3 zCRM3woNPYgcFsVofLpAso8cZ/Hay3DVIzJj6JeTBsX+GdiwMlL6+nbQHHuF5cPXA/iO gt9CH2Za6yOCaOFEF3p+BC+AEKZpbAnQsUOnM=
- List-archive: <http://mailman.fsv.cvut.cz/pipermail/freegeocz>
- List-id: Svobodná geoinformační infrastruktura <freegeocz.fsv.cvut.cz>
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
- [FreeGeoCZ] invalid polygon geometry, Dan Barta, 04/19/2010
- RE: [FreeGeoCZ] invalid polygon geometry, MICHÁLEK Jan Mgr ., 04/20/2010
- RE: [FreeGeoCZ] invalid polygon geometry, jan.ruzicka, 04/20/2010
- RE: [FreeGeoCZ] invalid polygon geometry, MICHÁLEK Jan Mgr ., 04/20/2010
- Re: [FreeGeoCZ] invalid polygon geometry, Dan Barta, 04/20/2010
- RE: [FreeGeoCZ] invalid polygon geometry, jan.ruzicka, 04/20/2010
- RE: [FreeGeoCZ] invalid polygon geometry, MICHÁLEK Jan Mgr ., 04/21/2010
- Re: [FreeGeoCZ] invalid polygon geometry, Dan Barta, 04/22/2010
- Re: [FreeGeoCZ] invalid polygon geometry, Dan Barta, 04/20/2010
- RE: [FreeGeoCZ] invalid polygon geometry, MICHÁLEK Jan Mgr ., 04/20/2010
- RE: [FreeGeoCZ] invalid polygon geometry, jan.ruzicka, 04/20/2010
- RE: [FreeGeoCZ] invalid polygon geometry, MICHÁLEK Jan Mgr ., 04/20/2010
- RE: [FreeGeoCZ] invalid polygon geometry, MICHÁLEK Jan Mgr ., 04/20/2010
Archivace běží na MHonArc 2.6.19+.