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: 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




Archivace běží na MHonArc 2.6.19+.

Top of Page