<HTML>
<HEAD>
<META content="text/html; charset=iso-8859-1" http-equiv=Content-Type>
<META content="OPENWEBMAIL" name=GENERATOR>
</HEAD>
<BODY bgColor=#ffffff>

<font size="2"><b>On Mon, 29 Nov 2010 11:51:16 +0100, flavio rigolon wrote</b>
<br />&gt; 
ciao,
<br />&gt;  sto cercando di esportare un DB Postgis in Spatialite (sono su 
debian testing, GDAL 1.7 compilate venerdì).
<br />&gt; Ho seguito la procedura 
indicata qui [0] (ultimo punto).
<br />&gt; Il db viene creato con successo; se 
cerco di caricare i dati da QGIS (r14757)
<br />&gt; 

riesco a connettermi, a visualizzare l'elenco delle tabelle ma al momento 
del
<br />&gt; caricamento ottengo un errore:
<br />&gt; 
<br />&gt; 
------------------------------
<br />&gt; &quot;nome del layer&quot; (GEOMETRY non 
è un layer valido e non può essere caricato)
<br />&gt; 

------------------------------
<br />&gt; 
<br />&gt; Ho provato ad aprire il db con 
sqlitebrowser: vedo tutte le tabelle ben pololate
<br />&gt; ma in effetti il campo 
GEOMETRY è vuoto (o almeno così pare)...
<br />&gt; 
<br />
<br />
<br />ok, nel frattempo Flavio mi ha girato (privatamente)
<br />il DB SpatiaLite generato da ogr2ogr, e quindi sono
<br />in grado di dare una risposta esaustiva.
<br />
<br />in parole spicciole: l'output di ogr2ogr &quot;funzionicchia&quot;,
<br />ma ci sono diverse criticità (bugs ????) che vanno
<br />corrette &quot;a manina&quot; per ottenere un vero DB splite 
<br />funzionante senza problemi
<br />
<br />----------------
<br />NOTIZIA IMPORTANTE: non utilizzate mai strumenti come
<br />sqlitebrowser per lavorare su un DB spatialite: supportano
<br />solo SQLite 'base', ma non hanno nessuna idea di cosa
<br />sia spatialite e/o di come vanno gestiti/visualizzati
<br />i dati Geometry ... rischiate di corrompere il DB :-)
<br />----------------
<br />
<br />GEOMETRY_COLUMNS
<br />==========================
<br />ci sono almeno un paio di &quot;farfalline&quot;:
<br />- molto spesso trovo SRID=NULL: ma questo per
<br />splite è assolutamente *illegale* (casomai per
<br />marcare uno srid 'non identificato' occorre
<br />usare -1, come da standard OCG)
<br />- trovo inoltre utilizzata due volte una classe 
<br />GEOMETRY (che non è supportata da splite: 
<br />casomai dovrebbe essere GEOMETRY_COLLECTION)
<br />
<br />TAVOLE GEOMETRICHE
<br />==========================
<br />quasi sempre i valori delle geometrie presentano 
<br />SRID=-1
<br />non sono in grado di dire se era un problema già
<br />presente nel DB PostGIS di origine.
<br />in ogni caso è sempre meglio assegnare uno
<br />SRID esplicito ovviamente
<br />inolte non sono mai definiti i triggers
<br />(che invece sono fondamentali per il
<br />corretto funzionamento di splite)
<br />
<br />
<br />COME CORREGGERE
<br />=============================
<br />
<br />UPDATE geometry_columns SET srid = 3003;
<br />
<br />UPDATE geometry_columns SET type = 'POLYGON' 
<br />WHERE type = 'GEOMETRY';
<br />
<br />n.b.: questo nel caso del DB di Flavio; non
<br />saprei dire se è una regola generale, ovviamente
<br />
<br />---
<br />
<br />a questo punto occorre &quot;ripulire&quot; tutte le
<br />colonne geometriche mal definite: io ho 
<br />usato Spatialite_GUI perchè è più facile.
<br />per ciascuna tavola occorre:
<br />
<br />UPDATE acqua SET GEOMETRY = SetSrid(GEOMETRY, 3003);
<br />- strumento GUI: Rebuild Geometry Triggers
<br />
<br />in questo modo si sistema correttamente lo SRID su
<br />tutte le geometrie e si creano i trigges necessari
<br />al buon funzionamento di spatialite
<br />
<br />quando avrete (pazientemente) finito, alla fine
<br />avrete un DB SpatiaLite che funziona perfettamente
<br />con QGIS e con qualsiasi altro sw &quot;spatialite compliant&quot; :-)
<br />
<br />ciao Sandro
<br />
<br />P.S.: la netta sensazione è che all'origine di tutti
<br />i malfunzionamenti di ogr2ogr c'è un fatto semplice
<br />ed assolutamente banale
<br />per creare correttamente una colonna geometrica
<br />occorre usare l'apposita funzione SQL (esattamente
<br />come su PostGIS):
<br />
<br />SELECT AddGeometryColumn(....)
<br />
<br />se invece il SW va a &quot;sciacquettarsi&quot; direttamente
<br />la GEOMETRY_COLUMNS saltando la chiamata
<br />alla funzione, poi non ci si deve stupire se la
<br />definizione della geometria è invalida è può creare 
<br />problemi durante l'uso successivo ...
<br /> 
<br />
<br />
<br />
</font>
</BODY>
</HTML>