CREA TABELLA COME con geometria in SpatiaLite

Oct 28 2020

Vorrei creare una nuova tabella SpatiaLite basata su un comando.

Ad esempio, vorrei trasformare una tabella in un diverso sistema di coordinate:

SELECT Transform(Geometry, 3068) FROM points_berlin;

Per creare una nuova tabella, lo farei in PostGIS:

CREATE TABLE points_berlin_3068 AS
SELECT Transform(Geometry, 3068) FROM points_berlin;

Sebbene questo crei la tabella e la tabella abbia tante righe quante è la tabella di input, non è una tabella spaziale. Come faccio a visualizzare la geometria nella nuova tabella?

Risposte

8 geozelot Oct 28 2020 at 09:27

SpatiaLite richiede di registrare esplicitamente le colonne della geometria nel suo ecosistema (aggiornamento dei metadati, aggiunta di trigger) utilizzando le funzioni di gestione fornite ; SQLite non supporta il rilevamento automatico come con il sistema di modifica del tipo di PostgreSQL .

Dopo aver creato una nuova tabella come specificato, dovresti essere in grado di "abilitarlo spazialmente" con

SELECT RecoverGeometryColumn('points_berlin_3068', 'geometry', 3068, 'POINT', 'XY');