Criação de vistas de dados geográficos Postgres/Geoserver

 

As vistas de informação baseadas em tabelas da base de dados (mais conhecidas como views) podem ter especial interesse quando temos a necessidade de materializar numa tabela um filtro ou um conjunto de dados que corresponda a uma determinada condição. Esta ação permitirá responder a várias necessidades sem que para isso seja necessário criar novos dados na base de dados. Outra vantagem das vistas é que são atualizadas automaticamente, ou seja, qualquer alteração à tabela original é mostrada na vista, sem que tenha que haver qualquer outra interação do utilizador. A edição dos dados, sejam edições geométricas ou alfanuméricas que se pretendam fazer, têm de ser realizadas na tabela original que serve de base à vista, já que as vistas não são editáveis, sendo “apenas” isso mesmo, vistas.

Vejam o exemplo:

Problema: Existe uma tabela chamada “Vias” com todas as estradas do município com a hierarquia de cada uma (AE, EN, EM, IC, IP, etc.) e o objetivo é criar um tema que contenha apenas as Estradas Municipais (EM) para que o gestor responsável pelas mesmas tenha acesso.

Resolução: Criar uma vista da tabela “Vias” em que queremos apenas ver as estradas em que a hierarquia é igual a Estrada Municipal.

Criar Vista no Postgres

Utilizando o SQL Editor do Postgres postgres_sql, criamos a expressão SQL que satisfaça a nossa necessidade. Usando o exemplo acima, a nossa expressão poderá ser algo deste género:

 

CREATE OR REPLACE VIEW cityasaplatform.estradas_municipais AS SELECT row_number() OVER () AS id, nome, velocidade, hierarquia FROM cityasaplatform.vias WHERE hierarquia = "Estrada Municipal"

Nota: Para que a utilização da vista tenha um comportamento correto, na sua criação tem de ser definido um identificador único para cada registo devolvido pela querie (expressão SQL). Para isso, basta que um dos campos de seleção presentes na querie seja o seguinte “row_number() OVER () AS id”. Esta expressão permite que os dados tenham um identificador único para cada linha da tabela, permitindo uma leitura correta pelas aplicações que irão utilizar esta vista.

Publicação da vista no Geoserver

A publicação da vista como serviço geográfico no Geoserver é feita como se de qualquer outra tabela Postgres/Postgis se tratasse. O utilizador deverá, dentro do Geoserver, aceder à área “Layers”, selecionar a opção geoserver_add_resource, selecionar o esquema onde se encontram os dados e publicar a tabela que pretende.

Utilização de Vistas

 

A utilização destes elementos no City as a Platform é a mesma de todos os restantes dados carregados na plataforma, permitindo a mesma autonomia na gestão, configuração e utilização dos dados. Com o exemplo das vias dado acima, é possível ter uma aplicação no City as a Platform com um tema que represente todas as estradas (usando a tabela original da rede viária), bem como criar uma aplicação só para o responsável pelas Estradas Municipais em que o tema tem por base a vista que acabaram de criar.

 

Bom trabalho!