¿Reproyectar todas las geometrías en la tabla de PostGIS?

38

Creé una tabla espacial con SRID: 4326. Ahora quiero cambiar la proyección total a SRID: 32644 en una nueva tabla. La tabla antigua debería permanecer sin cambios.

    
pregunta Hyma 02.11.2012 - 07:57

3 respuestas

57

Si estás en PostGIS 2.0+, puedes ir:

 ALTER TABLE mytable 
   ALTER COLUMN geom 
   TYPE Geometry(Point, 32644) 
   USING ST_Transform(geom, 32644);
    
respondido por el Paul Ramsey 05.11.2012 - 18:23
17
CREATE TABLE new_table AS 
  SELECT ST_Transform(the_geom,32644) AS the_geom 
  FROM original_table;

Debería haber un campo de ID entero en su tabla espacial para poder agregarlo a QGIS.

    
respondido por el Vladimir 02.11.2012 - 10:10
4

sigue este camino:

  1. CREATE TABLE 'new_table' AS SELECT * FROM 'old_table';
  2. ALTER TABLE new_table DROP CONSTRAINT enforce_srid_the_geom;
  3. ALTER TABLE new_table DROP CONSTRAINT enforce_geotype_the_geom;
  4. UPDATE new_table SET the_geom = ST_SetSRID(the_geom, new_srid);
  5. ALTER TABLE new_table ADD CONSTRAINT enforce_srid_the_geom CHECK (st_srid(the_geom) = (new_srid));
  6. ALTER TABLE new_table ADD CONSTRAINT enforce_geotype_geom CHECK ((geometrytype(the_geom) = 'POINT'::text OR the_geom IS NULL);
  7. ¡Eso es!

si no puede crear una nueva tabla en la primera línea, intente con los números 2. y 3. primero cree su tabla con el número 1.

espero que te ayude ...

    
respondido por el Aragon 05.11.2012 - 18:42

Lea otras preguntas en las etiquetas