58 votos

¿Cambiar el SRID de los datos existentes en PostGIS?

Al importar mis datos shapefile a PostGIS, no seleccioné la proyección adecuada.

¿Cómo puedo cambiar ahora el SRID de los datos, sin transformar las coordenadas?

106voto

Anthony Cramp Puntos 126

Hay una función de una sola línea que lo hace por usted. Sólo tiene que utilizar la siguiente consulta SQL:

select UpdateGeometrySRID('Schema Name', 'mytable', 'the_geom', newSRID) ;

Pero, si eres como yo, te interesarán los pasos de bajo nivel, en miniatura. Lógicamente, la función anterior equivale al siguiente proceso de cuatro pasos:

  1. En la tabla geometry_columns, actualice el SRID al valor requerido.

  2. Elimine la restricción en la tabla, utilizando la siguiente sentencia SQL

    ALTER TABLE mytable DROP CONSTRAINT enforce_srid_the_geom;

  3. Actualice el SRID'd de la geometría utilizando la siguiente sentencia SQL

    UPDATE mytable SET the_geom = ST_SetSRID(the_geom, newSRID);

  4. Vuelva a añadir la restricción utilizando la siguiente sentencia SQL

    ALTER TABLE mytable

    ADD CONSTRAINT enforce_srid_the_geom CHECK (st_srid(the_geom) = (newSRID));

17voto

hernan43 Puntos 566

Con PostGIS 2.x, las columnas de geometría suelen utilizar typmods como geometry(Point, 1234) . Para ello puede utilizar ALTERAR TABLA para modificar directamente el tipo de columna de la geometría en un solo paso.

Por ejemplo, para establecer el SRID de geom en mytable a WGS84, utilice ST_SetSRID :

ALTER TABLE mytable
  ALTER COLUMN geom
    TYPE geometry(Point, 4326)
    USING ST_SetSRID(geom, 4326);

Tenga en cuenta que esto sólo alterará el SRID, pero no transformará los datos de coordenadas.

0voto

ALTER TABLE public.kltask ALTER COLUMN geom TYPE geometry(Point, 4326) USING ST_SetSRID(geom, 4326);

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