Name

UpdateGeometrySRID — Aggiorna lo SRID e di tutte le geometrie nella colonna specificata e i metadati di tabella.

Synopsis

text UpdateGeometrySRID(varchar table_name, varchar column_name, integer srid);

text UpdateGeometrySRID(varchar schema_name, varchar table_name, varchar column_name, integer srid);

text UpdateGeometrySRID(varchar catalog_name, varchar schema_name, varchar table_name, varchar column_name, integer srid);

Descrizione

Aggiorna lo SRID di tutti i record in una colonna geometry, aggiornando anche geometry_columns e il vincolo SRID della colonna. Se la colonna era vincolata da una defininizione di tipo, tale definizione verrà cambiata. Nota: usa la funzione current_schema() se lo schema non è passato come argomento.

Questa funzione supporta il 3d e non distrugge gli z-index.

Questo metodo supporta le Curve e le Circular String.

Esempi

Insertisce geometrie nella tabella delle strade con uno SRID già specificato usando il formato EWKT:

COPY roads (geom) FROM STDIN;
SRID=4326;LINESTRING(0 0, 10 10)
SRID=4326;LINESTRING(10 10, 15 0)
\.
                

Cambierà lo SRID della tabella delle strade a 4326 da qualunque valore abbia avuto prima:

SELECT UpdateGeometrySRID('roads','geom',4326);

L'esempio precedente è equivalente a questa dichiarazione DDL:

ALTER TABLE roads
  ALTER COLUMN geom TYPE geometry(MULTILINESTRING, 4326)
    USING ST_SetSRID(geom,4326);

Se si è sbagliata la proiezione (o la si è inserita come sconosciuta) nel caricamento e si vuole trasformare in web mercator in un colpo solo, è possibile farlo con il DDL, ma non esiste una funzione equivalente di gestione di PostGIS per farlo in un colpo solo.

ALTER TABLE roads
 ALTER COLUMN geom TYPE geometry(MULTILINESTRING, 3857) USING ST_Transform(ST_SetSRID(geom,4326),3857) ;