CREAR TABLA AS con geometría en SpatiaLite

Oct 28 2020

Me gustaría crear una nueva tabla SpatiaLite basada en un comando.

Por ejemplo, me gustaría transformar una tabla en un sistema de coordenadas diferente:

SELECT Transform(Geometry, 3068) FROM points_berlin;

Para crear una nueva tabla, haría esto en PostGIS:

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

Aunque esto crea la tabla y la tabla tiene tantas filas como la tabla de entrada, no es una tabla espacial. ¿Cómo hago para que la geometría aparezca en la nueva tabla?

Respuestas

8 geozelot Oct 28 2020 at 09:27

SpatiaLite requiere que registre explícitamente las columnas de geometría en su ecosistema (actualizando metadatos, agregando activadores) utilizando las funciones de administración proporcionadas ; SQLite no admite la detección automática como con el sistema modificador de tipo de PostgreSQL .

Habiendo creado una nueva tabla como usted especificó, debería poder 'habilitarla espacialmente' con

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