[Gfoss] Spatialite - fusione massiva di svariati shp in un unico layer

Ciao!
Gentilmente, essendo poco pratico con le shell cli, volevo fondere centinaia di shp con spatialite_gui in un unico layer "fusion" con uno script sql. Ho provato con ogr2ogr, ma crea una abnorme schifezza inutilizzabile (virtual FDO...).
Ho appenda scoperto la funzione Importshp(path, nome_nuova_tabella, UTF-8);
Come dovrei settare per ogni shp senza passare per le virtual tables?
Grazie 1000!
SF

--FUSIONE MASSIVA DI PIU SHAPEFILES
--1) crea la tabella geometrica contenitore
create table fusion
(pt_type text,
pt_code text,
pt_ccat integer,
pt_fabb text);
select addgeometrycolumn('fusion','geom',3044,'POLYGON',2);

--2) elenca tutti gli shp che vuoi importare e mergiare
CREATE VIRTUAL TABLE "001_vl_parcel_poly"
USING VirtualShape('C:\temp\_test\001_vl_parcel_poly', 'UTF-8', 3044);
insert into fusion (pt_type, pt_code, pt_ccat, pt_fabb, geom)
select pt_type, pt_code, pt_ccat, pt_fabb, geometry
from "001_vl_parcel_poly";
DELETE FROM virts_geometry_columns WHERE virt_name='001_vl_parcel_poly';
DROP TABLE "001_vl_parcel_poly";

CREATE VIRTUAL TABLE "002_vl_parcel_poly"
USING VirtualShape('C:\temp\_test\002_vl_parcel_poly', 'UTF-8', 3044);
insert into fusion (pt_type, pt_code, pt_ccat, pt_fabb, geom)
select pt_type, pt_code, pt_ccat, pt_fabb, geometry
from "002_vl_parcel_poly";
DELETE FROM virts_geometry_columns WHERE virt_name='002_vl_parcel_poly';
DROP TABLE "002_vl_parcel_poly";

On Wed, 14 Nov 2018 18:52:02 +0100 (CET), falcerisimone@inwind.it wrote:

Ciao!
Gentilmente, essendo poco pratico con le shell cli, volevo fondere
centinaia di shp con spatialite_gui in un unico layer "fusion" con uno
script sql. Ho provato con ogr2ogr, ma crea una abnorme schifezza
inutilizzabile (virtual FDO...).

gdal fa un ottimo lavoro con SpatiaLite, sei tu che stai chiamando
ogr2ogr nel modo sbagliato.
il driver SQLite di GDAL e' in grado di gestire diversi formati:
FDO, GPKG e SpatiaLite.
se vuoi usare il formato SpatiaLite devi impostare un'opzione
apposita, che se non erro dovrebbe essere

-dsco SPATIALITE=YES

comunque leggiti la doc del driver GDAL, vedrai che in fondo ci
sono esempi specifici per SpatiaLite

https://www.gdal.org/drv_sqlite.html

Ho appenda scoperto la funzione Importshp(path, nome_nuova_tabella, UTF-8);
Come dovrei settare per ogni shp senza passare per le virtual tables?

se il tuo problema e' "fondere" qualche centinaio di SHP in
una singola Spatial Table la ImportSHP() ti sara' poco utile,
visto che per ogni singolo SHP richiede di creare una nuova
tavola.
direi che ogr2ogr si adatta meglio al tuo caso specifico.
ciao Sandro