Vorrei esprimere la mia gratitudine a Andrea Peri e Alessandro Furieri per le spiegazioni, chiare ed efficaci.
Ho fatto delle prove sul db messo a disposizione da Massimiliano, seguendo i consigli di Furieri, tutto funziona alla perfezione. grazie forse scriverò un articolo su questo thread. saluti Il giorno 7 febbraio 2018 12:53, <a.furi...@lqt.it> ha scritto: > On Wed, 7 Feb 2018 12:06:06 +0100, Totò Fiandaca wrote: > >> correggetemi se dico fesserie: >> >> una soluzione sarebbe quella di aggiungere un altro campo geometry (es: >> geom, definirlo per bene) alle tabelle e popolarle con la geometria con un >> UPDATE. >> >> credo funzioni. >> >> > si, dovrebbe funzionare, ma il percorso da seguire per > fare un lavoro ben fatto e' un po' piu' complesso: > > - per prima cosa occorre verificare cosa contiene > esattamente il dataset; basta eseguire la seguente > query SQL: > > SELECT Count(*), GeometryType(geom), Srid(geom), CoordDimension(geom) > FROM table > GROUP BY 2, 3, 4; > > n.b. chi usa spatialite_gui puo' usare direttamente > il tool "check geometries" dal menu associato a quella > particolare colonna-geometria. > > - a questo punto tutto dipende dai risultati della > query precedente. > > caso #1 > =============== > nel resultset appare una singola riga. > basta creare la seconda colonna-geometria con gli > argomenti appropriati, p.es. > > SELECT AddGeometryColumn('table', 'geom2', srid, 'POINT', 'XY'); > > a questo punto si procede direttamente al popolamento > della nuova colonna-geometria: > > UPDATE table SET geom2 = geom; > > > caso #2 > =============== > nel resultset appaiono un paio di righe, ma > tutte con il medesimo modello dimensionale e > con tipi geometrici compatibili, uno di tipo > single-part e l'altro di tipo multi-part > (p.es. POINT e MULTIPOINT, oppure POLYGON > e MULTIPOLYGON). > > a questo punto occorre creare la seconda > colonna-geometria stando ben attenti a > specificare il MultiType: > > SELECT AddGeometryColumn('table', 'geom2', srid, 'MULTIPOLYGON', 'XY'); > > infine si procede al popolamento della > seconda colonna-geometria applicando un > opportuno operatore di cast, tale da > forzare il geometry-type per uniformare > tutte le geometrie al caso multi-part: > > UPDATE table SET geom2 = CastToMultiPolygon(geom); > > > caso #3 > =============== > nel resultset appaiono svariate righe, con > geometry-type incompatibili (p.es. POINT, > LINESTRING e MULTIPOLYGON). > > in questo caso non e' possibile procedere > ad una conversione diretta, andranno create > tante colonne-geometria quanti sono i > geometry-types, e durante la fase di popolamento > le geometrie andranno opportunamente filtrate > in base al tipo. > > ciao Sandro > > > poi, il provider spatialite di QGIS vedrebbe due colonne geometriche dello >> stesso strato. >> >> _______________________________________________ > Gfoss@lists.gfoss.it > 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. > 796 iscritti al 28/12/2017 > -- *Ing. Salvatore Fiandaca* *mobile*.:+39 327.493.8955 *m*: *pigrecoinfin...@gmail.com <pigrecoinfin...@gmail.com>* *C.F*.: FNDSVT71E29Z103G *P.IVA*: 06597870820 *membro QGIS Italia - http://qgis.it/ <http://qgis.it/>* *socio GFOSS.it - *http://gfoss.it/ *blog:* * https://pigrecoinfinito.wordpress.com/ <https://pigrecoinfinito.wordpress.com/> FB: Co-admin - https://www.facebook.com/qgis.it/ <https://www.facebook.com/qgis.it/>** <https://www.facebook.com/qgis.it/> * *FB: moderatore - **https://www.facebook.com/groups/GisItalia/ <https://www.facebook.com/groups/GisItalia/>** <https://www.facebook.com/groups/GisItalia/> * *TW: <http://goog_95411464>**https://twitter.com/totofiandaca <https://twitter.com/totofiandaca>* 43°51'0.54"N 10°34'27.62"E - EPSG:4326 “Se la conoscenza deve essere aperta a tutti, perchè mai limitarne l’accesso?” R. Stallman Questo documento, allegati inclusi, contiene informazioni di proprietà di FIANDACA SALVATORE e deve essere utilizzato esclusivamente dal destinatario in relazione alle finalità per le quali è stato ricevuto. E' vietata qualsiasi forma di riproduzione o divulgazione senza l'esplicito consenso di FIANDACA SALVATORE. Qualora fosse stato ricevuto per errore si prega di informare tempestivamente il mittente e distruggere la copia in proprio possesso. _______________________________________________ Gfoss@lists.gfoss.it 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. 796 iscritti al 28/12/2017