Durante l'importazione dei dati del mio file di forma in PostGIS, non ho selezionato la proiezione corretta.
Come posso ora cambiare il SRID dei dati, senza trasformare le coordinate?
Durante l'importazione dei dati del mio file di forma in PostGIS, non ho selezionato la proiezione corretta.
Come posso ora cambiare il SRID dei dati, senza trasformare le coordinate?
Risposte:
C'è una funzione a linea singola che fa questo per te. Usa la seguente query SQL:
select UpdateGeometrySRID('Schema Name', 'mytable', 'the_geom', newSRID) ;
Ma, se sei come me, ti interesserebbero i passaggi di basso livello in miniatura. Logicamente parlando, la funzione sopra è equivalente al seguente processo in quattro fasi:
Nella tabella geometry_columns, aggiorna l'SRID al valore richiesto.
Rilasciare il contrappunto sulla tabella, utilizzando la seguente istruzione SQL
ALTER TABLE mytable DROP CONSTRAINT enforce_srid_the_geom;
Aggiorna il SRID della geometria usando la seguente istruzione SQL
UPDATE mytable SET the_geom = ST_SetSRID(the_geom, newSRID);
Aggiungi nuovamente il contrappunto utilizzando la seguente istruzione SQL
ALTER TABLE mytable
ADD CONSTRAINT enforce_srid_the_geom CHECK (st_srid(the_geom) = (newSRID));
Con PostGIS 2.x, le colonne geometriche in genere usano typmods come geometry(Point, 1234)
. Per questi è possibile utilizzare ALTER TABLE per modificare direttamente il tipo di colonna della geometria in un solo passaggio.
Ad esempio, per impostare SRID di geom
in mytable
su WGS84, utilizzare ST_SetSRID :
ALTER TABLE mytable
ALTER COLUMN geom
TYPE geometry(Point, 4326)
USING ST_SetSRID(geom, 4326);
Si noti che ciò modificherà solo l'SRID, ma non trasformerà i dati delle coordinate.
UpdateGeometrySRID
non supportano.