Eccoci di nuovo qui, ho creato una nuova tabella attraverso una select
con ST_Union() e group by, ora vorrei aggiungere la colonna geometrica alle geometry_columns... spatialite> select RecoverGeometryColumn('acque_trento_finali','Geometry',32632,'MULTILINESTRING','XY'); RecoverGeometryColumn(): validation failed RecoverGeometryColumn('acque_trento_finali','Geometry',32632,'MULTILINESTRING','XY') ------------------------------------------------------------------------------------ 0 qualche suggerimento? -- ciao Luca http://gis.cri.fmach.it/delucchi/ www.lucadelu.org _______________________________________________ Iscriviti all'associazione GFOSS.it: http://www.gfoss.it/drupal/iscrizione [hidden email] http://lists.gfoss.it/cgi-bin/mailman/listinfo/gfoss Questa e' una lista di discussione pubblica aperta a tutti. Non inviate messaggi commerciali. I messaggi di questa lista non rispecchiano necessariamente le posizioni dell'Associazione GFOSS.it. 502 iscritti all'11.2.2011 |
On Thu, 14 Apr 2011 14:17:00 +0200, Luca Delucchi wrote
> Eccoci di nuovo qui, ho creato una nuova tabella attraverso una > select con ST_Union() e group by, ora vorrei aggiungere la colonna geometrica > alle geometry_columns... > > spatialite> select > RecoverGeometryColumn('acque_trento_finali','Geometry',32632, > 'MULTILINESTRING','XY'); RecoverGeometryColumn(): validation failed > RecoverGeometryColumn('acque_trento_finali','Geometry',32632, > 'MULTILINESTRING','XY') > > 0 > > qualche suggerimento? > si, un sacco ... verificare cosa hai veramente nella geometria generata da ST_Union(); SELECT DISTINCT ST_GeometryType(Geometry), ST_Srid(Geometry), CoordDimension(Geometry) FROM acque_trento_finali; vedrai che probabilmente la Union ti ha generato qualche geometria strana. se semplicemente vedi che ci sono dei LINESTRING (senza MULTI) basta che applichi la "promozione" del tipo geometrico: UPDATE acque_trento_finali SET Geometry = CastToMulti(Geometry); vedrai che poi dovebbe andare meglio :-) ciao Sandro _______________________________________________ Iscriviti all'associazione GFOSS.it: http://www.gfoss.it/drupal/iscrizione [hidden email] http://lists.gfoss.it/cgi-bin/mailman/listinfo/gfoss Questa e' una lista di discussione pubblica aperta a tutti. Non inviate messaggi commerciali. I messaggi di questa lista non rispecchiano necessariamente le posizioni dell'Associazione GFOSS.it. 502 iscritti all'11.2.2011 |
Il 14 aprile 2011 14:36, <[hidden email]> ha scritto:
> > vedrai che poi dovebbe andare meglio :-) > chissà come mai ma è andato :-P Giusto per conoscenza è una cosa che capita anche su postgis? (se fosse così sono stato sempre fortunato :-) ) > ciao Sandro > -- ciao Luca http://gis.cri.fmach.it/delucchi/ www.lucadelu.org _______________________________________________ Iscriviti all'associazione GFOSS.it: http://www.gfoss.it/drupal/iscrizione [hidden email] http://lists.gfoss.it/cgi-bin/mailman/listinfo/gfoss Questa e' una lista di discussione pubblica aperta a tutti. Non inviate messaggi commerciali. I messaggi di questa lista non rispecchiano necessariamente le posizioni dell'Associazione GFOSS.it. 502 iscritti all'11.2.2011 |
On Thu, 14 Apr 2011 15:08:07 +0200, Luca Delucchi wrote
> Il 14 aprile 2011 14:36, <[hidden email]> ha scritto: > > > > > vedrai che poi dovebbe andare meglio :-) > > > > chissà come mai ma è andato :-P > Giusto per conoscenza è una cosa che capita anche su postgis? (se > fosse così sono stato sempre fortunato :-) ) > si, può capitare anche su postgis (almeno, credo). le varie ST_Union, ST_Buffer etc etc sono supportate da GEOS: e sia postgis che splite si limitano a delegare queste operazioni a GEOS. Altro esempio "classico": tutti scommetterebbero che ST_ConvexHull ritorni necessariamente un POLYGON ... falsissimo ... può anche tornare un POINT (se il point-set comprende un unico punto) ma anche un LINESTRING (se il point-set comprende solamente due punti) etc etc Così come ST_Difference può tornare un LINESTRING (se i due poligoni si toccano lungo un lato) ma anche un POINT (se i due poligoni si toccano solo su un vertice). ma sia splite che postgis supportano appunto una serie di funzioni "casting" che aiutano a forzare la classe della geometria prodotta dell'operatore Spatial ciao Sandro _______________________________________________ Iscriviti all'associazione GFOSS.it: http://www.gfoss.it/drupal/iscrizione [hidden email] http://lists.gfoss.it/cgi-bin/mailman/listinfo/gfoss Questa e' una lista di discussione pubblica aperta a tutti. Non inviate messaggi commerciali. I messaggi di questa lista non rispecchiano necessariamente le posizioni dell'Associazione GFOSS.it. 502 iscritti all'11.2.2011 |
In reply to this post by a.furieri
Il 14 aprile 2011 14:36, <[hidden email]> ha scritto:
> On Thu, 14 Apr 2011 14:17:00 +0200, Luca Delucchi wrote >> Eccoci di nuovo qui, ho creato una nuova tabella attraverso una >> select con ST_Union() e group by, ora vorrei aggiungere la colonna geometrica >> alle geometry_columns... >> >> spatialite> select >> RecoverGeometryColumn('acque_trento_finali','Geometry',32632, >> 'MULTILINESTRING','XY'); RecoverGeometryColumn(): validation failed >> RecoverGeometryColumn('acque_trento_finali','Geometry',32632, >> 'MULTILINESTRING','XY') >> > ------------------------------------------------------------------------------------ >> 0 >> >> qualche suggerimento? >> > > si, un sacco ... > verificare cosa hai veramente nella geometria > generata da ST_Union(); > > SELECT DISTINCT > ST_GeometryType(Geometry), > ST_Srid(Geometry), > CoordDimension(Geometry) > FROM acque_trento_finali; > > vedrai che probabilmente la Union ti ha > generato qualche geometria strana. > se semplicemente vedi che ci sono dei > LINESTRING (senza MULTI) basta che applichi > la "promozione" del tipo geometrico: > > UPDATE acque_trento_finali > SET Geometry = CastToMulti(Geometry); > > vedrai che poi dovebbe andare meglio :-) > l'altra volta aveva funzionato, ma questa volta con un'altra tabella no! :-( qualche altro suggerimento? SELECT DISTINCT st_geometrytype(geom), st_srid(geom), coorddimension(geom) from uso_suolo_trentino2008_new; st_geometrytype(geom)|st_srid(geom)|coorddimension(geom) || MULTIPOLYGON|32632|XY select count(geom) from uso_suolo_trentino2008_new where not isvalid(geom); count(geom) 0 select count(geom) from uso_suolo_trentino2008_new where geom is null; count(geom) 0 select RecoverGeometryColumn('uso_suolo_trentino2008_new','geom',32632,'MULTIPOLYGON','XY'); RecoverGeometryColumn(): validation failed RecoverGeometryColumn('uso_suolo_trentino2008_new','geom',32632,'MULTIPOLYGON','XY') 0 > ciao Sandro > -- ciao Luca http://gis.cri.fmach.it/delucchi/ www.lucadelu.org _______________________________________________ Iscriviti all'associazione GFOSS.it: http://www.gfoss.it/drupal/iscrizione [hidden email] http://lists.gfoss.it/cgi-bin/mailman/listinfo/gfoss Questa e' una lista di discussione pubblica aperta a tutti. Non inviate messaggi commerciali. I messaggi di questa lista non rispecchiano necessariamente le posizioni dell'Associazione GFOSS.it. 502 iscritti all'11.2.2011 |
On Fri, 29 Apr 2011 11:10:43 +0200, Luca Delucchi wrote
> l'altra volta aveva funzionato, ma questa volta con un'altra tabella > no! :-( qualche altro suggerimento? > > SELECT DISTINCT st_geometrytype(geom), st_srid(geom), > coorddimension(geom) > FROM uso_suolo_trentino2008_new; >> MULTIPOLYGON|32632|XY > ok, sono tutti MULTIPOLYGON 2D XY e lo srid è 32632 > select count(geom) > from uso_suolo_trentino2008_new > where geom is null; >> 0 > e non ci sono NULL > select RecoverGeometryColumn('uso_suolo_trentino2008_new','geom', > 32632,'MULTIPOLYGON','XY'); >> RecoverGeometryColumn(): validation failed > eh no: *deve* funzionare. io non ci vedo nessun errore SQL non so cosa dirti: bug mi pare quasi impossibile, perchè RecoverGeometryColumn per validare esegue esattamente la query che tu hai già lanciato a mano .. boh !?!?!?! ciao Sandro _______________________________________________ Iscriviti all'associazione GFOSS.it: http://www.gfoss.it/drupal/iscrizione [hidden email] http://lists.gfoss.it/cgi-bin/mailman/listinfo/gfoss Questa e' una lista di discussione pubblica aperta a tutti. Non inviate messaggi commerciali. I messaggi di questa lista non rispecchiano necessariamente le posizioni dell'Associazione GFOSS.it. 502 iscritti all'11.2.2011 |
Il 29 aprile 2011 11:35, <[hidden email]> ha scritto:
> > eh no: *deve* funzionare. io non ci vedo nessun errore SQL > non so cosa dirti: bug mi pare quasi impossibile, perchè > RecoverGeometryColumn per validare esegue esattamente > la query che tu hai già lanciato a mano .. boh !?!?!?! > l'unica cosa di strano è quando eseguo SELECT DISTINCT st_geometrytype(geom), st_srid(geom), coorddimension(geom) from uso_suolo_trentino2008_new; st_geometrytype(geom)|st_srid(geom)|coorddimension(geom) || MULTIPOLYGON|32632|XY c'è la prima riga || invece su una tabella corretta non c'è SELECT DISTINCT st_geometrytype(Geometry), st_srid(Geometry), coorddimension(Geometry) from uso_suolo_trentino2008; st_geometrytype(Geometry)|st_srid(Geometry)|coorddimension(Geometry) POLYGON|32632|XY penso il problema sia li, ma non so come correggerlo > ciao Sandro > -- ciao Luca http://gis.cri.fmach.it/delucchi/ www.lucadelu.org _______________________________________________ Iscriviti all'associazione GFOSS.it: http://www.gfoss.it/drupal/iscrizione [hidden email] http://lists.gfoss.it/cgi-bin/mailman/listinfo/gfoss Questa e' una lista di discussione pubblica aperta a tutti. Non inviate messaggi commerciali. I messaggi di questa lista non rispecchiano necessariamente le posizioni dell'Associazione GFOSS.it. 502 iscritti all'11.2.2011 |
On Fri, 29 Apr 2011 14:06:34 +0200, Luca Delucchi wrote
> l'unica cosa di strano è quando eseguo ... > c'è la prima riga || invece su una tabella corretta non c'è > > penso il problema sia li, ma non so come correggerlo > ok, ora è chiaro: scusami, ma prima non ci avevo proprio fatto caso :-) sono NULL vedo che tu usi spatialite CLI, che by default ignora i nulls: se li vuoi visualizzare devi attivarli esplicitamente: .nullvalue NULL concludendo: non hai nessun NULL tra le tue geometrie, lo avevamo già verificato prima. però hai qualche valore assolutamente sballato, così tanto sballato che non viene neppure riconosciuto come una Geometry binaria valida: prova ad indentificarli così SELECT * FROM my_table WHERE ST_GeometryType(geom) IS NULL; ciao Sandro _______________________________________________ Iscriviti all'associazione GFOSS.it: http://www.gfoss.it/drupal/iscrizione [hidden email] http://lists.gfoss.it/cgi-bin/mailman/listinfo/gfoss Questa e' una lista di discussione pubblica aperta a tutti. Non inviate messaggi commerciali. I messaggi di questa lista non rispecchiano necessariamente le posizioni dell'Associazione GFOSS.it. 502 iscritti all'11.2.2011 |
Il 29 aprile 2011 14:57, <[hidden email]> ha scritto:
> SELECT * FROM my_table > WHERE ST_GeometryType(geom) IS NULL; ok, trovati... per metterli a posto devo usare sempre la gui? > > ciao Sandro > -- ciao Luca http://gis.cri.fmach.it/delucchi/ www.lucadelu.org _______________________________________________ Iscriviti all'associazione GFOSS.it: http://www.gfoss.it/drupal/iscrizione [hidden email] http://lists.gfoss.it/cgi-bin/mailman/listinfo/gfoss Questa e' una lista di discussione pubblica aperta a tutti. Non inviate messaggi commerciali. I messaggi di questa lista non rispecchiano necessariamente le posizioni dell'Associazione GFOSS.it. 502 iscritti all'11.2.2011 |
On Fri, 29 Apr 2011 15:08:54 +0200, Luca Delucchi wrote
> Il 29 aprile 2011 14:57, <[hidden email]> ha scritto: > > > SELECT * FROM my_table > > WHERE ST_GeometryType(geom) IS NULL; > > ok, trovati... per metterli a posto devo usare sempre la gui? > dipende da "cosa" ci hai trovato dentro .... a naso, l'unica cosa che parrebbe sensata è una bella DELETE, ma bisognerebbe verificare :-) ciao Sandro _______________________________________________ Iscriviti all'associazione GFOSS.it: http://www.gfoss.it/drupal/iscrizione [hidden email] http://lists.gfoss.it/cgi-bin/mailman/listinfo/gfoss Questa e' una lista di discussione pubblica aperta a tutti. Non inviate messaggi commerciali. I messaggi di questa lista non rispecchiano necessariamente le posizioni dell'Associazione GFOSS.it. 502 iscritti all'11.2.2011 |
Il 29 aprile 2011 15:48, <[hidden email]> ha scritto:
> > dipende da "cosa" ci hai trovato dentro .... > a naso, l'unica cosa che parrebbe sensata è > una bella DELETE, ma bisognerebbe verificare :-) > già provata ma si è portato via un po' troppe features ;-) > ciao Sandro > -- ciao Luca http://gis.cri.fmach.it/delucchi/ www.lucadelu.org _______________________________________________ Iscriviti all'associazione GFOSS.it: http://www.gfoss.it/drupal/iscrizione [hidden email] http://lists.gfoss.it/cgi-bin/mailman/listinfo/gfoss Questa e' una lista di discussione pubblica aperta a tutti. Non inviate messaggi commerciali. I messaggi di questa lista non rispecchiano necessariamente le posizioni dell'Associazione GFOSS.it. 502 iscritti all'11.2.2011 |
On Fri, 29 Apr 2011 16:19:33 +0200, Luca Delucchi wrote
> > a naso, l'unica cosa che parrebbe sensata è > > una bella DELETE, ma bisognerebbe verificare :-) > > > > già provata ma si è portato via un po' troppe features ;-) > riassumendo: quindi il tuo DB ha un sacco di righe con contengono "roba strana", che spatialite si rifiuta tassatavimente di riconoscere come geometrie valide di grazia, ma cosa è successo ? che procedura e che strumenti hai utilizzato ? BTW a me a questo punto pare abbastanza chiaro che cotesto DB è fritto ... fai sicuramente prima a buttarlo e ricaricarlo piuttosto che tentare di aggiustarlo ciao Sandro _______________________________________________ Iscriviti all'associazione GFOSS.it: http://www.gfoss.it/drupal/iscrizione [hidden email] http://lists.gfoss.it/cgi-bin/mailman/listinfo/gfoss Questa e' una lista di discussione pubblica aperta a tutti. Non inviate messaggi commerciali. I messaggi di questa lista non rispecchiano necessariamente le posizioni dell'Associazione GFOSS.it. 502 iscritti all'11.2.2011 |
Free forum by Nabble | Edit this page |