terça-feira, 13 de maio de 2014
Modificações no tipo de geometria no Postgis 2.0
Quando criei este post meu problema e solução foi este:
Depois de criado uma tabela espacial no banco Postgresql eu fui ver meus dados utilizando o Quantun GIS. Notei que não estava aparecendo na listagem das layers disponíveis aquela que me interessava. Para corrigir o problema descobri que a partir da versão 2.0 do Postgis o controle das minhas layers deixou de ser uma tabela e passou para uma view do sistema (ver detalhes em http://postgis.refractions.net/docs/using_postgis_dbmanagement.html#Manual_Register_Spatial_Column).
Enfim para resolver a receita é a seguinte:
ALTER TABLE footprint_noaa ADD COLUMN geom2 geometry(MULTIPOLYGON,4291);
UPDATE footprint_noaa
SET poligono=r.gm
from
(
Select st_multi(the_geom)::geometry(MultiPolygon, 4291) as gm ,gid from footprint_noaa
) as r
WHERE footprint_noaa.gid = r.gid;
ALTER TABLE footprint_noaa DROP COLUMN the_geom;
ALTER TABLE geom2 RENAME footprint_noaa TO the_geom;
Assim a tabela ficou devidamente registrada na GEOMETRY_COLUMNS e o quantum-gis entendeu tudo direitinho.
Depois disto eu aprendi outra maneira mais correta e direta da seguinte maneira:
ALTER TABLE my_table
ALTER COLUMN geom TYPE geometry(LineString, 4326)
USING ST_SetSRID(geom, 4326);