Io per correggere errori del tuo tipo ho usato questa funzione sql [1], mi sembra che funzioni bene! Puoi fare una prova.
Ciao, giovanni [1] http://www.sogis1.so.ch/sogis/dl/postgis/cleanGeometry.sql Il giorno Wed, 29 Sep 2010 23:07:59 +0200 Luca Mandolesi <mandol...@gmail.com> ha scritto: > 2010/9/29 Andrea Peri 2007 <aperi2...@gmail.com> > > > > > > > Trovo le geometrie errate. > >> > >> > >> A questo punto qual'è la strada migliore per correggere gli errori? > >> > >> Le devo riguardare una a una, per trovare tipo nodi sovrapposti, > >> intersezioni su se stesso, ecc? > >> > > > > La scelta dipende da una serie di fattori. > > > > Per prima cosa occorre sapere che versione di postgis hai, cosi' si > > capisce che strumenti hai a disposizione. > > > > Sono su un server Linux installatomi da terzi, come anche postgres > 8.4. A memoria ho postgis 1.4. > > Poi quante sono le geometrie da correggere, perhce' se sono poche > comunque > > conviene farlo a mano, se tale soluzione e' ammissibile. > > Infine valutare che margine di correzione si ha. Infatti, > > correggendo le geometrie spesso si spostano vertici, se ne creano > > di nuovi o si rimuovono alcuni dei vertici esistenti. > > Questo pero' comporta degli spostamenti che potrebbero inficiare > > certe esigenze (eventuali) di precisione oppure di coerenza > > topologica, di completa copertura del territorio, > > > > Dunque, le mie geometrie sono poligoni che riprendono strati > archeologici, quindi sono muri, buche, pavimenti, strati di terra, > ecc., che si sovrappongono ovviamente tra di loro. Qui le geometrie > non valide sono circa 60, quindi me la cavo bene. > Un altro invece contiene caratterizzazioni degli strati, ciottoli, > grumetti di calce, piccoli carboni, che essendo per lo più simboli > convenzionali, vengono copiati e incollati, sparpagliando eventuali > errori della geometria. Infatti qua ho qualcosa come 900 poligoni > errati. > > > > e cosi' via... > > > > Se fosse possibile farsi un dump della tabella con le geometrie > > incriminate (non e' detto che postgis lo consenta essendoci > > geometrie invalide). Io proverei a fare cosi': > > > > Io mi installarei in pochi minuti una istanza di pg con sopra la > > postgis 2.0.0 (trovi un compilato della 2.0.0 per windows nella > > sezione sperimentale del sito postgis). > > Ci caricherei sopra la tabella via dump. > > > Siccome il backup della tabella si ferma appena trova le geometrie > errate, ho notato che posso incollare tutto il mio livello su uno > shape e salvarlo tranquillamente. A questo punto basta che ricarichi > con spit lo shape in pg e fare le prove che mi consigli tu con > postgis 2.0.0 su un PC. > > > poi lancerei il comando > > > > create table geom_corrette as > > select > > st_makevalid(geom) as geom_new > > from tabella > > where > > st_isvalid(geom)=false > > ; > > > > e dovrei aver finito. > > > > infatti tale comando trasformerebbe i self-intersection in > > multipolygons e li butterebbe in tale tabella. > > Mi esporto la tabella (che ora e' buona) con qhis e il gioco e' > > fatto. > > > > Ok, nei prossimi giorni proverò e vedo cosa ricavo; ovviamente > posterò qua i risultati. Avere un metodo in lista (ma anche nel wiki) > per correzioni future potrebbe fare comodo ad altri dummy come me. > > Ciao e grazie! -- dott. Giovanni Pasini - biologo Centro Ricerche Ecologiche e Naturalistiche - C.R.E.N. Soc. Coop. r.l. V.le Pascoli, 46 - 47900 RIMINI tel/fax: 0541.392935 mobile: +39 3458360538 e-mail: c...@cren.it _______________________________________________ Iscriviti all'associazione GFOSS.it: http://www.gfoss.it/drupal/iscrizione Gfoss@lists.gfoss.it http://lists.gfoss.it/cgi-bin/mailman/listinfo/gfoss Questa e' una lista di discussione pubblica aperta a tutti. I messaggi di questa lista non rispecchiano necessariamente le posizioni dell'Associazione GFOSS.it. 474 iscritti al 18.9.2010