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: MICHÁLEK Jan Mgr. <Michalek.Jan AT uhul.cz>
  • To: Svobodná geoinformační infrastruktura <freegeocz AT fsv.cvut.cz>
  • Subject: RE: [FreeGeoCZ] invalid polygon geometry
  • Date: Tue, 20 Apr 2010 07:37:11 +0200
  • List-archive: <http://mailman.fsv.cvut.cz/pipermail/freegeocz>
  • List-id: Svobodná geoinformační infrastruktura <freegeocz.fsv.cvut.cz>

No, ono shp není uplne idealni format co se tyce topologie, je to tam udelany
tak, ze vnejsi hranice ma vertexy serazeny posmeru hodinovejch rucicek a diry
protismeru (nebo mozna naopak), když sou ty shpcka blbe udelany (třeba export
z nejakyho dxf, nebo neceho takovyho) tak muzou bejt pekne nakopnuty.
Ja bych postupoval nasledovne:

Select astext(geometry_col) from table where not isvalid(geometry_col) --nebo
neco takovyho, ja to delal pod MS 08, ale ten syntax bude dost podobnej,

--a podival bych se, co tam je za kožich.
--MS 08 ma fci geometry.STMakeValid(), kera vraci opravenou geom, v postgisu
bude stopro neco takovyho taky, tim bzch to rovnou přemlasknul:
Update table
Set geom = MakeValid(geom)
Where not IsValid(geom)

Nebo bych to nejdriv srovnal(co to s tim udela)
Select astext(geometry_col), astext(MakeValid(geometry_col)) from table
where not isvalid(geometry_col)


Jelen


-----Original Message-----
From: freegeocz-bounces AT fsv.cvut.cz [mailto:freegeocz-bounces AT fsv.cvut.cz] On
Behalf Of Dan Barta
Sent: Monday, April 19, 2010 5:11 PM
To: Svobodná geoinformační infrastruktura
Subject: [FreeGeoCZ] invalid polygon geometry

Zdravim konf,

pres shp2pgsql jsem nahrnul do Postgis polygonovy SHP.

Problem se jevil jen opticky v Postgis/Qgisu, kde pri nekterych podrobnostech
na dvou mistech zmizely vsechny prvky.

Nyni jsem se pokusil o export pgsql2shp, nebo vubec dump, ktery konci:

pg_dump: SQL command failed
pg_dump: Error message from server: ERROR: geometry requires more points
pg_dump: The command was: COPY public."polygonSEVEN" (gid, idch, id, delka,
sirka, plocha, poznamka, stav, sirka_min, povrch, tpovrch, etapa, uroven,
the_geom) TO stdout;


Tedy predpokladam, ze problem zni
* self intersection
nebo
* invalid rings

Zkusil jsem podle
http://postgis.refractions.net/pipermail/postgis-users/2009-March/023064.html

remove_invalidrings(the_geom);
remove_invalidpoly(geometry) - mi neselv lozit do fukci


INSERT INTO "polygonSEVENtest" SELECT * FROM "polygonSEVEN"; update
"polygonSEVENtest" SET the_geom = remove_invalidrings(the_geom);

a) narazi na omezeni "enforce_geotype_the_geom"
b) nebo kdyz omezeni natvrdo odstranim tak na :

ERROR: lwpoly_from_lwlines: shell must have at least 4 points
KONTEXT: SQL function "remove_invalidrings" statement 1

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

ERROR: lwpoly_from_lwlines: shell must have at least 4 points Stav SQL: XX000
Kontext:SQL function "remove_invalidrings" statement 1

Mate nekdo nejake hlubsi zkusenosti? Vite jak dale?


diky a zdravi

Dan Barta


__________ Informace od ESET NOD32 Antivirus, verze databaze 5041 (20100419)
__________

Tuto zpravu proveril ESET NOD32 Antivirus.

http://www.eset.cz



__________ Informace od ESET NOD32 Antivirus, verze databaze 5042 (20100419)
__________

Tuto zpravu proveril ESET NOD32 Antivirus.

http://www.eset.cz






Archivace běží na MHonArc 2.6.19+.

Top of Page