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

Rispondere a