Tabella spatialite e fallimento dello zoom all'estensione del layer con QGis

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
3 messages Options
Reply | Threaded
Open this post in threaded view
|

Tabella spatialite e fallimento dello zoom all'estensione del layer con QGis

mando
Salve a tutti,
ho un dilemma sull'estensione di una tabella spatialite.
Il caso: ho una serie di geometrie disegnate in vari punti d'Italia, nella fattispecie nel Lazio e in Romagna. Se in Qgis faccio una interrogazione per chiamare solo le geometrie del Lazio e clicco su zoom all'estensione del layer, il canvas di Qgis non si aggiorna e solo dopo aver selezionato qualche riga dalla tabella del subset, posso fare zoom alla selezione.

E' possibile che la mia tabella spatialite sia "corrotta" e che non riesca più a capire bene la propria estensione a seconda della query attiva?

Qualcuno ha una mezza idea di dove mettere le mani?

Grazie mille
Luca

_______________________________________________
[hidden email]
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 hanno relazione diretta con le posizioni dell'Associazione GFOSS.it.
666+40 iscritti al 5.6.2014
Reply | Threaded
Open this post in threaded view
|

Re: Tabella spatialite e fallimento dello zoom all'estensione del layer con QGis

a.furieri
On Mon, 17 Nov 2014 15:41:22 +0100, Luca Mandolesi wrote:
> E' possibile che la mia tabella spatialite sia "corrotta" e che non
> riesca più a capire bene la propria estensione a seconda della query
> attiva?
>

non e' affatto impossibile che lo Spatial Index si corrompa.
in genere accase quando:
- la tavola non ha nessuna Primary Key, oppure ha una Primary Key
   che non e' composta da un'unica colonna INTEGER
- e' stato fatto un VACUUM che ha riordinato fisicamente tutte le
   righe facendo cosi' impazzire i ROWIDs


> Qualcuno ha una mezza idea di dove mettere le mani?
>

prima verifica se hai tavole senza ROWID o com shadowed-ROWID:

SELECT f_table_name, CheckShadowedRowid(f_table_name),
     CheckWithoutRowid(f_table_name)
FROM geometry_columns;

se tutto va bene vedrai tutto a ZERO; se vedi qualche 1 invece
significa che hai problemi.

poi vai a verificare se ci sono Spatial Index corrotti:

SELECT CheckSpatialIndex();

qua funziona all'inverso: se torna 1 tutto bene, altrimenti
se torna ZERO ci sono problemi. in quest'ultimo caso per
rimettere tutto a posto:

SELECT RecoverSpatialIndex();

ciao Sandro

_______________________________________________
[hidden email]
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 hanno relazione diretta con le posizioni dell'Associazione GFOSS.it.
666+40 iscritti al 5.6.2014
Reply | Threaded
Open this post in threaded view
|

Re: Tabella spatialite e fallimento dello zoom all'estensione del layer con QGis

mando
Ciao Alessandro,
ho fatto tutte le verifiche del caso...nulla pare essere tutto ok...la cosa stranissima è che dentro Qgis ho una vista, 
che, anche se settata con una query verso un certo pacchetto di geometrie collocate tutte vicine,
l'estensione al layer a cui va qgis è quella delle geometrie di tutta la tabella geometrica che contiene il campo geom.

A questo punto mi faccio tale domanda: provo a sbatterci la testa per trovare un eventuale bachetto...magari in Qgis nel leggere la mia
view ipoteticamente corrotta, oppure meglio che butto via la tabella e la view e rifaccio tutto pulito e verificare se il problema
persiste?

Il DB è quello distribuito col plugin pyarchinit, quindi va sempre sputato fuori vuoto o al massimo col
dataset del tutorial..quindi danni non ne faccio...ma ovvio che così se scrivo che facendo una query e poi zoom all'estensione del layer si 
dovrebbe zoomare alle geometrie verrei smentito dal canvas di Qgis che se ne starebbe immobile nel nulla! :)


Grazie per i suggerimenti
Luca



Il giorno 17 novembre 2014 15:55, <[hidden email]> ha scritto:
On Mon, 17 Nov 2014 15:41:22 +0100, Luca Mandolesi wrote:
E' possibile che la mia tabella spatialite sia "corrotta" e che non
riesca più a capire bene la propria estensione a seconda della query
attiva?


non e' affatto impossibile che lo Spatial Index si corrompa.
in genere accase quando:
- la tavola non ha nessuna Primary Key, oppure ha una Primary Key
  che non e' composta da un'unica colonna INTEGER
- e' stato fatto un VACUUM che ha riordinato fisicamente tutte le
  righe facendo cosi' impazzire i ROWIDs


Qualcuno ha una mezza idea di dove mettere le mani?


prima verifica se hai tavole senza ROWID o com shadowed-ROWID:

SELECT f_table_name, CheckShadowedRowid(f_table_name),
    CheckWithoutRowid(f_table_name)
FROM geometry_columns;

se tutto va bene vedrai tutto a ZERO; se vedi qualche 1 invece
significa che hai problemi.

poi vai a verificare se ci sono Spatial Index corrotti:

SELECT CheckSpatialIndex();

qua funziona all'inverso: se torna 1 tutto bene, altrimenti
se torna ZERO ci sono problemi. in quest'ultimo caso per
rimettere tutto a posto:

SELECT RecoverSpatialIndex();

ciao Sandro

_______________________________________________
[hidden email]
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 hanno relazione diretta con le posizioni dell'Associazione GFOSS.it.
666+40 iscritti al 5.6.2014


_______________________________________________
[hidden email]
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 hanno relazione diretta con le posizioni dell'Associazione GFOSS.it.
666+40 iscritti al 5.6.2014