segunda-feira, 3 de outubro de 2011

Visualizar camadas do Postgis do TerraView em outros aplicativos

O TerraView 4 foi desenvolvido utilizando a TerraLib 4. Esta biblioteca tem uma organização de banco de dados pouco usual, pois separa as representações vetoriais de uma tabela das informações tabulares da mesma.

Apesar disso, o TerraView pode armazenar os dados geográficos utilizando os objetos nativos do PostGIS. Isto permite que os usuários vejam as geometrias em outros softwares, mas não dá acesso aos atributos.

Para visualizar todas as informações numa única tabela, pode-se fazer uso do conceito de "views" do PostgreSQL. Uma "view" é uma tabela dinâmica, produzida à partir de uma consulta. Neste caso, utilizaremos a "view" para juntar as tabelas de geometria e atributos.

Primeiramente, precisamos descobrir em que tabelas cada parte está armazenada. O TerraLib não dá nenhum nome intuitivo às tabelas de geometria, portanto seria difícil adivinhar qual é a tabela correta. Desta forma, pode-se utilizar o comando SQL a seguir para listar todos os relacionamentos entre geometrias e tabelas que o TerraView conhece.

select l.layer_id, l.name, r.geom_table, t.attr_table, t.attr_link  
from te_layer as l, te_representation as r, te_layer_table as t 
where (l.layer_id=t.layer_id) and (l.layer_id=r.layer_id)

A coluna "t.attr_link" é o nome da coluna da tabela de atributos que serve de ligação ao "object_id" da tabela de geometrias.

De posse do nome das duas tabelas onde estão nossos dados e das colunas que os ligam, pode-se criar a "view" que materializa a ligação:

CREATE VIEW pg_rio AS 
SELECT *  FROM polygons6 as g, rio< as t
WHERE t.object_id_6 = g.object_id;

Esta "view" já pode ser visualizada em aplicativos como GvSIG, QGIS e MapServer.

Como resultado secundário deste post, produzi um plugin simples para o Quantum GIS que permite carregar as camadas do TerraLib+PostGIS.

Um comentário:

  1. Muito boa a postagem!

    Venho tentando a algum tempo fazer essa integração do TerraView (PostGIS) com outros Softwares GIS, mas geralmente só consigo ver as geometrias. Os atributos sempre se perdem rsrsr

    Já instalei o plugin, mas estou com um erro de phyton, vou tentar corrigir e depois posto minhas impressões aqui.

    Um abraço.

    ResponderExcluir