Neste post iremos falar um pouco sobre o GeoServer e sua integração com o GeoWave. Apesar de quem acompanha o Blog já conhecer bastante o GeoServer, farei um breve descritivo.

1. GeoServer

O GeoServer é um servidor de código aberto para compartilhar dados geoespaciais. Projetado para interoperabilidade, ele publica dados de qualquer fonte de dados espaciais usando padrões abertos. O GeoServer é uma implementação compatível com o Consórcio Geoespacial Aberto (OGC) de uma série de padrões abertos, tais como WFS (Web Feature Service), WMS (Web Map Service) e Web Coverage Service (WCS).

Formatos adicionais e opções de publicação estão disponíveis, incluindo Web Map Tile Service (WMTS) e extensões para Service Catalog (CSW) e Web Processing Service (WPS).

Usamos o GeoServer para ler Layers carregados com o GeoWave, o plugin que acabamos de adicionar ao nosso GeoServer nos permitirá nos conectar a esses dados. Podemos usá-lo como qualquer outro tipo de Layer! 🙂

Para configurar o acesso a store de dados distribuídos, podemos usar duas opções:

– Usando o painel de administração do GeoServer como de costume:

– Usando o comando “gs” do GeoWave para registrar as stores e camadas em uma instância do GeoServer.

Como estamos testando coisas, vamos usar a segunda opção. O primeiro passo requer indicar ao GeoWave a instância do GeoServer que queremos configurar.

> %geowave% config geoserver 
  -ws geowave -u admin -p geoserver http://localhost:8080/geoserver

Semelhante ao que faríamos na interface administrativa do GeoServer, nós executamos dois comandos para adicionar, respectivamente, o Store e o Layer desejado.

> %geowave% gs addds -ds geowave_eea -ws geowave eea-store
> %geowave% gs addfl -ds geowave_eea -ws geowave NO2-measures

Como você pode notar, o sistema de referência espacial da camada é o EPSG:4326. Se visualizarmos o mapa com o cliente OpenLayers do GeoServer…

A performance é quety decent (Clique na imagem acima para ver o vídeo), tendo em conta que estou executando um PC “não muito poderoso”, com o Hadoop trabalhando em “modo único” e desenhando todas as medições de NO2 de todos as datas disponíveis (~ 5 milhões de registros). O índice espacial funciona direito, como o zoom inferior como resposta mais rápida. Além disso, se nós executamos um filtro WFS com um critério temporal, verificamos que o índice temporal executa corretamente, porém o GeoServer não verifica todos os registros da camada.

O guia do usuário do GeoWave nos fala sobre um estilo especial chamado “subsamplepoints” (Ele usa um processo WPS chamado “geowave:Subsample” e que o plugin GeoWave implementa). Ao desenhar um mapa, esse estilo realiza subamostras espaciais para acelerar o processo de renderização. Com ele é verificado um ótimo ganho de desempenho, eu recomendo que você utilize ele para camadas do tipo ponto.

Testei também para carregar uma camada de tipo de polígono de um Shapefile, sem problemas, as requisições WMS GetMap e WFS GetFeature foram bem executadas. Apenas uma nota, a ferramenta de carregamento GeoWave transforma automaticamente geometrias do sistema de referência espacial original ( EPSG:25830 no meu caso) para EPSG:4326 em coordenadas geográficas.

Neste ponto, verificamos que tudo se encaixa, podemos parar por aqui, já que a exploração desses dados já pode ser feita com bibliotecas de Mapeamento Web ( Leaflet, OpenLayers, i3Geo… ) ou quaisquer aplicativo de desktop GIS (QGIS, gvSIG, etc…).

Você gostaria de continuar? Então não perca a última parte deste artigo, onde falaremos sobre WebMaps.