Ho creato una tabella spaziale con SRID: 4326. Ora voglio cambiare la proiezione totale in SRID: 32644 in una nuova tabella. Il vecchio tavolo dovrebbe rimanere invariato.
Ho creato una tabella spaziale con SRID: 4326. Ora voglio cambiare la proiezione totale in SRID: 32644 in una nuova tabella. Il vecchio tavolo dovrebbe rimanere invariato.
Risposte:
Se utilizzi PostGIS 2.0+, puoi andare:
ALTER TABLE mytable
ALTER COLUMN geom
TYPE Geometry(Point, 32644)
USING ST_Transform(geom, 32644);
Point
con The same geometry type as it was
?
CREATE TABLE new_table AS
SELECT ST_Transform(the_geom,32644) AS the_geom
FROM original_table;
Dovrebbe esserci un campo ID intero nella tabella spaziale per aggiungerlo a QGIS.
seguire in questo modo:
CREATE TABLE 'new_table' AS SELECT * FROM 'old_table';
ALTER TABLE new_table DROP CONSTRAINT enforce_srid_the_geom;
ALTER TABLE new_table DROP CONSTRAINT enforce_geotype_the_geom;
UPDATE new_table SET the_geom = ST_SetSRID(the_geom, new_srid);
ALTER TABLE new_table ADD CONSTRAINT enforce_srid_the_geom CHECK (st_srid(the_geom) = (new_srid));
ALTER TABLE new_table ADD CONSTRAINT enforce_geotype_geom CHECK ((geometrytype(the_geom) = 'POINT'::text OR the_geom IS NULL);
se non è possibile creare una nuova tabella nella prima riga, provare prima 2. e 3. quindi creare la tabella con il numero 1.
spero che ti aiuti ...