Ao importar meus dados do shapefile para o PostGIS, não selecionei a Projeção adequada.
Como agora altero o SRID dos dados, sem transformar as coordenadas?
Ao importar meus dados do shapefile para o PostGIS, não selecionei a Projeção adequada.
Como agora altero o SRID dos dados, sem transformar as coordenadas?
Respostas:
Existe uma função de linha única que faz isso por você. Basta usar a seguinte consulta SQL:
select UpdateGeometrySRID('Schema Name', 'mytable', 'the_geom', newSRID) ;
Mas, se você é como eu, estaria interessado nas etapas em miniatura e de baixo nível. Logicamente falando, a função acima é equivalente ao seguinte processo de quatro etapas:
Na tabela geometry_columns, atualize o SRID para o valor necessário.
Solte o contraint na tabela, usando a seguinte instrução SQL
ALTER TABLE mytable DROP CONSTRAINT enforce_srid_the_geom;
Atualize o SRID da geometria usando a seguinte instrução SQL
UPDATE mytable SET the_geom = ST_SetSRID(the_geom, newSRID);
Adicione a contraint novamente usando a seguinte instrução SQL
ALTER TABLE mytable
ADD CONSTRAINT enforce_srid_the_geom CHECK (st_srid(the_geom) = (newSRID));
Com o PostGIS 2.x, as colunas de geometria geralmente usam tipos como geometry(Point, 1234)
. Para isso, você pode usar ALTER TABLE para modificar diretamente o tipo de coluna geométrica em uma etapa.
Por exemplo, para definir o SRID de geom
em mytable
para WGS84, use ST_SetSRID :
ALTER TABLE mytable
ALTER COLUMN geom
TYPE geometry(Point, 4326)
USING ST_SetSRID(geom, 4326);
Observe que isso alterará apenas o SRID, mas não transformará os dados das coordenadas.
UpdateGeometrySRID
não suportam.