[Gfoss] db spatialite corrotto?

Buongiorno a tutti

ho un db di spatialite ( 2.4 da pacchetto ubuntu 11.04) contenente un layer poligonale;

  • se aggiungo degli elementi geometrici con qgis, e li salvo, i nuovi elementi aggiunti non vengono visualizzati;
  • se interrogo il db così:
    select nome,cognome, AsText(Geometria), AsText(centroid(geometria)) from myPol_32632;
    le geometrie aggiunte ci sono e paiono corrette;
  • se esporto il layer in shapefile, i poligoni aggiunti ci sono e vengono regolarmente visualizzati;

qualcuno sa dirmi come risolvere?

ciao


Paolo C.

On Tue, 18 Oct 2011 16:27:09 +0200, Paolo Craveri wrote

ho un db di spatialite ( 2.4 da pacchetto ubuntu 11.04)Â
contenente un layer poligonale;
- se aggiungo degli elementi geometrici con qgis, e li salvo,
i nuovi elementi aggiunti non vengono visualizzati;
- se interrogo il db così:
select nome,cognome, AsText(Geometria), AsText(centroid(geometria))
from myPol_32632;
le geometrie aggiunte ci sono e paiono corrette;
- se esporto il layer in shapefile, i poligoni aggiunti ci sono
e vengono regolarmente visualizzati;

quindi parrebbe decisamente che tutto sia a posto:
strano che QGIS poi non ti visualizzi le geometrie
che hai appena inserito.

ma se provi a sconnettere e poi riconnettere
il db cosa succede ?
continui a non vederle oppure a quel punto le vedi ?

ad ogni buon conto, se mi spedisci (o mi metti
in download) il DB ti ci posso dare volentieri
un'occhiata
magari cerca di evidenziarmi in qualche modo
quali sono le geometrie "critiche", così mi
rendi più veloce il debugging

ciao Sandro

ciao

Il giorno 18 ottobre 2011 16:36, <a.furieri@lqt.it> ha scritto:

On Tue, 18 Oct 2011 16:27:09 +0200, Paolo Craveri wrote

ho un db di spatialite ( 2.4 da pacchetto ubuntu 11.04)
contenente un layer poligonale;

  • se aggiungo degli elementi geometrici con qgis, e li salvo,
    i nuovi elementi aggiunti non vengono visualizzati;
  • se interrogo il db cosě:

select nome,cognome, AsText(Geometria), AsText(centroid(geometria))
from myPol_32632;
le geometrie aggiunte ci sono e paiono corrette;

  • se esporto il layer in shapefile, i poligoni aggiunti ci sono
    e vengono regolarmente visualizzati;

quindi parrebbe decisamente che tutto sia a posto:
strano che QGIS poi non ti visualizzi le geometrie
che hai appena inserito.

ma se provi a sconnettere e poi riconnettere
il db cosa succede ?

continui a non vederle oppure a quel punto le vedi ?

continuo a non vederle. Ho provato anche a visualizzarle con spatialite-gis ma senza risultato.

ad ogni buon conto, se mi spedisci (o mi metti
in download) il DB ti ci posso dare volentieri
un’occhiata
magari cerca di evidenziarmi in qualche modo
quali sono le geometrie “critiche”, cosě mi
rendi piů veloce il debugging

ciao Sandro

fatto

ciao, grazie

Paolo C.

On Wed, 19 Oct 2011 09:24:26 +0200, Paolo Craveri wrote

continuo a non vederle. Ho provato anche a visualizzarle
con spatialite-gis ma senza risultato.

Ciao Paolo,

il tuo è un problema abbastanza ben noto:
corruzione dello Spatial Index.
ad ogni modo non ti preoccupare: recuparare
un DB perfettamente valido è semplice :smiley:

visto che questo problema potrebbe essere
interessare anche per altri utenti, ho
preparato un piccolo how-to (in italiano)
con tutte le spiegazioni del caso:
http://www.gaia-gis.it/RTreeCorrotto.pdf

ciao Sandro

ciao

Il giorno 19 ottobre 2011 10:55, <a.furieri@lqt.it> ha scritto:

On Wed, 19 Oct 2011 09:24:26 +0200, Paolo Craveri wrote

continuo a non vederle. Ho provato anche a visualizzarle
con spatialite-gis ma senza risultato.

Ciao Paolo,

il tuo č un problema abbastanza ben noto:
corruzione dello Spatial Index.
ad ogni modo non ti preoccupare: recuparare
un DB perfettamente valido č semplice :smiley:

visto che questo problema potrebbe essere
interessare anche per altri utenti, ho
preparato un piccolo how-to (in italiano)
con tutte le spiegazioni del caso:
http://www.gaia-gis.it/RTreeCorrotto.pdf

ciao Sandro

che dire? grazie!

Problema risolto e lezione imparata (creare sempre una primary key).

Ho provato con SQL ma sembra che la versione 2.4 da pacchetto (ubuntu 11.04) non contenga CheckSpatialIndex() e RecoverSpatialIndex():

~/gisdata/working$ spatialite vigne.sqlite
SpatiaLite version …: 2.4.0 Supported Extensions:

  • ‘VirtualShape’ [direct Shapefile access]
  • ‘VirtualDbf’ [direct DBF access]
  • ‘VirtualText’ [direct CSV/TXT access]
  • ‘VirtualNetwork’ [Dijkstra shortest path]
  • ‘RTree’ [Spatial Index - R*Tree]
  • ‘MbrCache’ [Spatial Index - MBR cache]
  • ‘VirtualFDO’ [FDO-OGR interoperability]
  • ‘SpatiaLite’ [Spatial SQL - OGC]
    PROJ.4 version …: Rel. 4.7.1, 23 September 2009
    GEOS version …: 3.2.2-CAPI-1.6.2
    SQLite version …: 3.7.4
    Enter “.help” for instructions
    spatialite> SELECT CheckSpatialIndex();
    SQL error: no such function: CheckSpatialIndex

non volendo/sapendo compilare ho scaricato spatialite_gui.exe 1.5 beta per win e fatto girare con wine. tutto ok.

ciao, grazie mille.

Paolo C.