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