Lors de l'importation de mes données de fichier de formes dans PostGIS, je n'avais pas sélectionné la projection appropriée.
Comment est-ce que je change maintenant le SRID des données, sans transformer les coordonnées?
Lors de l'importation de mes données de fichier de formes dans PostGIS, je n'avais pas sélectionné la projection appropriée.
Comment est-ce que je change maintenant le SRID des données, sans transformer les coordonnées?
Réponses:
Il existe une fonction de ligne unique qui le fait pour vous. Il suffit d'utiliser la requête SQL suivante:
select UpdateGeometrySRID('Schema Name', 'mytable', 'the_geom', newSRID) ;
Mais, si vous êtes comme moi, les marches miniatures basses vous intéresseront. Logiquement parlant, la fonction ci-dessus est équivalente au processus en quatre étapes suivant:
Dans la table geometry_columns, mettez à jour le SRID avec la valeur requise.
Supprimez la contrainte sur la table à l'aide de l'instruction SQL suivante
ALTER TABLE mytable DROP CONSTRAINT enforce_srid_the_geom;
Mettre à jour le SRID de la géométrie à l'aide de l'instruction SQL suivante
UPDATE mytable SET the_geom = ST_SetSRID(the_geom, newSRID);
Ajoute la contrainte en utilisant l'instruction SQL suivante
ALTER TABLE mytable
ADD CONSTRAINT enforce_srid_the_geom CHECK (st_srid(the_geom) = (newSRID));
Avec PostGIS 2.x, les colonnes de géométrie utilisent généralement des typmods geometry(Point, 1234)
. Pour ceux-ci, vous pouvez utiliser ALTER TABLE pour modifier directement le type de colonne de géométrie en une étape.
Par exemple, pour définir le SRID de geom
dans mytable
sur WGS84, utilisez ST_SetSRID :
ALTER TABLE mytable
ALTER COLUMN geom
TYPE geometry(Point, 4326)
USING ST_SetSRID(geom, 4326);
Notez que cela ne modifiera que le SRID, mais ne transformera pas les données de coordonnées.
UpdateGeometrySRID
ne prend pas en charge.