Dúvida Postgis

classic Classic list List threaded Threaded
2 messages Options
Reply | Threaded
Open this post in threaded view
|

Dúvida Postgis

hfpmartins
Boa tarde a todos,

Estou a experimentar o postgis com gvsig. Depois de ter criado uma tabela com geometria (resultante de um query) em postgis não a consigo carregar no gvsig. Este problema so me acontece com tabelas com geometria criadas na postgis. No entanto se eu utilizar essa mesma tabela e exportar para shape tudo está bem. O código SQL que utilizei para criar a minha tabela com geometria é o seguinte:

create table explor2 as (select gid, marca, (st_transform(the_geom, 20791)).geometry as the_geom from explor);

Como disse anteriormente ao adicionar esta tabela directamente no gvsig a partir de uma conexao ao postgis ela faz com que se perda a conexão à base de dados e mesmo fazendo reload o problema mantém-se. Se no entanto exportar do postgis para shp a reprojecção correu bem e tudo está funcional (tanto a tabela dbf como o desenho vectorial).

Resolvi depois experimentar fazer o load desta tabela explor2 no Kosmo. Estabeleci a ligação à base de dados e depois seleccionei uma opção (não existente no gvsig) "load into memory". Neste caso a tabela do postgis é carregada perfeitamente e sem qualquer problema.

Alguém tem alguma sugestão???

Saudações geográficas,

Hugo Martins

_______________________________________________
Portugal mailing list
[hidden email]
http://lists.osgeo.org/mailman/listinfo/portugal
Reply | Threaded
Open this post in threaded view
|

Re: Dúvida Postgis

Fred Lehodey
Hugo,
talvez a forma mais simples será de correr mais uma linha SQL do tipo:
INSERT INTO  geometry_columns values('','public','explor2','the_geom',2,20791,'string do tipo da geometria')

string do tipo da geometria = 'POINT' , 'MULTILINESTRING' ..etc...

Abraço, Fred.


2008/9/12 Hugo <[hidden email]>
Olá Fred,

Muito obrigado pela rápida resposta. De facto se inserir os dados manualmente na tabela geometry_columns tudo funciona na perfeição. No entanto gostaria de te colocar mais uma pergunta.

Não haverá maneira de fazer isto de forma automática?? Isto é, quando faço o query que me reprojecta a informação e me cria uma nova tabela, não dá para passar algum argumento que preencha a tabela geometry_columns com a respectiva informação????

Mais uma vez, obrigado pela grande ajuda...
Um abraço,

Hugo

2008/9/12 Fred Lehodey <[hidden email]>

Boa tarde Hugo,
No schema 'public' da BD existe 2 tabelas de PosGIS:
- geometry_columns (definição do campos de tipo geometria)
- spatial_ref_sys

Para abrir um layer com o gvSIG (e outros clientes em geral) é preciso ter definido a coluna da geometria na tabela 'geometry_columns'.
(o kosmo não é tão exigente como o gvSIG)

Quando é criado uma tabela com o SQL (select into / create table), não é preenchida esta tabela. (pois, é o Postgres só a trabalhar)
(ao contrario da exportação de um shp para postgis via gvSIG.)

Utilizando a function ST_addGeometryColumn permite ultrapassar isto. (recomendado)

Sugiro assim de editar (a mão) a tabela 'geometry_columns' definindo o campo da geometria...
Deveria funcionar.

Espero ter ajudado..
Abraço, Fred.




2008/9/12 Hugo <[hidden email]>
Boa tarde a todos,

Estou a experimentar o postgis com gvsig. Depois de ter criado uma tabela com geometria (resultante de um query) em postgis não a consigo carregar no gvsig. Este problema so me acontece com tabelas com geometria criadas na postgis. No entanto se eu utilizar essa mesma tabela e exportar para shape tudo está bem. O código SQL que utilizei para criar a minha tabela com geometria é o seguinte:

create table explor2 as (select gid, marca, (st_transform(the_geom, 20791)).geometry as the_geom from explor);

Como disse anteriormente ao adicionar esta tabela directamente no gvsig a partir de uma conexao ao postgis ela faz com que se perda a conexão à base de dados e mesmo fazendo reload o problema mantém-se. Se no entanto exportar do postgis para shp a reprojecção correu bem e tudo está funcional (tanto a tabela dbf como o desenho vectorial).

Resolvi depois experimentar fazer o load desta tabela explor2 no Kosmo. Estabeleci a ligação à base de dados e depois seleccionei uma opção (não existente no gvsig) "load into memory". Neste caso a tabela do postgis é carregada perfeitamente e sem qualquer problema.

Alguém tem alguma sugestão???

Saudações geográficas,

Hugo Martins

_______________________________________________
Portugal mailing list
[hidden email]
http://lists.osgeo.org/mailman/listinfo/portugal





_______________________________________________
Portugal mailing list
[hidden email]
http://lists.osgeo.org/mailman/listinfo/portugal