CREATE TABLE AS avec géométrie dans SpatiaLite
Je souhaite créer une nouvelle table SpatiaLite basée sur une commande.
Par exemple, je voudrais transformer une table en un autre système de coordonnées:
SELECT Transform(Geometry, 3068) FROM points_berlin;
Pour créer une nouvelle table, je le ferais dans PostGIS:
CREATE TABLE points_berlin_3068 AS
SELECT Transform(Geometry, 3068) FROM points_berlin;
Bien que cela crée la table et que la table comporte autant de lignes que la table d'entrée, ce n'est pas une table spatiale. Comment faire apparaître la géométrie dans la nouvelle table?
Réponses
SpatiaLite vous oblige à enregistrer explicitement les colonnes de géométrie dans son écosystème (mise à jour des métadonnées, ajout de déclencheurs) à l'aide des fonctions de gestion fournies ; SQLite ne prend pas en charge la détection automatique comme avec le système de modification de type de PostgreSQL .
Après avoir créé une nouvelle table comme vous l'avez spécifié, vous devriez être en mesure de `` l'activer spatialement '' avec
SELECT RecoverGeometryColumn('points_berlin_3068', 'geometry', 3068, 'POINT', 'XY');