6 votos

CREATE TABLE AS con geometría en SpatiaLite

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

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

SELECT Transform(Geometry, 3068) FROM points_berlin;

Para crear una nueva tabla lo haría 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 consigo que la geometría aparezca en la nueva tabla?

9voto

mathieu Puntos 53

SpatiaLite requiere que se registren explícitamente las columnas de geometría en su ecosistema (actualización de metadatos, adición de disparadores) utilizando la herramienta funciones de gestión SQLite no admite la detección automática como en el caso de PostgreSQL modificador de tipo sistema.

Una vez creada una nueva tabla como has especificado, deberías poder "habilitarla espacialmente" con

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

1voto

Jason Puntos 261

Me parece que el uso de RecoverGeometryColumn añade el registro a geometry_columnns, y también permite a QGIS leer la tabla. Sin embargo, ArcGIS no puede leer las geometrías en la tabla. Sigo buscando una forma de emitir una sentencia CREATE TABLE AS y que sea una tabla válida que otros productos GIS puedan leer.

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X