[Gfoss] inserimento di geometrie in QGIS

Vito Meuli v.meuli a tecnologieavanzate.it
Lun 9 Feb 2009 11:18:30 CET


Alle 18:21, venerdė 6 febbraio 2009, Luca Mandolesi ha scritto:
> Ciao Vito,non ho capito se le geometrie nulle sono tali in quanto hai il
> campo con le coordinate ma non i dati alfanumerici, oppure hai i dati
> alfanumerici ma non la geometria.

Il secondo caso.
Seguo il tuo ragionamento punto per punto.

> Se il caso č il secondo prova cosė:
>
> 1 - dividere in due la tua tabella:
>
>    - Tab1 campo ID e campo geometrico
>    - Tab2 campo ID (che chiamerai tipo ID_b o come ti pare a te ma non
>    uguale all'ID di tab1) +  dati alfanumerici

Fatto.

> 2 - Qgis carichi la tabella con i dati geometrici e continui a disegnare le
> tue geometrie inserendo l'ID;

E' quello che vorrei evitare per due motivi:
* evitare all'utente di QGIS di inserire a mano l'ID di collegamento tra le 
due tabelle
* permettere all'utente di QGIS di avere disponibili anche i dati 
alfanumerici, per essere sicuro che la geometria che inserisce corrisponde 
proprio a quei dati alfanumerici

> 3 - crei una view in postgres che unisce tab1 e tab2

Fatto.

> 4 - esporti da qgis in formato shapefile la view;

Intendi da postgres, vero?
Se si, fatto.

> 5 - se vuoi ripulisci i campi del dbf lasciando un solo id via Calc di
> OpenOffice;

Per ora non necessario, li lascio stare.

> 6 - tramite SPIT di Qgis o metodo da te preferito importi lo shape in
> Postgres.

Fatto.

> 7 - Buona fortuna!!

Fatto (pregato :-)

> 8 - )
>
> Luca

Ok, il giro funziona.
L'unico appunto č quello del punto 2, che pensavo di risolvere in modo 
differente ma molto macchinoso:

1. divido la tab in 2: parte geometrica e parte alfanumerica, legate da un id 
comune, come dici tu.
2. creo una view postgres che unisce i campi delle due tabelle,e INSERISCE UNA 
GEOMETRIA FITTIZIA (all'equatore, o al polo nord...) per le righe della tab 
alfanumerica che non hanno corrispondente riga nella tab geometrica
3. esporto questa view da postgres in shapefile
4 edito lo shapefile con QGIS e, per le righe che hanno la geometria a casa 
del diavolo uso Aggiungi Isola per aggiungere la vera geometria; l'utente non 
modifica nč gli ID nč gli attributi alfanumerici, ma li vede per poterli 
confrontare
5. reimporto la shapefile su postgres (in tabella temporanea, con tutti i 
campi della view) mediante procedura Java che:
* elimina la geometria fittizia
* copia le sole geometrie dalla tab temporanea alla tab geometrica, sfruttando 
gli ID presenti

Ne ho fatto un prototipo e sembra funzionare, ma si puō fare di meglio?
Soprattutto non mi piace l'Aggiungi Isola con un pezzo all'Equatore e un pezzo 
in Italia (a parte un bug che č appena stato risolto, vedi altri thread [1] e 
[2])

Grazie dei suggerimenti, ci penso un po' su.
Saluti,
Vito

[1] [Gfoss] QGIS: aggiungi isola
[2] [Gfoss] Utilizzo del trac di QGIS

-- 
Ing. Vito Meuli

Tecnologie Avanzate S.r.l.
via B. Croce, 49
70015 Noci (BA)
tel. +39 080 4979652
fax  +39 080 4979263

email: v.meuli a tecnologieavanzate.it
http://www.tecnologieavanzate.it


Maggiori informazioni sulla lista Gfoss