Buona sera a tutti.
Probabilmente non è la categoria giusta ma posso scrivere solo in questa.
Ho scaricato i dati delle Zone OMI di una provincia italiana dell’Osservatorio del Mercato Immobiliare dal sito dell’Agenzia delle Entrate. Il pacchetto .zip contiene i limiti poligonali delle Zone OMI in formato KML, uno per Comune
Utilizzando ogrinfo come segue
ogrinfo.exe -al -so A324.kml
trovo il nome dell’unico Layer presente in ogni file KML
come potete vedere, a volte, i nomi di Layer possono contenere spazi o caratteri particolari
volevo comporre un comando per caricare i dati di ogni singolo file KML in una tabella PostGIS la cui struttura è (sono campi di test)
CREATE TABLE ade_omi.omi_zones_a (
_id serial4 NOT NULL,
omi_zone_name text NOT NULL,
omi_zone_desc text NOT NULL,
omi_zone_municipality_istat_code text NOT NULL,
omi_zone_code text NOT NULL,
_geom geometry(MultiPolygon, 4326) NOT NULL
);
Utilizzando ogr2ogr come segue con un nome di Layer artificiosamente semplificato
ogr2ogr.exe -append -update --debug ON -f "PostgreSQL" PG:"host='MIHOST' port='MIAPORTA' user='MIOUSER' dbname='MIODB' password='MIAPASSW' active_schema=ade_omi" A324.kml -nln omi_zones_a -nlt MULTIPOLYGON -sql "SELECT Name AS omi_zone_name, description AS omi_zone_desc, CODCOM AS omi_zone_municipality_istat_code, CODZONA AS omi_zone_code FROM ANZOLA" -dialect OGRSQL -progress -emptyStrAsNull
sono riuscito a caricare geometrie ed attributi correttamente
La domanda è: è possibile utilizzare un modo per specificare il nome del Layer con spazi e caratteri particolari all’interno della SELECT del parametro -sql ?
Non ho trovato molta documentazione a riguardo se non per il fatto che posso utilizzare il parametro -dialect per specificare i dialetti OGRSQL ed SQLITE ma tutti gli esempi che ho trovato riportano nomi di Layer semplici